On Jan 5, 2011, at 8:49 AM, Stephan Boettcher wrote: > > Matthew Wilkins <matthew_m_wilk...@yahoo.ca> writes: > >> >> There _is_ a meaning to the order if a netlister expects only one >> attribute, but the symbol has several of the same name. In that case, >> the netlister could find either the first attribute of that name or >> the last, depending on how the netlister was written. > > This should either case an error or a prominent warning. > >> About overloading: >> >> Sometimes it's desirable to overload attributes; for example I might >> want to simulate a circuit through a spice netlister, then generate a >> BOM of the parts in the simulation. Having the BOM netlister use the >> same "value" attributes as the simulation helps prevent errors in >> keeping the two flows in sync. >> >> To give the user the choice of overloading the symbols or not, each >> netlister could first look for a netlister-specific attribute, and if >> that doesn't exist then use a generic attribute. i.e first look for >> "spice-sdb-value", and if that doesn't exist then use the generic >> "value". > > And that is the way forward for the problematic overloading we have > right now, e.g., the pinseq attribute: > > The spice netlist shall learn to use a (spice-)port-order attribute, or > however that shall be named, and fall back to pinseq, with an > obsolescence warning. > > spice-port-order > port-order > pin-seq (obsolete)
I'd prefer a spice-prototype attribute, which would allow us to avoid many of the difficulties without a confusing proliferation of attributes. For the symbol nmos-3.sym, a suitable prototype might be: M? #D #G #S #S $model-name L= W= AS= AD= PS= PD= M= We can yell at each other about syntax, but I think the basic idea is sound. Right now, spice-sdb is essentially reduced to guessing what the symbol represents. It can't always tell reliably (it's been know to decide my flip-flops are diodes!). There isn't generally one right answer: with a different kind of model (subcircuit), the prototype for nmos-3.sym might be: X? #D #G #S $model-name Suggested syntax: First characters up to the "?" are the device prefix. #x means the net attached to pinnumber x. %x means the net attached to pinseq x. `x means the net attached to pinlabel x. $x means the value of attribute x. x= means an optional x=value string to be emitted only if the x attribute is present. An improved SPICE netlister could incorporate heuristics similar to spice-sdb to pick a prototype from a collection of defaults, or fall back purely on pinseq and model-name, if no spice-prototype attribute is present, for backward compatibility. --- John Doty Noqsi Aerospace, Ltd. This message contains technical discussion involving difficult issues. No personal disrespect or malice is intended. If you perceive such, your perception is simply wrong. I'm a busy person, and in my business "go along to get along" causes mission failures and sometimes kills people, so I tend to be a bit blunt. _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user