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

Re: gEDA-user: gnetlist bug report



> > I'm curious, how would you deal with the multiple netname=3D
> > attributes per single segment?  How would you pick which netname =
> actually
> > ends up in the netlist?  Which one takes precedence?  How are the =
> other
> > treated?  Thanks.
> 
> I'd expect exactly the same behaviour as when you've got two segments in =
> a net with different netname=3D attributes; it seems like the most =
> intuitive way to implement it.

Ummm. . . . . well that sure clarifies things!  >:-)

> Of course, that doesn't address the problem of what to do if there are =
> multiple netname=3D attributes on a single net.  But I'm not sure that =
> matters, as long as the electrical connectivity works out as expected.

Ales' point is very important.  Most netlisters don't know what to do
when they encounter multiple names on a net.  I know that ViewDraw's
netlister will just arbitrarily choose one (perhaps the first it
finds), and then discard the rest.  It also emits a warning telling
you what it is doing.  At least it is smart enough to alias everything
so that no connectivity is lost.  

I don't know what other programs will do.

I don't think gnetlist has the facility built into it to handle
multiple names per net, so it wouldn't handle this situation
gracefully.

An example of why multiple netnames are complicated, and shouldn't be
allowed:  Suppose you name a net "sig_return", which eventually
connects to GND.  Do you want the netlister to discard the name "GND"
and propagate "sig_return" everywhere?  No.  That means that you've
got to build knowledge that GND is a special net into the program.
But what about AGND and DGND?

Similarly for the power nets, for example VSS, VDD, VEE, VCC.  They
are also special nets, and should have priority over any other net
names attached to the same net.  However, what if you have power nets
like P5V, M5V, P15V, and so on?  How is gnetlist to know?

ViewDraw has an init file which holds configurable info about which
netnames are "special" and should propagate in event of a netname
collision.  Implementing this functionality into gnetlist seems to me
like needless frippery.  Better for users to just not use multiple
names on the same net.  Is there a reason why multiple netnames on a
single net is a good thing or solves any particular design issue?

IMO it would be better for developers to work on
more important features like finalizing hierarchical busses, and
allosing promotion of symbol attributes into the schematic (which is
the first step to enabling backannotation).  

Stuart