* circuit/inp2b.c, circuit/inp2c.c, circuit/inp2d.c,

circuit/inp2dot.c, circuit/inp2e.c, circuit/inp2f.c,
        circuit/inp2g.c, circuit/inp2h.c, circuit/inp2i.c,
        circuit/inp2j.c, circuit/inp2k.c, circuit/inp2l.c,
        circuit/inp2m.c, circuit/inp2o.c, circuit/inp2q.c,
        circuit/inp2r.c, circuit/inp2s.c, circuit/inp2t.c,
        circuit/inp2u.c, circuit/inp2v.c, circuit/inp2w.c,
        circuit/inp2z.c: Added ; after macros.
This commit is contained in:
arno 2000-07-07 14:10:30 +00:00
parent f85551ea17
commit f3ae54bea6
23 changed files with 259 additions and 237 deletions

View File

@ -1,63 +1,83 @@
2000-07-07 Arno W. Peters <A.W.Peters@ieee.org>
* circuit/inp2b.c, circuit/inp2c.c, circuit/inp2d.c,
circuit/inp2dot.c, circuit/inp2e.c, circuit/inp2f.c,
circuit/inp2g.c, circuit/inp2h.c, circuit/inp2i.c,
circuit/inp2j.c, circuit/inp2k.c, circuit/inp2l.c,
circuit/inp2m.c, circuit/inp2o.c, circuit/inp2q.c,
circuit/inp2r.c, circuit/inp2s.c, circuit/inp2t.c,
circuit/inp2u.c, circuit/inp2v.c, circuit/inp2w.c,
circuit/inp2z.c: Added ; after macros.
2000-05-22 Paolo Nenzi <p.nenzi@ieee.org> 2000-05-22 Paolo Nenzi <p.nenzi@ieee.org>
* inp2dot.c: Applied Widlok patch. * inp2dot.c: Applied Widlok patch.
* inpdoopt.c: Applied Widolok patch:commented the entire function, * inpdoopt.c: Applied Widolok patch:commented the entire function,
seems obsolete. seems obsolete.
* inpptree.c, ptfuncs.c: Applied Widlok patch. Now there is a
new step function called u2. * inpptree.c, ptfuncs.c: Applied Widlok patch. Now there is a new
step function called u2.
2000-04-04 Paolo Nenzi <p.nenzi@ieee.org> 2000-04-04 Paolo Nenzi <p.nenzi@ieee.org>
* inpfindl.c: Modified the file for BSIM4 and future extensions to * inpfindl.c: Modified the file for BSIM4 and future extensions to
BSIM5 and BSIM6. I have merged the inpfindl.c coming BSIM5 and BSIM6. I have merged the inpfindl.c coming
with the BSIM4 distribution. with the BSIM4 distribution.
* inp2r.c: Added acval=val to initialize the acval parameter to * inp2r.c: Added acval=val to initialize the acval parameter to
a significative value. Hope does not brak anything. a significative value. Hope does not brak anything.
* inp2m.c: Added BSIM4 support. * inp2m.c: Added BSIM4 support.
* inpdomod.c: Added support for BSIM4 device model. * inpdomod.c: Added support for BSIM4 device model.
2000-03-28 Paolo Nenzi <p.nenzi@ieee.org> 2000-03-28 Paolo Nenzi <p.nenzi@ieee.org>
* ptfuncs.c: I have applied a couple of patches by GLAO Dezay. He noted * ptfuncs.c: I have applied a couple of patches by GLAO Dezay. He
that PTln, PTlog and PTsqrt returned non consistent values noted that PTln, PTlog and PTsqrt returned non consistent values
if the argument was out of domain. If arg <0 they returned if the argument was out of domain. If arg <0 they returned
f(-arg). The patch is masked by #ifdef EXPERIMENTAL_CODE. f(-arg). The patch is masked by #ifdef EXPERIMENTAL_CODE. You
You have to remove these lines or #define it to compile have to remove these lines or #define it to compile Dezai's
Dezai's patched code. patched code.
2000-03-11 Paolo Nenzi <p.nenzi@ieee.org> 2000-03-11 Paolo Nenzi <p.nenzi@ieee.org>
* inp2dot.c: Applied Glao Dezai patch, adding which = -1 in the .sens code.
* inp2dot.c: Applied Glao Dezai patch, adding which = -1 in the
.sens code.
2000-01-17 Paolo Nenzi <p.nenzi@ieee.org> 2000-01-17 Paolo Nenzi <p.nenzi@ieee.org>
* inp2m.c, inpdomod.c: Inserted code to dupport BSIM3V1 model as
level 49. * inp2m.c, inpdomod.c: Inserted code to dupport BSIM3V1 model as
level 49.
2000-01-16 Paolo Nenzi <p.nenzi@ieee.org> 2000-01-16 Paolo Nenzi <p.nenzi@ieee.org>
* inp2r.c: Modified resistor code. Added ac value (ala HSPICE), from * inp2r.c: Modified resistor code. Added ac value (ala HSPICE),
Serban Popescu contributed sources. from Serban Popescu contributed sources.
2000-01-15 Paolo Nenzi <p.nenzi@ieee.org> 2000-01-15 Paolo Nenzi <p.nenzi@ieee.org>
* inp2m.c, inpdomod.c : Inserted code to support BSIM3V2 model as * inp2m.c, inpdomod.c: Inserted code to support BSIM3V2 model as
level 50. level 50.
1999-12-20 Paolo Nenzi <p.nenzi@ieee.org> 1999-12-20 Paolo Nenzi <p.nenzi@ieee.org>
* inpgtok.c, inpptree.c: Bug Fix * inpgtok.c, inpptree.c: Bug Fix
Bug: Scale factors (eg. m, k, meg, etc.) for constants in arbitrary
source (b devices) are not recognized. Bug: Scale factors (eg. m, k, meg, etc.) for constants in
Fix: Changes to inpgtok.c and inpptree.c, as supplied by Berkeley. arbitrary source (b devices) are not recognized.
NOTE: These changes were orignally supplied to me as a patch to 3e2
by Beorn Johnson who was maintaining Spice a while back. They were Fix: Changes to inpgtok.c and inpptree.c, as supplied by Berkeley.
supposed to have been incorporated in Spice 3f2 at that time, but are
missing from the 3f5 version that I recently got from Berkeley. I NOTE: These changes were orignally supplied to me as a patch to
don't know if they were removed in ignorance or because of a conflict 3e2 by Beorn Johnson who was maintaining Spice a while back. They
with some other requirement, but they appear to work in 3f5. ALSO, were supposed to have been incorporated in Spice 3f2 at that time,
the fix for 3e2 had many more changes, all of which remain in 3f5, so but are missing from the 3f5 version that I recently got from
don't try these alone on 3e2. Berkeley. I don't know if they were removed in ignorance or
because of a conflict with some other requirement, but they appear
to work in 3f5. ALSO, the fix for 3e2 had many more changes, all
of which remain in 3f5, so don't try these alone on 3e2.
1999-09-07 Arno <A.W.Peters@ieee.org> 1999-09-07 Arno <A.W.Peters@ieee.org>
@ -67,8 +87,8 @@
1999-09-05 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr> 1999-09-05 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
* inpptree.c (PTdifferentiate): removed superfluous argument * inpptree.c (PTdifferentiate): removed superfluous argument to 2
to 2 occurences of function mkf occurences of function mkf
* *.c: put all function prototypes in inp.h * *.c: put all function prototypes in inp.h
@ -81,6 +101,7 @@
* inpdomod.c: added level check for ps model, jfet level 2 * inpdomod.c: added level check for ps model, jfet level 2
* inp2j.c: added code for ps model, jfet level 2 * inp2j.c: added code for ps model, jfet level 2
1999-08-08 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr> 1999-08-08 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
* inp2dot.c (INP2dot):changed HAS_SENSE2 in WANT_SENSE2 * inp2dot.c (INP2dot):changed HAS_SENSE2 in WANT_SENSE2

View File

@ -49,10 +49,10 @@ void INP2B(void *ckt, INPtables * tab, card * current)
if (!tab->defBmod) { if (!tab->defBmod) {
/* create default B model */ /* create default B model */
IFnewUid(ckt, &uid, (IFuid) NULL, "B", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "B", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defBmod), uid)) IFC(newModel, (ckt, type, &(tab->defBmod), uid));
} }
IFC(newInstance, (ckt, tab->defBmod, &fast, name)) IFC(newInstance, (ckt, tab->defBmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
} }

View File

@ -55,10 +55,10 @@ void INP2C(void *ckt, INPtables * tab, card * current)
if (!tab->defCmod) { if (!tab->defCmod) {
IFnewUid(ckt, &uid, (IFuid) NULL, "C", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "C", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defCmod), uid)) IFC(newModel, (ckt, type, &(tab->defCmod), uid));
} }
IFC(newInstance, (ckt, tab->defCmod, &fast, name)) IFC(newInstance, (ckt, tab->defCmod, &fast, name));
GCA(INPpName, ("capacitance", &ptemp, ckt, type, fast)) GCA(INPpName, ("capacitance", &ptemp, ckt, type, fast));
} else { /* looks like character strings */ } else { /* looks like character strings */
INPgetTok(&line, &model, 1); INPgetTok(&line, &model, 1);
INPinsert(&model, tab); INPinsert(&model, tab);
@ -76,17 +76,17 @@ void INP2C(void *ckt, INPtables * tab, card * current)
if (!tab->defCmod) { if (!tab->defCmod) {
IFnewUid(ckt, &uid, (IFuid) NULL, "C", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "C", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defCmod), uid)) IFC(newModel, (ckt, type, &(tab->defCmod), uid));
} }
mdfast = tab->defCmod; mdfast = tab->defCmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
} }
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("capacitance", &ptemp, ckt, type, fast)) GCA(INPpName, ("capacitance", &ptemp, ckt, type, fast));
} }
} }

View File

@ -62,16 +62,16 @@ void INP2D(void *ckt, INPtables * tab, card * current)
/* create default D model */ /* create default D model */
IFnewUid(ckt, &uid, (IFuid) NULL, "D", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "D", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defDmod), uid)) IFC(newModel, (ckt, type, &(tab->defDmod), uid));
} }
mdfast = tab->defDmod; mdfast = tab->defDmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("area", &ptemp, ckt, type, fast)) GCA(INPpName, ("area", &ptemp, ckt, type, fast));
} }
} }

View File

@ -49,9 +49,8 @@ dot_nodeset(char *line, void *ckt, INPtables *tab, card *current,
INPgetTok(&line, &name, 1); INPgetTok(&line, &name, 1);
INPtermInsert(ckt, &name, tab, &node1); INPtermInsert(ckt, &name, tab, &node1);
ptemp.rValue = INPevaluate(&line, &error, 1); ptemp.rValue = INPevaluate(&line, &error, 1);
IFC(setNodeParm, IFC(setNodeParm, (ckt, node1, which, &ptemp, (IFvalue *) NULL));
(ckt, node1, which, &ptemp, continue;
(IFvalue *) NULL)) continue;
} }
LITERR(" Error: .nodeset syntax error.\n"); LITERR(" Error: .nodeset syntax error.\n");
break; break;
@ -273,9 +272,8 @@ dot_ic(char *line, void *ckt, INPtables *tab, card *current,
INPgetTok(&line, &name, 1); INPgetTok(&line, &name, 1);
INPtermInsert(ckt, &name, tab, &node1); INPtermInsert(ckt, &name, tab, &node1);
ptemp.rValue = INPevaluate(&line, &error, 1); ptemp.rValue = INPevaluate(&line, &error, 1);
IFC(setNodeParm, IFC(setNodeParm, (ckt, node1, which, &ptemp, (IFvalue *) NULL));
(ckt, node1, which, &ptemp, continue;
(IFvalue *) NULL)) continue;
} }
LITERR(" Error: .ic syntax error.\n"); LITERR(" Error: .ic syntax error.\n");
break; break;
@ -307,17 +305,17 @@ dot_ac(char *line, void *ckt, INPtables *tab, card *current,
LITERR("AC small signal analysis unsupported.\n"); LITERR("AC small signal analysis unsupported.\n");
return (0); return (0);
} }
IFC(newAnalysis, (ckt, which, "AC Analysis", &foo, task)) IFC(newAnalysis, (ckt, which, "AC Analysis", &foo, task));
INPgetTok(&line, &steptype, 1); /* get DEC, OCT, or LIN */ INPgetTok(&line, &steptype, 1); /* get DEC, OCT, or LIN */
ptemp.iValue = 1; ptemp.iValue = 1;
GCA(INPapName, (ckt, which, foo, steptype, &ptemp)) GCA(INPapName, (ckt, which, foo, steptype, &ptemp));
parm = INPgetValue(ckt, &line, IF_INTEGER, tab); /* number of points */ parm = INPgetValue(ckt, &line, IF_INTEGER, tab); /* number of points */
GCA(INPapName, (ckt, which, foo, "numsteps", parm)) GCA(INPapName, (ckt, which, foo, "numsteps", parm));
parm = INPgetValue(ckt, &line, IF_REAL, tab); /* fstart */ parm = INPgetValue(ckt, &line, IF_REAL, tab); /* fstart */
GCA(INPapName, (ckt, which, foo, "start", parm)) GCA(INPapName, (ckt, which, foo, "start", parm));
parm = INPgetValue(ckt, &line, IF_REAL, tab); /* fstop */ parm = INPgetValue(ckt, &line, IF_REAL, tab); /* fstop */
GCA(INPapName, (ckt, which, foo, "stop", parm)) GCA(INPapName, (ckt, which, foo, "stop", parm));
return (0); return (0);
} }
static int static int
@ -343,22 +341,22 @@ dot_pz(char *line, void *ckt, INPtables *tab, card *current,
LITERR("Pole-zero analysis unsupported.\n"); LITERR("Pole-zero analysis unsupported.\n");
return (0); return (0);
} }
IFC(newAnalysis, (ckt, which, "Pole-Zero Analysis", &foo, task)) IFC(newAnalysis, (ckt, which, "Pole-Zero Analysis", &foo, task));
parm = INPgetValue(ckt, &line, IF_NODE, tab); parm = INPgetValue(ckt, &line, IF_NODE, tab);
GCA(INPapName, (ckt, which, foo, "nodei", parm)) GCA(INPapName, (ckt, which, foo, "nodei", parm));
parm = INPgetValue(ckt, &line, IF_NODE, tab); parm = INPgetValue(ckt, &line, IF_NODE, tab);
GCA(INPapName, (ckt, which, foo, "nodeg", parm)) GCA(INPapName, (ckt, which, foo, "nodeg", parm));
parm = INPgetValue(ckt, &line, IF_NODE, tab); parm = INPgetValue(ckt, &line, IF_NODE, tab);
GCA(INPapName, (ckt, which, foo, "nodej", parm)) GCA(INPapName, (ckt, which, foo, "nodej", parm));
parm = INPgetValue(ckt, &line, IF_NODE, tab); parm = INPgetValue(ckt, &line, IF_NODE, tab);
GCA(INPapName, (ckt, which, foo, "nodek", parm)) GCA(INPapName, (ckt, which, foo, "nodek", parm));
INPgetTok(&line, &steptype, 1); /* get V or I */ INPgetTok(&line, &steptype, 1); /* get V or I */
ptemp.iValue = 1; ptemp.iValue = 1;
GCA(INPapName, (ckt, which, foo, steptype, &ptemp)) GCA(INPapName, (ckt, which, foo, steptype, &ptemp));
INPgetTok(&line, &steptype, 1); /* get POL, ZER, or PZ */ INPgetTok(&line, &steptype, 1); /* get POL, ZER, or PZ */
ptemp.iValue = 1; ptemp.iValue = 1;
GCA(INPapName, (ckt, which, foo, steptype, &ptemp)) GCA(INPapName, (ckt, which, foo, steptype, &ptemp));
return (0); return (0);
} }

View File

@ -53,16 +53,16 @@ void INP2E(void *ckt, INPtables * tab, card * current)
if (!tab->defEmod) { if (!tab->defEmod) {
/* create default E model */ /* create default E model */
IFnewUid(ckt, &uid, (IFuid) NULL, "E", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "E", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defEmod), uid)) IFC(newModel, (ckt, type, &(tab->defEmod), uid));
} }
IFC(newInstance, (ckt, tab->defEmod, &fast, name)) IFC(newInstance, (ckt, tab->defEmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
IFC(bindNode, (ckt, fast, 4, node4)) IFC(bindNode, (ckt, fast, 4, node4));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("gain", &ptemp, ckt, type, fast)) GCA(INPpName, ("gain", &ptemp, ckt, type, fast));
} }
} }

View File

@ -46,16 +46,16 @@ void INP2F(void *ckt, INPtables * tab, card * current)
if (!tab->defFmod) { if (!tab->defFmod) {
/* create default F model */ /* create default F model */
IFnewUid(ckt, &uid, (IFuid) NULL, "F", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "F", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defFmod), uid)) IFC(newModel, (ckt, type, &(tab->defFmod), uid));
} }
IFC(newInstance, (ckt, tab->defFmod, &fast, name)) IFC(newInstance, (ckt, tab->defFmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
parm = INPgetValue(ckt, &line, IF_INSTANCE, tab); parm = INPgetValue(ckt, &line, IF_INSTANCE, tab);
GCA(INPpName, ("control", parm, ckt, type, fast)) GCA(INPpName, ("control", parm, ckt, type, fast));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("gain", &ptemp, ckt, type, fast)) GCA(INPpName, ("gain", &ptemp, ckt, type, fast));
} }
} }

View File

@ -53,16 +53,16 @@ void INP2G(void *ckt, INPtables * tab, card * current)
if (!tab->defGmod) { if (!tab->defGmod) {
/* create default G model */ /* create default G model */
IFnewUid(ckt, &uid, (IFuid) NULL, "G", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "G", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defGmod), uid)) IFC(newModel, (ckt, type, &(tab->defGmod), uid));
} }
IFC(newInstance, (ckt, tab->defGmod, &fast, name)) IFC(newInstance, (ckt, tab->defGmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
IFC(bindNode, (ckt, fast, 4, node4)) IFC(bindNode, (ckt, fast, 4, node4));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("gain", &ptemp, ckt, type, fast)) GCA(INPpName, ("gain", &ptemp, ckt, type, fast));
} }
} }

View File

@ -46,16 +46,16 @@ void INP2H(void *ckt, INPtables * tab, card * current)
if (!tab->defHmod) { if (!tab->defHmod) {
/* create default H model */ /* create default H model */
IFnewUid(ckt, &uid, (IFuid) NULL, "H", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "H", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defHmod), uid)) IFC(newModel, (ckt, type, &(tab->defHmod), uid));
} }
IFC(newInstance, (ckt, tab->defHmod, &fast, name)) IFC(newInstance, (ckt, tab->defHmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
parm = INPgetValue(ckt, &line, IF_INSTANCE, tab); parm = INPgetValue(ckt, &line, IF_INSTANCE, tab);
GCA(INPpName, ("control", parm, ckt, type, fast)) GCA(INPpName, ("control", parm, ckt, type, fast));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("gain", &ptemp, ckt, type, fast)) GCA(INPpName, ("gain", &ptemp, ckt, type, fast));
} }
} }

View File

@ -46,14 +46,14 @@ void INP2I(void *ckt, INPtables * tab, card * current)
if (!tab->defImod) { if (!tab->defImod) {
/* create default I model */ /* create default I model */
IFnewUid(ckt, &uid, (IFuid) NULL, "I", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "I", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defImod), uid)) IFC(newModel, (ckt, type, &(tab->defImod), uid));
} }
IFC(newInstance, (ckt, tab->defImod, &fast, name)) IFC(newInstance, (ckt, tab->defImod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("dc", &ptemp, ckt, type, fast)) GCA(INPpName, ("dc", &ptemp, ckt, type, fast));
} }
} }

View File

@ -67,17 +67,17 @@ void INP2J(void *ckt, INPtables * tab, card * current)
/* create default J model */ /* create default J model */
IFnewUid(ckt, &uid, (IFuid) NULL, "J", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "J", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defJmod), uid)) IFC(newModel, (ckt, type, &(tab->defJmod), uid));
} }
mdfast = tab->defJmod; mdfast = tab->defJmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("area", &ptemp, ckt, type, fast)) GCA(INPpName, ("area", &ptemp, ckt, type, fast));
} }
} }

View File

@ -38,18 +38,18 @@ void INP2K(void *ckt, INPtables * tab, card * current)
if (!tab->defKmod) { if (!tab->defKmod) {
/* create deafult K model */ /* create deafult K model */
IFnewUid(ckt, &uid, (IFuid) NULL, "K", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "K", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defKmod), uid)) IFC(newModel, (ckt, type, &(tab->defKmod), uid));
} }
IFC(newInstance, (ckt, tab->defKmod, &fast, name)) IFC(newInstance, (ckt, tab->defKmod, &fast, name));
parm = INPgetValue(ckt, &line, IF_INSTANCE, tab); parm = INPgetValue(ckt, &line, IF_INSTANCE, tab);
GCA(INPpName, ("inductor1", parm, ckt, type, fast)) GCA(INPpName, ("inductor1", parm, ckt, type, fast));
parm = INPgetValue(ckt, &line, IF_INSTANCE, tab); parm = INPgetValue(ckt, &line, IF_INSTANCE, tab);
GCA(INPpName, ("inductor2", parm, ckt, type, fast)) GCA(INPpName, ("inductor2", parm, ckt, type, fast));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("coefficient", &ptemp, ckt, type, fast)) GCA(INPpName, ("coefficient", &ptemp, ckt, type, fast));
} }
} }

View File

@ -45,14 +45,14 @@ void INP2L(void *ckt, INPtables * tab, card * current)
if (!tab->defLmod) { if (!tab->defLmod) {
/* create default L model */ /* create default L model */
IFnewUid(ckt, &uid, (IFuid) NULL, "L", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "L", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defLmod), uid)) IFC(newModel, (ckt, type, &(tab->defLmod), uid));
} }
IFC(newInstance, (ckt, tab->defLmod, &fast, name)) IFC(newInstance, (ckt, tab->defLmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("inductance", &ptemp, ckt, type, fast)) GCA(INPpName, ("inductance", &ptemp, ckt, type, fast));
} }
} }

View File

@ -84,17 +84,17 @@ void INP2M(void *ckt, INPtables * tab, card * current)
/* create default M model */ /* create default M model */
IFnewUid(ckt, &uid, (IFuid) NULL, "M", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "M", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defMmod), uid)) IFC(newModel, (ckt, type, &(tab->defMmod), uid));
} }
mdfast = tab->defMmod; mdfast = tab->defMmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
IFC(bindNode, (ckt, fast, 4, node4)) IFC(bindNode, (ckt, fast, 4, node4));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
LITERR(" error: no unlabeled parameter permitted on mosfet\n"); LITERR(" error: no unlabeled parameter permitted on mosfet\n");
} }
} }

View File

@ -78,14 +78,14 @@ void INP2O(void *ckt, INPtables * tab, card * current)
/* create default O model */ /* create default O model */
IFnewUid(ckt, &uid, (IFuid) NULL, "O", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "O", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defOmod), uid)) IFC(newModel, (ckt, type, &(tab->defOmod), uid));
} }
mdfast = tab->defOmod; mdfast = tab->defOmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
IFC(bindNode, (ckt, fast, 4, node4)) IFC(bindNode, (ckt, fast, 4, node4));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
} }

View File

@ -78,18 +78,18 @@ void INP2Q(void *ckt, INPtables * tab, card * current, void *gnode)
/* create default Q model */ /* create default Q model */
IFnewUid(ckt, &uid, (IFuid) NULL, "Q", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "Q", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defQmod), uid)) IFC(newModel, (ckt, type, &(tab->defQmod), uid));
} }
mdfast = tab->defQmod; mdfast = tab->defQmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
IFC(bindNode, (ckt, fast, 4, node4)) IFC(bindNode, (ckt, fast, 4, node4));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("area", &ptemp, ckt, type, fast)) GCA(INPpName, ("area", &ptemp, ckt, type, fast));
} }
} }

View File

@ -63,8 +63,10 @@ void INP2R(void *ckt, INPtables * tab, card * current)
INPgetTok(&line, &model, 1); INPgetTok(&line, &model, 1);
if (*model) { /* token isn't null */ if (*model) {
if (INPlookMod(model)) { /* If this is a valid model connect it */ /* token isn't null */
if (INPlookMod(model)) {
/* If this is a valid model connect it */
INPinsert(&model, tab); INPinsert(&model, tab);
thismodel = (INPmodel *) NULL; thismodel = (INPmodel *) NULL;
current->error = INPgetMod(ckt, model, &thismodel, tab); current->error = INPgetMod(ckt, model, &thismodel, tab);
@ -76,27 +78,28 @@ void INP2R(void *ckt, INPtables * tab, card * current)
mdfast = thismodel->INPmodfast; mdfast = thismodel->INPmodfast;
type = thismodel->INPmodType; type = thismodel->INPmodType;
} }
} else {
} else { /* It is not a model */ /* It is not a model */
line = saveline; /* go back */ line = saveline; /* go back */
type = mytype; type = mytype;
if (!tab->defRmod) { /* create default R model */ if (!tab->defRmod) { /* create default R model */
IFnewUid(ckt, &uid, (IFuid) NULL, "R", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "R", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defRmod), uid)) IFC(newModel, (ckt, type, &(tab->defRmod), uid));
} }
mdfast = tab->defRmod; mdfast = tab->defRmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
} else { /* The token is null and a default model will be created */ } else {
/* The token is null and a default model will be created */
type = mytype; type = mytype;
if (!tab->defRmod) { if (!tab->defRmod) {
/* create default R model */ /* create default R model */
IFnewUid(ckt, &uid, (IFuid) NULL, "R", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "R", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defRmod), uid)) IFC(newModel, (ckt, type, &(tab->defRmod), uid));
} }
IFC(newInstance, (ckt, tab->defRmod, &fast, name)) IFC(newInstance, (ckt, tab->defRmod, &fast, name));
} }
if (error1 == 0) { /* got a resistance above */ if (error1 == 0) { /* got a resistance above */
@ -104,12 +107,12 @@ void INP2R(void *ckt, INPtables * tab, card * current)
GCA(INPpName, ("resistance", &ptemp, ckt, type, fast)) GCA(INPpName, ("resistance", &ptemp, ckt, type, fast))
} }
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("resistance", &ptemp, ckt, type, fast)) GCA(INPpName, ("resistance", &ptemp, ckt, type, fast));
} }
return; return;
} }

View File

@ -70,17 +70,17 @@ void INP2S(void *ckt, INPtables * tab, card * current)
/* create deafult S model */ /* create deafult S model */
IFnewUid(ckt, &uid, (IFuid) NULL, "S", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "S", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defSmod), uid)) IFC(newModel, (ckt, type, &(tab->defSmod), uid));
} }
mdfast = tab->defSmod; mdfast = tab->defSmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
IFC(bindNode, (ckt, fast, 4, node4)) IFC(bindNode, (ckt, fast, 4, node4));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
/* ignore a number */ /* ignore a number */
} }
} }

View File

@ -54,12 +54,12 @@ void INP2T(void *ckt, INPtables * tab, card * current)
if (!tab->defTmod) { if (!tab->defTmod) {
/* create deafult T model */ /* create deafult T model */
IFnewUid(ckt, &uid, (IFuid) NULL, "T", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "T", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defTmod), uid)) IFC(newModel, (ckt, type, &(tab->defTmod), uid));
} }
IFC(newInstance, (ckt, tab->defTmod, &fast, name)) IFC(newInstance, (ckt, tab->defTmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
IFC(bindNode, (ckt, fast, 4, node4)) IFC(bindNode, (ckt, fast, 4, node4));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
} }

View File

@ -65,13 +65,13 @@ void INP2U(void *ckt, INPtables * tab, card * current)
/* create deafult U model */ /* create deafult U model */
IFnewUid(ckt, &uid, (IFuid) NULL, "U", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "U", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defUmod), uid)) IFC(newModel, (ckt, type, &(tab->defUmod), uid));
} }
mdfast = tab->defUmod; mdfast = tab->defUmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
} }

View File

@ -46,14 +46,14 @@ void INP2V(void *ckt, INPtables * tab, card * current)
if (!tab->defVmod) { if (!tab->defVmod) {
/* create default V model */ /* create default V model */
IFnewUid(ckt, &uid, (IFuid) NULL, "V", UID_MODEL, (void **) NULL); IFnewUid(ckt, &uid, (IFuid) NULL, "V", UID_MODEL, (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defVmod), uid)) IFC(newModel, (ckt, type, &(tab->defVmod), uid));
} }
IFC(newInstance, (ckt, tab->defVmod, &fast, name)) IFC(newInstance, (ckt, tab->defVmod, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("dc", &ptemp, ckt, type, fast)) GCA(INPpName, ("dc", &ptemp, ckt, type, fast));
} }
} }

View File

@ -67,17 +67,17 @@ void INP2W(void *ckt, INPtables * tab, card * current)
/* create deafult W model */ /* create deafult W model */
IFnewUid(ckt, &uid, (IFuid) NULL, "W", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "W", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defWmod), uid)) IFC(newModel, (ckt, type, &(tab->defWmod), uid));
} }
mdfast = tab->defWmod; mdfast = tab->defWmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
GCA(INPpName, ("control", &ptemp, ckt, type, fast)) GCA(INPpName, ("control", &ptemp, ckt, type, fast));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
/* ignore a number */ /* ignore a number */
} }
} }

View File

@ -67,17 +67,17 @@ void INP2Z(void *ckt, INPtables * tab, card * current)
/* create default Z model */ /* create default Z model */
IFnewUid(ckt, &uid, (IFuid) NULL, "Z", UID_MODEL, IFnewUid(ckt, &uid, (IFuid) NULL, "Z", UID_MODEL,
(void **) NULL); (void **) NULL);
IFC(newModel, (ckt, type, &(tab->defZmod), uid)) IFC(newModel, (ckt, type, &(tab->defZmod), uid));
} }
mdfast = tab->defZmod; mdfast = tab->defZmod;
} }
IFC(newInstance, (ckt, mdfast, &fast, name)) IFC(newInstance, (ckt, mdfast, &fast, name));
IFC(bindNode, (ckt, fast, 1, node1)) IFC(bindNode, (ckt, fast, 1, node1));
IFC(bindNode, (ckt, fast, 2, node2)) IFC(bindNode, (ckt, fast, 2, node2));
IFC(bindNode, (ckt, fast, 3, node3)) IFC(bindNode, (ckt, fast, 3, node3));
PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab)) PARSECALL((&line, ckt, type, fast, &leadval, &waslead, tab));
if (waslead) { if (waslead) {
ptemp.rValue = leadval; ptemp.rValue = leadval;
GCA(INPpName, ("area", &ptemp, ckt, type, fast)) GCA(INPpName, ("area", &ptemp, ckt, type, fast));
} }
} }