Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!uw-beaver!cornell!batcomputer!rtaylor From: rtaylor@batcomputer.tn.cornell.edu (Russ Taylor) Newsgroups: comp.lsi.cad Subject: Re: IRSIM Message-ID: <1991Feb11.003010.17346@batcomputer.tn.cornell.edu> Date: 11 Feb 91 00:30:10 GMT References: <6466@m2c.M2C.ORG> Organization: Cornell Theory Center Lines: 63 In article <6466@m2c.M2C.ORG> lu@odin.m2c.org (Thomas Lu) writes: > >Greetings: > > I have a question regarding to Magic V6_3 & irsim V8.6: > > When I extract a 2-input nand gate circuit from Magic V6_3, > and run ext2sim to generate the *.sim file, irsim produces > incorrect simulation result. However, if I modified the > *.sim file by deleting the ! and # sign (e.g. changed Vdd! > to Vdd), irsim produces the correct simulation. The problem is the defaults assumed by ext2flat. I believe you can fix the problen with the proper command line arguements (using -t). We prefered to fix the code to set the defaults properly. The patch is very short and follows. This patches EFargs.c in the extflat directory. -------------cut here--------------cut here-------------- *************** *** 42,48 **** /* Command-line flags */ int EFCapThreshold = 10; /* -c/-C: (fF) smallest interesting C */ int EFResistThreshold = 10; /* -r/-R: (Ohms) smallest interesting R */ ! int EFTrimFlags = 0; /* -t: output of nodename trailing #!'s */ char *EFSearchPath = NULL; /* -p: Search path for .ext files */ char *EFArgTech = NULL; /* -T: Tech specified on command line */ --- 42,49 ---- /* Command-line flags */ int EFCapThreshold = 10; /* -c/-C: (fF) smallest interesting C */ int EFResistThreshold = 10; /* -r/-R: (Ohms) smallest interesting R */ ! int EFTrimFlags = EF_TRIMGLOB | EF_TRIMLOCAL; ! /* -t: output of nodename trailing #!'s */ char *EFSearchPath = NULL; /* -p: Search path for .ext files */ char *EFArgTech = NULL; /* -T: Tech specified on command line */ *************** *** 189,196 **** case 't': if ((cp = ArgStr(&argc, &argv, "trim characters")) == NULL) goto usage; ! if (index(cp, '!')) EFTrimFlags |= EF_TRIMGLOB; ! if (index(cp, '#')) EFTrimFlags |= EF_TRIMLOCAL; break; case 'C': EFCapThreshold = INFINITE_THRESHOLD; --- 190,197 ---- case 't': if ((cp = ArgStr(&argc, &argv, "trim characters")) == NULL) goto usage; ! if (index(cp, '!')) EFTrimFlags &= ~EF_TRIMGLOB; ! if (index(cp, '#')) EFTrimFlags &= ~EF_TRIMLOCAL; break; case 'C': EFCapThreshold = INFINITE_THRESHOLD; -- ---------------------------------------------------------------------- Mark Linderman | Cornell University linder@ee.cornell.edu | Department of Electrical Engineering ----------------------------------------------------------------------