From: Trevor W. <pha...@gm...> - 2009-10-13 15:06:02
|
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 > > |