From: Trevor W. <pha...@gm...> - 2009-10-13 15:06:07
|
Oops. Make that VCS 2009.06 passed :) On Tue, Oct 13, 2009 at 10:05 AM, Trevor Williams <pha...@gm...>wrote: > VCS.2006.09 passed. > > 2009/10/13 Stephen Williams <st...@ic...> > >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> >> I've been working on some fixes to the tranifX handling in Icarus >> Verilog. I fixed a couple bugs, but now the tranif1.v test in the >> ivtest suite no longer works. I've been puzzling over it, and I now >> think that the test itself is not valid. The meat of the program >> is here: >> >> wire pin; >> pullup (weak1) (keep1); >> pulldown (weak0) (keep0); >> tranif1 (pin, keep1, pin); >> tranif0 (pin, keep0, pin); >> >> This is trying to simulate a keeper circuit, the idea being if >> the "pin" is released to HiZ, the previous value will have left >> one of the keepers enabled. >> >> But I don't believe this should simulate properly. The tranifs >> are not drivers themselves, so if the external pin driver is >> released, "pin" will go to Z, which will close *both* gates and >> pin will stay HiZ. >> >> Can people who have access try the attached program on the Big 3? >> >> - -- >> Steve Williams "The woods are lovely, dark and deep. >> steve at icarus.com But I have promises to keep, >> http://www.icarus.com and lines to code before I sleep, >> http://www.picturel.com And lines to code before I sleep." >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v2.0.4-svn0 (GNU/Linux) >> Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org >> >> iD8DBQFK1JLOrPt1Sc2b3ikRAvxsAJ9zpYB3CFAepTI/oIRI+o7ab6v1lgCgz+iw >> t6NaKNJ8LYrx1W0JSKFr62o= >> =IrDG >> -----END PGP SIGNATURE----- >> >> >> module main; >> >> >> // Model a pin with a weak keeper circuit. The way this works: >> // If the pin value is 1, then attach a weak1 pullup, but >> // if the pin value is 0, attach a weak0 pulldown. >> wire pin; >> pullup (weak1) (keep1); >> pulldown (weak0) (keep0); >> tranif1 (pin, keep1, pin); >> tranif0 (pin, keep0, pin); >> >> // Logic to drive a value onto a pin. >> reg value, enable; >> bufif1 (pin, value, enable); >> >> initial begin >> value = 0; >> enable = 1; >> #1 if (pin !== 0) begin >> $display("FAILED -- value=%b, enable=%b, pin=%b", value, enable, >> pin); >> $finish; >> end >> >> // pin should hold its value after the drive is removed. >> enable = 0; >> #1 if (pin !== 0) begin >> $display("FAILED -- value=%b, enable=%b, pin=%b", value, enable, >> pin); >> $finish; >> end >> >> value = 1; >> enable = 1; >> #1 if (pin !== 1) begin >> $display("FAILED -- value=%b, enable=%b, pin=%b", value, enable, >> pin); >> $finish; >> end >> >> // pin should hold its value after the drive is removed. >> enable = 0; >> #1 if (pin !== 1) begin >> $display("FAILED -- value=%b, enable=%b, pin=%b", value, enable, >> pin); >> $finish; >> end >> >> $display("PASSED"); >> end >> >> endmodule // main >> >> >> ------------------------------------------------------------------------------ >> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >> is the only developer event you need to attend this year. Jumpstart your >> developing skills, take BlackBerry mobile applications to market and stay >> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >> http://p.sf.net/sfu/devconference >> _______________________________________________ >> Iverilog-devel mailing list >> Ive...@li... >> https://lists.sourceforge.net/lists/listinfo/iverilog-devel >> >> > |