Proposed netlist format extension
As you know, Spice determines the type of component by the first
letter of its instance name. This has the obvious limit of 26
letters, which leads to clumsy kluges when more types are added. I
have taken one approach in ACS, for now, but I would like for
something to be accepted as a standard that we will all use.
The ACS extension uses the concept that any non-comment line begins
with either the instance name or a dot. A new field is added at the
beginning of a line that indicates the type of device. The old
format is retained for backward compatibility. Parsing is easy and
fast.
Example:
Traditional form:
R12 (1 2) 10k
New form:
.resistor R12 (1 2) 10k
New component, new form:
.vccap (C1234 (1 2 3 4) 10u
(This is a voltage controlled capacitor.)
Ultimately, general new devices could be added using this syntax. If
the line does not begin with a dot, the type is determined by the
first letter as Spice always has done it.
Another possibility of the Spectre format, where the type is inserted
later in the line:
R12 (1 2) resistor R=10k
C1234 (1 2 3 4) vccap c=10p
This also adds the "R=" keys, which adds flexibility.
I chose not to use this form because it is slower to parse and is
difficult to make it backward compatible. As far as I know, only
Cadence uses this format.
There is also the HSPICE form, which patches into existing elements,
so the vccap would be:
G1234 1 2 VCCAP 3 4 10p
Note placement of key in the middle of the node list.
Note also that the instance name begins with "G".
It is implemented as an extension of a VCCS, which is "G".
ACS accepts this form when HSPICE has the corresponding device, but I
don't like it. Parsing is slow and it is counter intuitive.
XSPICE picks a particular letter for its code models. I think it is
"A".
There are other simulators that use other formats not listed here.
The RF/microwave simulators use another format. The signal integrity
simulators all seem to have their own.
I hereby propose we adopt this "dot" form.
Comments?????
Any better ideas???
al.
Partial thread listing: