[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Solving the light/heavy symbol problem

> Yes, any annotation to just one instance of a package in a layout
> would back annotate to an instance attrib attached to a symbol
> instance in a schematic,

Or to an instance attrib on the *parent* schematic, that says "when
you descend here, use these attributes"

IMHO this goes back to my observation that "a layout knows frmo which
schematics it came, but a schematic does not know to which layout you
refer".  In a heirarchy, only the "higher" level schematics know what
the heirarchy is, the sub-schematics don't, so the higher ones need to
retain the instance-specific data.

Otherwise, the first time you re-use that sub-schematic in a different
project, the instance data will be horribly misplaced.

> A way to netlist hierarchy with respect to instances without
> flattening-renaming-flat first is needed to do back and forth
> annotation and cross probing.

You just need a way to store a "path" to the symbol in the element.
It doesn't have to be the refdes, it just has to be something
gschem/gnetlist can use to refer to the symbol in the hierarchy.  It
*could* be a refdes, or it could be an array of GUIDs encoding the
path through the hierarchy.

However, consider a slotted part: you'd need one path *per slot*.  So
if you use two quad NAND gates for one gate in each of eight instances
of a subcircuit, and you change the package for one of those quads,
you need to know which four of the eight subcircuits are affected.
And if you gate-swap between packages, you then need to know which two
subcircuits get their gates swapped.

And since I don't use heirarchy, I can only assume it's even more
complicated than that ;-)

geda-user mailing list