[Xcircuit-dev] 7400 series library

R. Timothy Edwards tim at stravinsky.jhuapl.edu
Wed Jan 9 08:59:50 PST 2002


Dear Stephen,

   Thanks for the "thought-provoking" email.  I hadn't even considered the
case of chips containing more than one kind of gate.  One (non-optimal)
solution would be to make the symbol itself contain both parts.  Another
solution just for the 74LS51 would be to use a 3-input AND for both parts,
but name the middle connection "N/C" or something;  for PCB netlists, if
this pin is an isolated node, it will not be connected.  However, I think
that generally, the proper way to deal with it is to extend the parameter
substitutions to include entire substitutions of different objects.  So
one instance would call "and2" and one instance would call "and3".

>  The other possible soloution would to allow multiple gate definitions 
> within the object definition.  This could perhaps use the 
> "begingate...endgate" tags for the main object and then add 
> "beginvirtualgate..endvirtualgate" for each instance where the gates are 
> dissimilar in each IC package.

Object substitution would effectively do the same thing as your proposed
"beginvirtualgate..endvirtualgate".  At least, I think so.

   The chip numbering system was written before I came up with the
"libinst" idea, and I was already aware of problems with the auto-numbering,
which fails to work correctly under a number of situations.  The condition
which you related, in which you got "U1-1-" and "U2-2-", highlights one of
these problems.  The auto-numbering routine doesn't understand that the two
parts are supposed to be the same chip.  On the whole, though, there is no
way to know which instances are supposed to go with which chip.  If you
had two 7473 chips in a circuit, it would not be clear which instances
belong together.  If you're doing a netlist compare or autorouting, they
should permute as necessary.  Otherwise, if you know which instance belongs
to which chip, you can set the numbering by hand.  Regardless, the
auto-numbering routine needs work.  This shouldn't stop you from going
ahead with the 7400-series library.

>  One possible soloution would be to include the "libinst" inside the "{}" of 
> the library object and if there is the concept of variables and scope the  
> variable "?" would be the same within each object definition.  This would 
> solve #2.

   This would still not solve the problem of determining which instances
belong to which chips, for which the auto-numbering routine either needs to
be told what to do, or needs to do a better job of guessing (assuming that
any autorouter or netlist comparator downstream will deal with any
permutations as necessary).

   I'll be looking forward to a 7400-series library!  If you need any help,
please let me know.

  						Regards,
						Tim

P.S.---There's still the issue of Vdd/GND pin connections.  Apparently some
schematic capture systems put Vdd and GND pins on each instance.  At least
one of the instances per chip should have explicit connections to Vdd and
GND in the schematic.  A PCB netlist requires these pins, to be correct.
At present, connecting multiple instances to Vdd and GND will generate
redundant entries in the PCB netlist, but I can get rid of that behavior.
If you can think of a better method for Vdd/GND connections, though, please
let me know.

_______________________________________________
Xcircuit-dev mailing list
Xcircuit-dev at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xcircuit-dev



More information about the Xcircuit-dev mailing list