src/spicelib/devices/*/*set.c, XXXunsetup(), reset local node variables unconditionally

and use a more robust test for local node numbers.

That is, transform this pattern :
  if (here->Node && ...) {
     CKTdltNNum(ckt, here->Node);
     here->Node = 0;
  }
into this :
  if (here->Node > 0 && ...)
     CKTdltNNum(ckt, here->Node);
  here->Node = 0;

The change of "!= 0" ==> "> 0" accounts for rare cases where "Node"
   might have been set to -1, (meaning "unconnected")
The unconditional execution of the zero assignment is for those cases
  where "Node" might have been assigned to some external or other local Node.
If so, the variable would not be set to zero, confusing the "guarding" if's
  in the corresponding XXXsetup() routine.

The Pattern to follow is:
  1) unset and delete *all* local Nodes in XXXunsetup()
  2) allocate all of them again in a re-invocation of XXXsetup(),
       exactly the same way as in the very first invocation.
This commit is contained in:
rlar 2017-01-29 11:33:58 +01:00
parent 5516d33bb2
commit fad6d1f3b7
38 changed files with 887 additions and 1186 deletions

View File

@ -128,10 +128,10 @@ ASRCunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (; model; model = model->ASRCnextModel) for (; model; model = model->ASRCnextModel)
for (here = model->ASRCinstances; here; here = here->ASRCnextInstance) { for (here = model->ASRCinstances; here; here = here->ASRCnextInstance) {
if (here->ASRCbranch) { if (here->ASRCbranch > 0)
CKTdltNNum(ckt, here->ASRCbranch); CKTdltNNum(ckt, here->ASRCbranch);
here->ASRCbranch = 0; here->ASRCbranch = 0;
}
FREE(here->ASRCposptr); FREE(here->ASRCposptr);
FREE(here->ASRCvars); FREE(here->ASRCvars);
FREE(here->ASRCacValues); FREE(here->ASRCacValues);

View File

@ -481,24 +481,20 @@ BJTunsetup(
for (here = model->BJTinstances; here != NULL; for (here = model->BJTinstances; here != NULL;
here=here->BJTnextInstance) here=here->BJTnextInstance)
{ {
if (here->BJTemitPrimeNode if (here->BJTemitPrimeNode > 0
&& here->BJTemitPrimeNode != here->BJTemitNode) && here->BJTemitPrimeNode != here->BJTemitNode)
{ CKTdltNNum(ckt, here->BJTemitPrimeNode);
CKTdltNNum(ckt, here->BJTemitPrimeNode); here->BJTemitPrimeNode = 0;
here->BJTemitPrimeNode = 0;
} if (here->BJTbasePrimeNode > 0
if (here->BJTbasePrimeNode
&& here->BJTbasePrimeNode != here->BJTbaseNode) && here->BJTbasePrimeNode != here->BJTbaseNode)
{ CKTdltNNum(ckt, here->BJTbasePrimeNode);
CKTdltNNum(ckt, here->BJTbasePrimeNode); here->BJTbasePrimeNode = 0;
here->BJTbasePrimeNode = 0;
} if (here->BJTcolPrimeNode > 0
if (here->BJTcolPrimeNode
&& here->BJTcolPrimeNode != here->BJTcolNode) && here->BJTcolPrimeNode != here->BJTcolNode)
{
CKTdltNNum(ckt, here->BJTcolPrimeNode); CKTdltNNum(ckt, here->BJTcolPrimeNode);
here->BJTcolPrimeNode = 0; here->BJTcolPrimeNode = 0;
}
} }
} }
return OK; return OK;

View File

@ -412,18 +412,15 @@ B1unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->B1instances; here != NULL; for (here = model->B1instances; here != NULL;
here=here->B1nextInstance) here=here->B1nextInstance)
{ {
if (here->B1sNodePrime if (here->B1sNodePrime > 0
&& here->B1sNodePrime != here->B1sNode) && here->B1sNodePrime != here->B1sNode)
{
CKTdltNNum(ckt, here->B1sNodePrime); CKTdltNNum(ckt, here->B1sNodePrime);
here->B1sNodePrime = 0; here->B1sNodePrime = 0;
}
if (here->B1dNodePrime if (here->B1dNodePrime > 0
&& here->B1dNodePrime != here->B1dNode) && here->B1dNodePrime != here->B1dNode)
{
CKTdltNNum(ckt, here->B1dNodePrime); CKTdltNNum(ckt, here->B1dNodePrime);
here->B1dNodePrime = 0; here->B1dNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -581,18 +581,15 @@ B2unsetup(
for (here = model->B2instances; here != NULL; for (here = model->B2instances; here != NULL;
here=here->B2nextInstance) here=here->B2nextInstance)
{ {
if (here->B2sNodePrime if (here->B2sNodePrime > 0
&& here->B2sNodePrime != here->B2sNode) && here->B2sNodePrime != here->B2sNode)
{
CKTdltNNum(ckt, here->B2sNodePrime); CKTdltNNum(ckt, here->B2sNodePrime);
here->B2sNodePrime = 0; here->B2sNodePrime = 0;
}
if (here->B2dNodePrime if (here->B2dNodePrime > 0
&& here->B2dNodePrime != here->B2dNode) && here->B2dNodePrime != here->B2dNode)
{
CKTdltNNum(ckt, here->B2dNodePrime); CKTdltNNum(ckt, here->B2dNodePrime);
here->B2dNodePrime = 0; here->B2dNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -1134,23 +1134,19 @@ BSIM3unsetup(
for (here = model->BSIM3instances; here != NULL; for (here = model->BSIM3instances; here != NULL;
here=here->BSIM3nextInstance) here=here->BSIM3nextInstance)
{ {
if (here->BSIM3qNode) if (here->BSIM3qNode > 0)
{
CKTdltNNum(ckt, here->BSIM3qNode); CKTdltNNum(ckt, here->BSIM3qNode);
here->BSIM3qNode = 0; here->BSIM3qNode = 0;
}
if (here->BSIM3sNodePrime if (here->BSIM3sNodePrime > 0
&& here->BSIM3sNodePrime != here->BSIM3sNode) && here->BSIM3sNodePrime != here->BSIM3sNode)
{
CKTdltNNum(ckt, here->BSIM3sNodePrime); CKTdltNNum(ckt, here->BSIM3sNodePrime);
here->BSIM3sNodePrime = 0; here->BSIM3sNodePrime = 0;
}
if (here->BSIM3dNodePrime if (here->BSIM3dNodePrime > 0
&& here->BSIM3dNodePrime != here->BSIM3dNode) && here->BSIM3dNodePrime != here->BSIM3dNode)
{
CKTdltNNum(ckt, here->BSIM3dNodePrime); CKTdltNNum(ckt, here->BSIM3dNodePrime);
here->BSIM3dNodePrime = 0; here->BSIM3dNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -1363,251 +1363,203 @@ B3SOIDDunsetup(GENmodel *inModel, CKTcircuit *ckt)
here=here->B3SOIDDnextInstance) here=here->B3SOIDDnextInstance)
{ {
/* here for debugging purpose only */ /* here for debugging purpose only */
if (here->B3SOIDDdum5Node) if (here->B3SOIDDdum5Node > 0)
{
CKTdltNNum(ckt, here->B3SOIDDdum5Node); CKTdltNNum(ckt, here->B3SOIDDdum5Node);
here->B3SOIDDdum5Node = 0; here->B3SOIDDdum5Node = 0;
}
if (here->B3SOIDDdum4Node)
{
CKTdltNNum(ckt, here->B3SOIDDdum4Node);
here->B3SOIDDdum4Node = 0;
}
if (here->B3SOIDDdum3Node)
{
CKTdltNNum(ckt, here->B3SOIDDdum3Node);
here->B3SOIDDdum3Node = 0;
}
if (here->B3SOIDDdum2Node)
{
CKTdltNNum(ckt, here->B3SOIDDdum2Node);
here->B3SOIDDdum2Node = 0;
}
if (here->B3SOIDDdum1Node)
{
CKTdltNNum(ckt, here->B3SOIDDdum1Node);
here->B3SOIDDdum1Node = 0;
}
if (here->B3SOIDDcbeNode)
{
CKTdltNNum(ckt, here->B3SOIDDcbeNode);
here->B3SOIDDcbeNode = 0;
}
if (here->B3SOIDDvcscvNode)
{
CKTdltNNum(ckt, here->B3SOIDDvcscvNode);
here->B3SOIDDvcscvNode = 0;
}
if (here->B3SOIDDvdscvNode)
{
CKTdltNNum(ckt, here->B3SOIDDvdscvNode);
here->B3SOIDDvdscvNode = 0;
}
if (here->B3SOIDDqgNode)
{
CKTdltNNum(ckt, here->B3SOIDDqgNode);
here->B3SOIDDqgNode = 0;
}
if (here->B3SOIDDqdNode)
{
CKTdltNNum(ckt, here->B3SOIDDqdNode);
here->B3SOIDDqdNode = 0;
}
if (here->B3SOIDDqeNode)
{
CKTdltNNum(ckt, here->B3SOIDDqeNode);
here->B3SOIDDqeNode = 0;
}
if (here->B3SOIDDqsubs2Node)
{
CKTdltNNum(ckt, here->B3SOIDDqsubs2Node);
here->B3SOIDDqsubs2Node = 0;
}
if (here->B3SOIDDqsubs1Node)
{
CKTdltNNum(ckt, here->B3SOIDDqsubs1Node);
here->B3SOIDDqsubs1Node = 0;
}
if (here->B3SOIDDqsub0Node)
{
CKTdltNNum(ckt, here->B3SOIDDqsub0Node);
here->B3SOIDDqsub0Node = 0;
}
if (here->B3SOIDDqaccNode)
{
CKTdltNNum(ckt, here->B3SOIDDqaccNode);
here->B3SOIDDqaccNode = 0;
}
if (here->B3SOIDDxcsatNode)
{
CKTdltNNum(ckt, here->B3SOIDDxcsatNode);
here->B3SOIDDxcsatNode = 0;
}
if (here->B3SOIDDvgsteffNode)
{
CKTdltNNum(ckt, here->B3SOIDDvgsteffNode);
here->B3SOIDDvgsteffNode = 0;
}
if (here->B3SOIDDvthNode)
{
CKTdltNNum(ckt, here->B3SOIDDvthNode);
here->B3SOIDDvthNode = 0;
}
if (here->B3SOIDDvbs0teffNode)
{
CKTdltNNum(ckt, here->B3SOIDDvbs0teffNode);
here->B3SOIDDvbs0teffNode = 0;
}
if (here->B3SOIDDgmeNode)
{
CKTdltNNum(ckt, here->B3SOIDDgmeNode);
here->B3SOIDDgmeNode = 0;
}
if (here->B3SOIDDgdsNode)
{
CKTdltNNum(ckt, here->B3SOIDDgdsNode);
here->B3SOIDDgdsNode = 0;
}
if (here->B3SOIDDgmbsNode)
{
CKTdltNNum(ckt, here->B3SOIDDgmbsNode);
here->B3SOIDDgmbsNode = 0;
}
if (here->B3SOIDDgmNode)
{
CKTdltNNum(ckt, here->B3SOIDDgmNode);
here->B3SOIDDgmNode = 0;
}
if (here->B3SOIDDqjdNode)
{
CKTdltNNum(ckt, here->B3SOIDDqjdNode);
here->B3SOIDDqjdNode = 0;
}
if (here->B3SOIDDqjsNode)
{
CKTdltNNum(ckt, here->B3SOIDDqjsNode);
here->B3SOIDDqjsNode = 0;
}
if (here->B3SOIDDqbfNode)
{
CKTdltNNum(ckt, here->B3SOIDDqbfNode);
here->B3SOIDDqbfNode = 0;
}
if (here->B3SOIDDqbNode)
{
CKTdltNNum(ckt, here->B3SOIDDqbNode);
here->B3SOIDDqbNode = 0;
}
if (here->B3SOIDDcbgNode)
{
CKTdltNNum(ckt, here->B3SOIDDcbgNode);
here->B3SOIDDcbgNode = 0;
}
if (here->B3SOIDDcbdNode)
{
CKTdltNNum(ckt, here->B3SOIDDcbdNode);
here->B3SOIDDcbdNode = 0;
}
if (here->B3SOIDDcbbNode)
{
CKTdltNNum(ckt, here->B3SOIDDcbbNode);
here->B3SOIDDcbbNode = 0;
}
if (here->B3SOIDDxcNode)
{
CKTdltNNum(ckt, here->B3SOIDDxcNode);
here->B3SOIDDxcNode = 0;
}
if (here->B3SOIDDvbseffNode)
{
CKTdltNNum(ckt, here->B3SOIDDvbseffNode);
here->B3SOIDDvbseffNode = 0;
}
if (here->B3SOIDDvbs0effNode)
{
CKTdltNNum(ckt, here->B3SOIDDvbs0effNode);
here->B3SOIDDvbs0effNode = 0;
}
if (here->B3SOIDDabeffNode)
{
CKTdltNNum(ckt, here->B3SOIDDabeffNode);
here->B3SOIDDabeffNode = 0;
}
if (here->B3SOIDDibpNode)
{
CKTdltNNum(ckt, here->B3SOIDDibpNode);
here->B3SOIDDibpNode = 0;
}
if (here->B3SOIDDitunNode)
{
CKTdltNNum(ckt, here->B3SOIDDitunNode);
here->B3SOIDDitunNode = 0;
}
if (here->B3SOIDDigidlNode)
{
CKTdltNNum(ckt, here->B3SOIDDigidlNode);
here->B3SOIDDigidlNode = 0;
}
if (here->B3SOIDDiiiNode)
{
CKTdltNNum(ckt, here->B3SOIDDiiiNode);
here->B3SOIDDiiiNode = 0;
}
if (here->B3SOIDDibdNode)
{
CKTdltNNum(ckt, here->B3SOIDDibdNode);
here->B3SOIDDibdNode = 0;
}
if (here->B3SOIDDibsNode)
{
CKTdltNNum(ckt, here->B3SOIDDibsNode);
here->B3SOIDDibsNode = 0;
}
if (here->B3SOIDDicNode)
{
CKTdltNNum(ckt, here->B3SOIDDicNode);
here->B3SOIDDicNode = 0;
}
if (here->B3SOIDDidsNode)
{
CKTdltNNum(ckt, here->B3SOIDDidsNode);
here->B3SOIDDidsNode = 0;
}
if (here->B3SOIDDvbsNode)
{
CKTdltNNum(ckt, here->B3SOIDDvbsNode);
here->B3SOIDDvbsNode = 0;
}
if (here->B3SOIDDtempNode && if (here->B3SOIDDdum4Node > 0)
CKTdltNNum(ckt, here->B3SOIDDdum4Node);
here->B3SOIDDdum4Node = 0;
if (here->B3SOIDDdum3Node > 0)
CKTdltNNum(ckt, here->B3SOIDDdum3Node);
here->B3SOIDDdum3Node = 0;
if (here->B3SOIDDdum2Node > 0)
CKTdltNNum(ckt, here->B3SOIDDdum2Node);
here->B3SOIDDdum2Node = 0;
if (here->B3SOIDDdum1Node > 0)
CKTdltNNum(ckt, here->B3SOIDDdum1Node);
here->B3SOIDDdum1Node = 0;
if (here->B3SOIDDcbeNode > 0)
CKTdltNNum(ckt, here->B3SOIDDcbeNode);
here->B3SOIDDcbeNode = 0;
if (here->B3SOIDDvcscvNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvcscvNode);
here->B3SOIDDvcscvNode = 0;
if (here->B3SOIDDvdscvNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvdscvNode);
here->B3SOIDDvdscvNode = 0;
if (here->B3SOIDDqgNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqgNode);
here->B3SOIDDqgNode = 0;
if (here->B3SOIDDqdNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqdNode);
here->B3SOIDDqdNode = 0;
if (here->B3SOIDDqeNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqeNode);
here->B3SOIDDqeNode = 0;
if (here->B3SOIDDqsubs2Node > 0)
CKTdltNNum(ckt, here->B3SOIDDqsubs2Node);
here->B3SOIDDqsubs2Node = 0;
if (here->B3SOIDDqsubs1Node > 0)
CKTdltNNum(ckt, here->B3SOIDDqsubs1Node);
here->B3SOIDDqsubs1Node = 0;
if (here->B3SOIDDqsub0Node > 0)
CKTdltNNum(ckt, here->B3SOIDDqsub0Node);
here->B3SOIDDqsub0Node = 0;
if (here->B3SOIDDqaccNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqaccNode);
here->B3SOIDDqaccNode = 0;
if (here->B3SOIDDxcsatNode > 0)
CKTdltNNum(ckt, here->B3SOIDDxcsatNode);
here->B3SOIDDxcsatNode = 0;
if (here->B3SOIDDvgsteffNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvgsteffNode);
here->B3SOIDDvgsteffNode = 0;
if (here->B3SOIDDvthNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvthNode);
here->B3SOIDDvthNode = 0;
if (here->B3SOIDDvbs0teffNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvbs0teffNode);
here->B3SOIDDvbs0teffNode = 0;
if (here->B3SOIDDgmeNode > 0)
CKTdltNNum(ckt, here->B3SOIDDgmeNode);
here->B3SOIDDgmeNode = 0;
if (here->B3SOIDDgdsNode > 0)
CKTdltNNum(ckt, here->B3SOIDDgdsNode);
here->B3SOIDDgdsNode = 0;
if (here->B3SOIDDgmbsNode > 0)
CKTdltNNum(ckt, here->B3SOIDDgmbsNode);
here->B3SOIDDgmbsNode = 0;
if (here->B3SOIDDgmNode > 0)
CKTdltNNum(ckt, here->B3SOIDDgmNode);
here->B3SOIDDgmNode = 0;
if (here->B3SOIDDqjdNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqjdNode);
here->B3SOIDDqjdNode = 0;
if (here->B3SOIDDqjsNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqjsNode);
here->B3SOIDDqjsNode = 0;
if (here->B3SOIDDqbfNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqbfNode);
here->B3SOIDDqbfNode = 0;
if (here->B3SOIDDqbNode > 0)
CKTdltNNum(ckt, here->B3SOIDDqbNode);
here->B3SOIDDqbNode = 0;
if (here->B3SOIDDcbgNode > 0)
CKTdltNNum(ckt, here->B3SOIDDcbgNode);
here->B3SOIDDcbgNode = 0;
if (here->B3SOIDDcbdNode > 0)
CKTdltNNum(ckt, here->B3SOIDDcbdNode);
here->B3SOIDDcbdNode = 0;
if (here->B3SOIDDcbbNode > 0)
CKTdltNNum(ckt, here->B3SOIDDcbbNode);
here->B3SOIDDcbbNode = 0;
if (here->B3SOIDDxcNode > 0)
CKTdltNNum(ckt, here->B3SOIDDxcNode);
here->B3SOIDDxcNode = 0;
if (here->B3SOIDDvbseffNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvbseffNode);
here->B3SOIDDvbseffNode = 0;
if (here->B3SOIDDvbs0effNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvbs0effNode);
here->B3SOIDDvbs0effNode = 0;
if (here->B3SOIDDabeffNode > 0)
CKTdltNNum(ckt, here->B3SOIDDabeffNode);
here->B3SOIDDabeffNode = 0;
if (here->B3SOIDDibpNode > 0)
CKTdltNNum(ckt, here->B3SOIDDibpNode);
here->B3SOIDDibpNode = 0;
if (here->B3SOIDDitunNode > 0)
CKTdltNNum(ckt, here->B3SOIDDitunNode);
here->B3SOIDDitunNode = 0;
if (here->B3SOIDDigidlNode > 0)
CKTdltNNum(ckt, here->B3SOIDDigidlNode);
here->B3SOIDDigidlNode = 0;
if (here->B3SOIDDiiiNode > 0)
CKTdltNNum(ckt, here->B3SOIDDiiiNode);
here->B3SOIDDiiiNode = 0;
if (here->B3SOIDDibdNode > 0)
CKTdltNNum(ckt, here->B3SOIDDibdNode);
here->B3SOIDDibdNode = 0;
if (here->B3SOIDDibsNode > 0)
CKTdltNNum(ckt, here->B3SOIDDibsNode);
here->B3SOIDDibsNode = 0;
if (here->B3SOIDDicNode > 0)
CKTdltNNum(ckt, here->B3SOIDDicNode);
here->B3SOIDDicNode = 0;
if (here->B3SOIDDidsNode > 0)
CKTdltNNum(ckt, here->B3SOIDDidsNode);
here->B3SOIDDidsNode = 0;
if (here->B3SOIDDvbsNode > 0)
CKTdltNNum(ckt, here->B3SOIDDvbsNode);
here->B3SOIDDvbsNode = 0;
if (here->B3SOIDDtempNode > 0 &&
here->B3SOIDDtempNode != here->B3SOIDDtempNodeExt && here->B3SOIDDtempNode != here->B3SOIDDtempNodeExt &&
here->B3SOIDDtempNode != here->B3SOIDDbNodeExt && here->B3SOIDDtempNode != here->B3SOIDDbNodeExt &&
here->B3SOIDDtempNode != here->B3SOIDDpNodeExt) here->B3SOIDDtempNode != here->B3SOIDDpNodeExt)
{
CKTdltNNum(ckt, here->B3SOIDDtempNode); CKTdltNNum(ckt, here->B3SOIDDtempNode);
here->B3SOIDDtempNode = 0; here->B3SOIDDtempNode = 0;
}
if (here->B3SOIDDbNode && if (here->B3SOIDDbNode > 0 &&
here->B3SOIDDbNode != here->B3SOIDDbNodeExt && here->B3SOIDDbNode != here->B3SOIDDbNodeExt &&
here->B3SOIDDbNode != here->B3SOIDDpNodeExt) here->B3SOIDDbNode != here->B3SOIDDpNodeExt)
{
CKTdltNNum(ckt, here->B3SOIDDbNode); CKTdltNNum(ckt, here->B3SOIDDbNode);
here->B3SOIDDbNode = 0; here->B3SOIDDbNode = 0;
}
here->B3SOIDDpNode = 0; here->B3SOIDDpNode = 0;
if (here->B3SOIDDsNodePrime if (here->B3SOIDDsNodePrime > 0
&& here->B3SOIDDsNodePrime != here->B3SOIDDsNode) && here->B3SOIDDsNodePrime != here->B3SOIDDsNode)
{
CKTdltNNum(ckt, here->B3SOIDDsNodePrime); CKTdltNNum(ckt, here->B3SOIDDsNodePrime);
here->B3SOIDDsNodePrime = 0; here->B3SOIDDsNodePrime = 0;
}
if (here->B3SOIDDdNodePrime if (here->B3SOIDDdNodePrime > 0
&& here->B3SOIDDdNodePrime != here->B3SOIDDdNode) && here->B3SOIDDdNodePrime != here->B3SOIDDdNode)
{
CKTdltNNum(ckt, here->B3SOIDDdNodePrime); CKTdltNNum(ckt, here->B3SOIDDdNodePrime);
here->B3SOIDDdNodePrime = 0; here->B3SOIDDdNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -1352,251 +1352,203 @@ B3SOIFDunsetup(GENmodel *inModel, CKTcircuit *ckt)
here=here->B3SOIFDnextInstance) here=here->B3SOIFDnextInstance)
{ {
/* here for debugging purpose only */ /* here for debugging purpose only */
if (here->B3SOIFDdum5Node) if (here->B3SOIFDdum5Node > 0)
{
CKTdltNNum(ckt, here->B3SOIFDdum5Node); CKTdltNNum(ckt, here->B3SOIFDdum5Node);
here->B3SOIFDdum5Node = 0; here->B3SOIFDdum5Node = 0;
}
if (here->B3SOIFDdum4Node)
{
CKTdltNNum(ckt, here->B3SOIFDdum4Node);
here->B3SOIFDdum4Node = 0;
}
if (here->B3SOIFDdum3Node)
{
CKTdltNNum(ckt, here->B3SOIFDdum3Node);
here->B3SOIFDdum3Node = 0;
}
if (here->B3SOIFDdum2Node)
{
CKTdltNNum(ckt, here->B3SOIFDdum2Node);
here->B3SOIFDdum2Node = 0;
}
if (here->B3SOIFDdum1Node)
{
CKTdltNNum(ckt, here->B3SOIFDdum1Node);
here->B3SOIFDdum1Node = 0;
}
if (here->B3SOIFDcbeNode)
{
CKTdltNNum(ckt, here->B3SOIFDcbeNode);
here->B3SOIFDcbeNode = 0;
}
if (here->B3SOIFDvcscvNode)
{
CKTdltNNum(ckt, here->B3SOIFDvcscvNode);
here->B3SOIFDvcscvNode = 0;
}
if (here->B3SOIFDvdscvNode)
{
CKTdltNNum(ckt, here->B3SOIFDvdscvNode);
here->B3SOIFDvdscvNode = 0;
}
if (here->B3SOIFDqgNode)
{
CKTdltNNum(ckt, here->B3SOIFDqgNode);
here->B3SOIFDqgNode = 0;
}
if (here->B3SOIFDqdNode)
{
CKTdltNNum(ckt, here->B3SOIFDqdNode);
here->B3SOIFDqdNode = 0;
}
if (here->B3SOIFDqeNode)
{
CKTdltNNum(ckt, here->B3SOIFDqeNode);
here->B3SOIFDqeNode = 0;
}
if (here->B3SOIFDqsubs2Node)
{
CKTdltNNum(ckt, here->B3SOIFDqsubs2Node);
here->B3SOIFDqsubs2Node = 0;
}
if (here->B3SOIFDqsubs1Node)
{
CKTdltNNum(ckt, here->B3SOIFDqsubs1Node);
here->B3SOIFDqsubs1Node = 0;
}
if (here->B3SOIFDqsub0Node)
{
CKTdltNNum(ckt, here->B3SOIFDqsub0Node);
here->B3SOIFDqsub0Node = 0;
}
if (here->B3SOIFDqaccNode)
{
CKTdltNNum(ckt, here->B3SOIFDqaccNode);
here->B3SOIFDqaccNode = 0;
}
if (here->B3SOIFDxcsatNode)
{
CKTdltNNum(ckt, here->B3SOIFDxcsatNode);
here->B3SOIFDxcsatNode = 0;
}
if (here->B3SOIFDvgsteffNode)
{
CKTdltNNum(ckt, here->B3SOIFDvgsteffNode);
here->B3SOIFDvgsteffNode = 0;
}
if (here->B3SOIFDvthNode)
{
CKTdltNNum(ckt, here->B3SOIFDvthNode);
here->B3SOIFDvthNode = 0;
}
if (here->B3SOIFDvbs0teffNode)
{
CKTdltNNum(ckt, here->B3SOIFDvbs0teffNode);
here->B3SOIFDvbs0teffNode = 0;
}
if (here->B3SOIFDgmeNode)
{
CKTdltNNum(ckt, here->B3SOIFDgmeNode);
here->B3SOIFDgmeNode = 0;
}
if (here->B3SOIFDgdsNode)
{
CKTdltNNum(ckt, here->B3SOIFDgdsNode);
here->B3SOIFDgdsNode = 0;
}
if (here->B3SOIFDgmbsNode)
{
CKTdltNNum(ckt, here->B3SOIFDgmbsNode);
here->B3SOIFDgmbsNode = 0;
}
if (here->B3SOIFDgmNode)
{
CKTdltNNum(ckt, here->B3SOIFDgmNode);
here->B3SOIFDgmNode = 0;
}
if (here->B3SOIFDqjdNode)
{
CKTdltNNum(ckt, here->B3SOIFDqjdNode);
here->B3SOIFDqjdNode = 0;
}
if (here->B3SOIFDqjsNode)
{
CKTdltNNum(ckt, here->B3SOIFDqjsNode);
here->B3SOIFDqjsNode = 0;
}
if (here->B3SOIFDqbfNode)
{
CKTdltNNum(ckt, here->B3SOIFDqbfNode);
here->B3SOIFDqbfNode = 0;
}
if (here->B3SOIFDqbNode)
{
CKTdltNNum(ckt, here->B3SOIFDqbNode);
here->B3SOIFDqbNode = 0;
}
if (here->B3SOIFDcbgNode)
{
CKTdltNNum(ckt, here->B3SOIFDcbgNode);
here->B3SOIFDcbgNode = 0;
}
if (here->B3SOIFDcbdNode)
{
CKTdltNNum(ckt, here->B3SOIFDcbdNode);
here->B3SOIFDcbdNode = 0;
}
if (here->B3SOIFDcbbNode)
{
CKTdltNNum(ckt, here->B3SOIFDcbbNode);
here->B3SOIFDcbbNode = 0;
}
if (here->B3SOIFDxcNode)
{
CKTdltNNum(ckt, here->B3SOIFDxcNode);
here->B3SOIFDxcNode = 0;
}
if (here->B3SOIFDvbseffNode)
{
CKTdltNNum(ckt, here->B3SOIFDvbseffNode);
here->B3SOIFDvbseffNode = 0;
}
if (here->B3SOIFDvbs0effNode)
{
CKTdltNNum(ckt, here->B3SOIFDvbs0effNode);
here->B3SOIFDvbs0effNode = 0;
}
if (here->B3SOIFDabeffNode)
{
CKTdltNNum(ckt, here->B3SOIFDabeffNode);
here->B3SOIFDabeffNode = 0;
}
if (here->B3SOIFDibpNode)
{
CKTdltNNum(ckt, here->B3SOIFDibpNode);
here->B3SOIFDibpNode = 0;
}
if (here->B3SOIFDitunNode)
{
CKTdltNNum(ckt, here->B3SOIFDitunNode);
here->B3SOIFDitunNode = 0;
}
if (here->B3SOIFDigidlNode)
{
CKTdltNNum(ckt, here->B3SOIFDigidlNode);
here->B3SOIFDigidlNode = 0;
}
if (here->B3SOIFDiiiNode)
{
CKTdltNNum(ckt, here->B3SOIFDiiiNode);
here->B3SOIFDiiiNode = 0;
}
if (here->B3SOIFDibdNode)
{
CKTdltNNum(ckt, here->B3SOIFDibdNode);
here->B3SOIFDibdNode = 0;
}
if (here->B3SOIFDibsNode)
{
CKTdltNNum(ckt, here->B3SOIFDibsNode);
here->B3SOIFDibsNode = 0;
}
if (here->B3SOIFDicNode)
{
CKTdltNNum(ckt, here->B3SOIFDicNode);
here->B3SOIFDicNode = 0;
}
if (here->B3SOIFDidsNode)
{
CKTdltNNum(ckt, here->B3SOIFDidsNode);
here->B3SOIFDidsNode = 0;
}
if (here->B3SOIFDvbsNode)
{
CKTdltNNum(ckt, here->B3SOIFDvbsNode);
here->B3SOIFDvbsNode = 0;
}
if (here->B3SOIFDtempNode && if (here->B3SOIFDdum4Node > 0)
CKTdltNNum(ckt, here->B3SOIFDdum4Node);
here->B3SOIFDdum4Node = 0;
if (here->B3SOIFDdum3Node > 0)
CKTdltNNum(ckt, here->B3SOIFDdum3Node);
here->B3SOIFDdum3Node = 0;
if (here->B3SOIFDdum2Node > 0)
CKTdltNNum(ckt, here->B3SOIFDdum2Node);
here->B3SOIFDdum2Node = 0;
if (here->B3SOIFDdum1Node > 0)
CKTdltNNum(ckt, here->B3SOIFDdum1Node);
here->B3SOIFDdum1Node = 0;
if (here->B3SOIFDcbeNode > 0)
CKTdltNNum(ckt, here->B3SOIFDcbeNode);
here->B3SOIFDcbeNode = 0;
if (here->B3SOIFDvcscvNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvcscvNode);
here->B3SOIFDvcscvNode = 0;
if (here->B3SOIFDvdscvNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvdscvNode);
here->B3SOIFDvdscvNode = 0;
if (here->B3SOIFDqgNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqgNode);
here->B3SOIFDqgNode = 0;
if (here->B3SOIFDqdNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqdNode);
here->B3SOIFDqdNode = 0;
if (here->B3SOIFDqeNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqeNode);
here->B3SOIFDqeNode = 0;
if (here->B3SOIFDqsubs2Node > 0)
CKTdltNNum(ckt, here->B3SOIFDqsubs2Node);
here->B3SOIFDqsubs2Node = 0;
if (here->B3SOIFDqsubs1Node > 0)
CKTdltNNum(ckt, here->B3SOIFDqsubs1Node);
here->B3SOIFDqsubs1Node = 0;
if (here->B3SOIFDqsub0Node > 0)
CKTdltNNum(ckt, here->B3SOIFDqsub0Node);
here->B3SOIFDqsub0Node = 0;
if (here->B3SOIFDqaccNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqaccNode);
here->B3SOIFDqaccNode = 0;
if (here->B3SOIFDxcsatNode > 0)
CKTdltNNum(ckt, here->B3SOIFDxcsatNode);
here->B3SOIFDxcsatNode = 0;
if (here->B3SOIFDvgsteffNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvgsteffNode);
here->B3SOIFDvgsteffNode = 0;
if (here->B3SOIFDvthNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvthNode);
here->B3SOIFDvthNode = 0;
if (here->B3SOIFDvbs0teffNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvbs0teffNode);
here->B3SOIFDvbs0teffNode = 0;
if (here->B3SOIFDgmeNode > 0)
CKTdltNNum(ckt, here->B3SOIFDgmeNode);
here->B3SOIFDgmeNode = 0;
if (here->B3SOIFDgdsNode > 0)
CKTdltNNum(ckt, here->B3SOIFDgdsNode);
here->B3SOIFDgdsNode = 0;
if (here->B3SOIFDgmbsNode > 0)
CKTdltNNum(ckt, here->B3SOIFDgmbsNode);
here->B3SOIFDgmbsNode = 0;
if (here->B3SOIFDgmNode > 0)
CKTdltNNum(ckt, here->B3SOIFDgmNode);
here->B3SOIFDgmNode = 0;
if (here->B3SOIFDqjdNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqjdNode);
here->B3SOIFDqjdNode = 0;
if (here->B3SOIFDqjsNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqjsNode);
here->B3SOIFDqjsNode = 0;
if (here->B3SOIFDqbfNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqbfNode);
here->B3SOIFDqbfNode = 0;
if (here->B3SOIFDqbNode > 0)
CKTdltNNum(ckt, here->B3SOIFDqbNode);
here->B3SOIFDqbNode = 0;
if (here->B3SOIFDcbgNode > 0)
CKTdltNNum(ckt, here->B3SOIFDcbgNode);
here->B3SOIFDcbgNode = 0;
if (here->B3SOIFDcbdNode > 0)
CKTdltNNum(ckt, here->B3SOIFDcbdNode);
here->B3SOIFDcbdNode = 0;
if (here->B3SOIFDcbbNode > 0)
CKTdltNNum(ckt, here->B3SOIFDcbbNode);
here->B3SOIFDcbbNode = 0;
if (here->B3SOIFDxcNode > 0)
CKTdltNNum(ckt, here->B3SOIFDxcNode);
here->B3SOIFDxcNode = 0;
if (here->B3SOIFDvbseffNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvbseffNode);
here->B3SOIFDvbseffNode = 0;
if (here->B3SOIFDvbs0effNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvbs0effNode);
here->B3SOIFDvbs0effNode = 0;
if (here->B3SOIFDabeffNode > 0)
CKTdltNNum(ckt, here->B3SOIFDabeffNode);
here->B3SOIFDabeffNode = 0;
if (here->B3SOIFDibpNode > 0)
CKTdltNNum(ckt, here->B3SOIFDibpNode);
here->B3SOIFDibpNode = 0;
if (here->B3SOIFDitunNode > 0)
CKTdltNNum(ckt, here->B3SOIFDitunNode);
here->B3SOIFDitunNode = 0;
if (here->B3SOIFDigidlNode > 0)
CKTdltNNum(ckt, here->B3SOIFDigidlNode);
here->B3SOIFDigidlNode = 0;
if (here->B3SOIFDiiiNode > 0)
CKTdltNNum(ckt, here->B3SOIFDiiiNode);
here->B3SOIFDiiiNode = 0;
if (here->B3SOIFDibdNode > 0)
CKTdltNNum(ckt, here->B3SOIFDibdNode);
here->B3SOIFDibdNode = 0;
if (here->B3SOIFDibsNode > 0)
CKTdltNNum(ckt, here->B3SOIFDibsNode);
here->B3SOIFDibsNode = 0;
if (here->B3SOIFDicNode > 0)
CKTdltNNum(ckt, here->B3SOIFDicNode);
here->B3SOIFDicNode = 0;
if (here->B3SOIFDidsNode > 0)
CKTdltNNum(ckt, here->B3SOIFDidsNode);
here->B3SOIFDidsNode = 0;
if (here->B3SOIFDvbsNode > 0)
CKTdltNNum(ckt, here->B3SOIFDvbsNode);
here->B3SOIFDvbsNode = 0;
if (here->B3SOIFDtempNode > 0 &&
here->B3SOIFDtempNode != here->B3SOIFDtempNodeExt && here->B3SOIFDtempNode != here->B3SOIFDtempNodeExt &&
here->B3SOIFDtempNode != here->B3SOIFDbNodeExt && here->B3SOIFDtempNode != here->B3SOIFDbNodeExt &&
here->B3SOIFDtempNode != here->B3SOIFDpNodeExt) here->B3SOIFDtempNode != here->B3SOIFDpNodeExt)
{
CKTdltNNum(ckt, here->B3SOIFDtempNode); CKTdltNNum(ckt, here->B3SOIFDtempNode);
here->B3SOIFDtempNode = 0; here->B3SOIFDtempNode = 0;
}
if (here->B3SOIFDbNode && if (here->B3SOIFDbNode > 0 &&
here->B3SOIFDbNode != here->B3SOIFDbNodeExt && here->B3SOIFDbNode != here->B3SOIFDbNodeExt &&
here->B3SOIFDbNode != here->B3SOIFDpNodeExt) here->B3SOIFDbNode != here->B3SOIFDpNodeExt)
{
CKTdltNNum(ckt, here->B3SOIFDbNode); CKTdltNNum(ckt, here->B3SOIFDbNode);
here->B3SOIFDbNode = 0; here->B3SOIFDbNode = 0;
}
here->B3SOIFDpNode = 0; here->B3SOIFDpNode = 0;
if (here->B3SOIFDsNodePrime if (here->B3SOIFDsNodePrime > 0
&& here->B3SOIFDsNodePrime != here->B3SOIFDsNode) && here->B3SOIFDsNodePrime != here->B3SOIFDsNode)
{
CKTdltNNum(ckt, here->B3SOIFDsNodePrime); CKTdltNNum(ckt, here->B3SOIFDsNodePrime);
here->B3SOIFDsNodePrime = 0; here->B3SOIFDsNodePrime = 0;
}
if (here->B3SOIFDdNodePrime if (here->B3SOIFDdNodePrime > 0
&& here->B3SOIFDdNodePrime != here->B3SOIFDdNode) && here->B3SOIFDdNodePrime != here->B3SOIFDdNode)
{
CKTdltNNum(ckt, here->B3SOIFDdNodePrime); CKTdltNNum(ckt, here->B3SOIFDdNodePrime);
here->B3SOIFDdNodePrime = 0; here->B3SOIFDdNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -1467,131 +1467,107 @@ B3SOIPDunsetup(
here=here->B3SOIPDnextInstance) here=here->B3SOIPDnextInstance)
{ {
/* here for debugging purpose only */ /* here for debugging purpose only */
if (here->B3SOIPDqjdNode) if (here->B3SOIPDqjdNode > 0)
{
CKTdltNNum(ckt, here->B3SOIPDqjdNode); CKTdltNNum(ckt, here->B3SOIPDqjdNode);
here->B3SOIPDqjdNode = 0; here->B3SOIPDqjdNode = 0;
}
if (here->B3SOIPDqjsNode)
{
CKTdltNNum(ckt, here->B3SOIPDqjsNode);
here->B3SOIPDqjsNode = 0;
}
if (here->B3SOIPDqbfNode)
{
CKTdltNNum(ckt, here->B3SOIPDqbfNode);
here->B3SOIPDqbfNode = 0;
}
if (here->B3SOIPDcbgNode)
{
CKTdltNNum(ckt, here->B3SOIPDcbgNode);
here->B3SOIPDcbgNode = 0;
}
if (here->B3SOIPDcbdNode)
{
CKTdltNNum(ckt, here->B3SOIPDcbdNode);
here->B3SOIPDcbdNode = 0;
}
if (here->B3SOIPDcbbNode)
{
CKTdltNNum(ckt, here->B3SOIPDcbbNode);
here->B3SOIPDcbbNode = 0;
}
if (here->B3SOIPDibpNode)
{
CKTdltNNum(ckt, here->B3SOIPDibpNode);
here->B3SOIPDibpNode = 0;
}
if (here->B3SOIPDitunNode)
{
CKTdltNNum(ckt, here->B3SOIPDitunNode);
here->B3SOIPDitunNode = 0;
}
if (here->B3SOIPDigidlNode)
{
CKTdltNNum(ckt, here->B3SOIPDigidlNode);
here->B3SOIPDigidlNode = 0;
}
if (here->B3SOIPDgigbNode)
{
CKTdltNNum(ckt, here->B3SOIPDgigbNode);
here->B3SOIPDgigbNode = 0;
}
if (here->B3SOIPDgigdNode)
{
CKTdltNNum(ckt, here->B3SOIPDgigdNode);
here->B3SOIPDgigdNode = 0;
}
if (here->B3SOIPDgiggNode)
{
CKTdltNNum(ckt, here->B3SOIPDgiggNode);
here->B3SOIPDgiggNode = 0;
}
if (here->B3SOIPDigNode)
{
CKTdltNNum(ckt, here->B3SOIPDigNode);
here->B3SOIPDigNode = 0;
}
if (here->B3SOIPDiiiNode)
{
CKTdltNNum(ckt, here->B3SOIPDiiiNode);
here->B3SOIPDiiiNode = 0;
}
if (here->B3SOIPDibdNode)
{
CKTdltNNum(ckt, here->B3SOIPDibdNode);
here->B3SOIPDibdNode = 0;
}
if (here->B3SOIPDibsNode)
{
CKTdltNNum(ckt, here->B3SOIPDibsNode);
here->B3SOIPDibsNode = 0;
}
if (here->B3SOIPDicNode)
{
CKTdltNNum(ckt, here->B3SOIPDicNode);
here->B3SOIPDicNode = 0;
}
if (here->B3SOIPDidsNode)
{
CKTdltNNum(ckt, here->B3SOIPDidsNode);
here->B3SOIPDidsNode = 0;
}
if (here->B3SOIPDvbsNode)
{
CKTdltNNum(ckt, here->B3SOIPDvbsNode);
here->B3SOIPDvbsNode = 0;
}
if (here->B3SOIPDtempNode && if (here->B3SOIPDqjsNode > 0)
CKTdltNNum(ckt, here->B3SOIPDqjsNode);
here->B3SOIPDqjsNode = 0;
if (here->B3SOIPDqbfNode > 0)
CKTdltNNum(ckt, here->B3SOIPDqbfNode);
here->B3SOIPDqbfNode = 0;
if (here->B3SOIPDcbgNode > 0)
CKTdltNNum(ckt, here->B3SOIPDcbgNode);
here->B3SOIPDcbgNode = 0;
if (here->B3SOIPDcbdNode > 0)
CKTdltNNum(ckt, here->B3SOIPDcbdNode);
here->B3SOIPDcbdNode = 0;
if (here->B3SOIPDcbbNode > 0)
CKTdltNNum(ckt, here->B3SOIPDcbbNode);
here->B3SOIPDcbbNode = 0;
if (here->B3SOIPDibpNode > 0)
CKTdltNNum(ckt, here->B3SOIPDibpNode);
here->B3SOIPDibpNode = 0;
if (here->B3SOIPDitunNode > 0)
CKTdltNNum(ckt, here->B3SOIPDitunNode);
here->B3SOIPDitunNode = 0;
if (here->B3SOIPDigidlNode > 0)
CKTdltNNum(ckt, here->B3SOIPDigidlNode);
here->B3SOIPDigidlNode = 0;
if (here->B3SOIPDgigbNode > 0)
CKTdltNNum(ckt, here->B3SOIPDgigbNode);
here->B3SOIPDgigbNode = 0;
if (here->B3SOIPDgigdNode > 0)
CKTdltNNum(ckt, here->B3SOIPDgigdNode);
here->B3SOIPDgigdNode = 0;
if (here->B3SOIPDgiggNode > 0)
CKTdltNNum(ckt, here->B3SOIPDgiggNode);
here->B3SOIPDgiggNode = 0;
if (here->B3SOIPDigNode > 0)
CKTdltNNum(ckt, here->B3SOIPDigNode);
here->B3SOIPDigNode = 0;
if (here->B3SOIPDiiiNode > 0)
CKTdltNNum(ckt, here->B3SOIPDiiiNode);
here->B3SOIPDiiiNode = 0;
if (here->B3SOIPDibdNode > 0)
CKTdltNNum(ckt, here->B3SOIPDibdNode);
here->B3SOIPDibdNode = 0;
if (here->B3SOIPDibsNode > 0)
CKTdltNNum(ckt, here->B3SOIPDibsNode);
here->B3SOIPDibsNode = 0;
if (here->B3SOIPDicNode > 0)
CKTdltNNum(ckt, here->B3SOIPDicNode);
here->B3SOIPDicNode = 0;
if (here->B3SOIPDidsNode > 0)
CKTdltNNum(ckt, here->B3SOIPDidsNode);
here->B3SOIPDidsNode = 0;
if (here->B3SOIPDvbsNode > 0)
CKTdltNNum(ckt, here->B3SOIPDvbsNode);
here->B3SOIPDvbsNode = 0;
if (here->B3SOIPDtempNode > 0 &&
here->B3SOIPDtempNode != here->B3SOIPDtempNodeExt && here->B3SOIPDtempNode != here->B3SOIPDtempNodeExt &&
here->B3SOIPDtempNode != here->B3SOIPDbNodeExt && here->B3SOIPDtempNode != here->B3SOIPDbNodeExt &&
here->B3SOIPDtempNode != here->B3SOIPDpNodeExt) here->B3SOIPDtempNode != here->B3SOIPDpNodeExt)
{
CKTdltNNum(ckt, here->B3SOIPDtempNode); CKTdltNNum(ckt, here->B3SOIPDtempNode);
here->B3SOIPDtempNode = 0; here->B3SOIPDtempNode = 0;
}
if (here->B3SOIPDbNode && if (here->B3SOIPDbNode > 0 &&
here->B3SOIPDbNode != here->B3SOIPDbNodeExt && here->B3SOIPDbNode != here->B3SOIPDbNodeExt &&
here->B3SOIPDbNode != here->B3SOIPDpNodeExt) here->B3SOIPDbNode != here->B3SOIPDpNodeExt)
{
CKTdltNNum(ckt, here->B3SOIPDbNode); CKTdltNNum(ckt, here->B3SOIPDbNode);
here->B3SOIPDbNode = 0; here->B3SOIPDbNode = 0;
}
here->B3SOIPDpNode = 0; here->B3SOIPDpNode = 0;
if (here->B3SOIPDsNodePrime if (here->B3SOIPDsNodePrime > 0
&& here->B3SOIPDsNodePrime != here->B3SOIPDsNode) && here->B3SOIPDsNodePrime != here->B3SOIPDsNode)
{
CKTdltNNum(ckt, here->B3SOIPDsNodePrime); CKTdltNNum(ckt, here->B3SOIPDsNodePrime);
here->B3SOIPDsNodePrime = 0; here->B3SOIPDsNodePrime = 0;
}
if (here->B3SOIPDdNodePrime if (here->B3SOIPDdNodePrime > 0
&& here->B3SOIPDdNodePrime != here->B3SOIPDdNode) && here->B3SOIPDdNodePrime != here->B3SOIPDdNode)
{
CKTdltNNum(ckt, here->B3SOIPDdNodePrime); CKTdltNNum(ckt, here->B3SOIPDdNodePrime);
here->B3SOIPDdNodePrime = 0; here->B3SOIPDdNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -904,23 +904,19 @@ BSIM3v0unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->BSIM3v0instances; here != NULL; for (here = model->BSIM3v0instances; here != NULL;
here=here->BSIM3v0nextInstance) here=here->BSIM3v0nextInstance)
{ {
if (here->BSIM3v0qNode) if (here->BSIM3v0qNode > 0)
{
CKTdltNNum(ckt, here->BSIM3v0qNode); CKTdltNNum(ckt, here->BSIM3v0qNode);
here->BSIM3v0qNode = 0; here->BSIM3v0qNode = 0;
}
if (here->BSIM3v0sNodePrime if (here->BSIM3v0sNodePrime > 0
&& here->BSIM3v0sNodePrime != here->BSIM3v0sNode) && here->BSIM3v0sNodePrime != here->BSIM3v0sNode)
{
CKTdltNNum(ckt, here->BSIM3v0sNodePrime); CKTdltNNum(ckt, here->BSIM3v0sNodePrime);
here->BSIM3v0sNodePrime = 0; here->BSIM3v0sNodePrime = 0;
}
if (here->BSIM3v0dNodePrime if (here->BSIM3v0dNodePrime > 0
&& here->BSIM3v0dNodePrime != here->BSIM3v0dNode) && here->BSIM3v0dNodePrime != here->BSIM3v0dNode)
{
CKTdltNNum(ckt, here->BSIM3v0dNodePrime); CKTdltNNum(ckt, here->BSIM3v0dNodePrime);
here->BSIM3v0dNodePrime = 0; here->BSIM3v0dNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -964,23 +964,19 @@ BSIM3v1unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->BSIM3v1instances; here != NULL; for (here = model->BSIM3v1instances; here != NULL;
here=here->BSIM3v1nextInstance) here=here->BSIM3v1nextInstance)
{ {
if (here->BSIM3v1qNode) if (here->BSIM3v1qNode > 0)
{
CKTdltNNum(ckt, here->BSIM3v1qNode); CKTdltNNum(ckt, here->BSIM3v1qNode);
here->BSIM3v1qNode = 0; here->BSIM3v1qNode = 0;
}
if (here->BSIM3v1sNodePrime if (here->BSIM3v1sNodePrime > 0
&& here->BSIM3v1sNodePrime != here->BSIM3v1sNode) && here->BSIM3v1sNodePrime != here->BSIM3v1sNode)
{
CKTdltNNum(ckt, here->BSIM3v1sNodePrime); CKTdltNNum(ckt, here->BSIM3v1sNodePrime);
here->BSIM3v1sNodePrime = 0; here->BSIM3v1sNodePrime = 0;
}
if (here->BSIM3v1dNodePrime if (here->BSIM3v1dNodePrime > 0
&& here->BSIM3v1dNodePrime != here->BSIM3v1dNode) && here->BSIM3v1dNodePrime != here->BSIM3v1dNode)
{
CKTdltNNum(ckt, here->BSIM3v1dNodePrime); CKTdltNNum(ckt, here->BSIM3v1dNodePrime);
here->BSIM3v1dNodePrime = 0; here->BSIM3v1dNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -1146,23 +1146,19 @@ BSIM3v32unsetup(
for (here = model->BSIM3v32instances; here != NULL; for (here = model->BSIM3v32instances; here != NULL;
here=here->BSIM3v32nextInstance) here=here->BSIM3v32nextInstance)
{ {
if (here->BSIM3v32qNode) if (here->BSIM3v32qNode > 0)
{
CKTdltNNum(ckt, here->BSIM3v32qNode); CKTdltNNum(ckt, here->BSIM3v32qNode);
here->BSIM3v32qNode = 0; here->BSIM3v32qNode = 0;
}
if (here->BSIM3v32sNodePrime if (here->BSIM3v32sNodePrime > 0
&& here->BSIM3v32sNodePrime != here->BSIM3v32sNode) && here->BSIM3v32sNodePrime != here->BSIM3v32sNode)
{
CKTdltNNum(ckt, here->BSIM3v32sNodePrime); CKTdltNNum(ckt, here->BSIM3v32sNodePrime);
here->BSIM3v32sNodePrime = 0; here->BSIM3v32sNodePrime = 0;
}
if (here->BSIM3v32dNodePrime if (here->BSIM3v32dNodePrime > 0
&& here->BSIM3v32dNodePrime != here->BSIM3v32dNode) && here->BSIM3v32dNodePrime != here->BSIM3v32dNode)
{
CKTdltNNum(ckt, here->BSIM3v32dNodePrime); CKTdltNNum(ckt, here->BSIM3v32dNodePrime);
here->BSIM3v32dNodePrime = 0; here->BSIM3v32dNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -2707,53 +2707,44 @@ CKTcircuit *ckt)
for (here = model->BSIM4instances; here != NULL; for (here = model->BSIM4instances; here != NULL;
here=here->BSIM4nextInstance) here=here->BSIM4nextInstance)
{ {
if (here->BSIM4qNode) if (here->BSIM4qNode > 0)
{
CKTdltNNum(ckt, here->BSIM4qNode); CKTdltNNum(ckt, here->BSIM4qNode);
here->BSIM4qNode = 0; here->BSIM4qNode = 0;
}
if (here->BSIM4sbNode && if (here->BSIM4sbNode > 0 &&
here->BSIM4sbNode != here->BSIM4bNode) here->BSIM4sbNode != here->BSIM4bNode)
{
CKTdltNNum(ckt, here->BSIM4sbNode); CKTdltNNum(ckt, here->BSIM4sbNode);
here->BSIM4sbNode = 0; here->BSIM4sbNode = 0;
}
if (here->BSIM4bNodePrime && if (here->BSIM4bNodePrime > 0 &&
here->BSIM4bNodePrime != here->BSIM4bNode) here->BSIM4bNodePrime != here->BSIM4bNode)
{
CKTdltNNum(ckt, here->BSIM4bNodePrime); CKTdltNNum(ckt, here->BSIM4bNodePrime);
here->BSIM4bNodePrime = 0; here->BSIM4bNodePrime = 0;
}
if (here->BSIM4dbNode && if (here->BSIM4dbNode > 0 &&
here->BSIM4dbNode != here->BSIM4bNode) here->BSIM4dbNode != here->BSIM4bNode)
{
CKTdltNNum(ckt, here->BSIM4dbNode); CKTdltNNum(ckt, here->BSIM4dbNode);
here->BSIM4dbNode = 0; here->BSIM4dbNode = 0;
}
if (here->BSIM4gNodeMid && if (here->BSIM4gNodeMid > 0 &&
here->BSIM4gNodeMid != here->BSIM4gNodeExt) here->BSIM4gNodeMid != here->BSIM4gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4gNodeMid); CKTdltNNum(ckt, here->BSIM4gNodeMid);
here->BSIM4gNodeMid = 0; here->BSIM4gNodeMid = 0;
}
if (here->BSIM4gNodePrime && if (here->BSIM4gNodePrime > 0 &&
here->BSIM4gNodePrime != here->BSIM4gNodeExt) here->BSIM4gNodePrime != here->BSIM4gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4gNodePrime); CKTdltNNum(ckt, here->BSIM4gNodePrime);
here->BSIM4gNodePrime = 0; here->BSIM4gNodePrime = 0;
}
if (here->BSIM4sNodePrime if (here->BSIM4sNodePrime > 0
&& here->BSIM4sNodePrime != here->BSIM4sNode) && here->BSIM4sNodePrime != here->BSIM4sNode)
{
CKTdltNNum(ckt, here->BSIM4sNodePrime); CKTdltNNum(ckt, here->BSIM4sNodePrime);
here->BSIM4sNodePrime = 0; here->BSIM4sNodePrime = 0;
}
if (here->BSIM4dNodePrime if (here->BSIM4dNodePrime > 0
&& here->BSIM4dNodePrime != here->BSIM4dNode) && here->BSIM4dNodePrime != here->BSIM4dNode)
{
CKTdltNNum(ckt, here->BSIM4dNodePrime); CKTdltNNum(ckt, here->BSIM4dNodePrime);
here->BSIM4dNodePrime = 0; here->BSIM4dNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -2133,53 +2133,44 @@ BSIM4v5unsetup(
for (here = model->BSIM4v5instances; here != NULL; for (here = model->BSIM4v5instances; here != NULL;
here=here->BSIM4v5nextInstance) here=here->BSIM4v5nextInstance)
{ {
if (here->BSIM4v5qNode) if (here->BSIM4v5qNode > 0)
{
CKTdltNNum(ckt, here->BSIM4v5qNode); CKTdltNNum(ckt, here->BSIM4v5qNode);
here->BSIM4v5qNode = 0; here->BSIM4v5qNode = 0;
}
if (here->BSIM4v5sbNode && if (here->BSIM4v5sbNode > 0 &&
here->BSIM4v5sbNode != here->BSIM4v5bNode) here->BSIM4v5sbNode != here->BSIM4v5bNode)
{
CKTdltNNum(ckt, here->BSIM4v5sbNode); CKTdltNNum(ckt, here->BSIM4v5sbNode);
here->BSIM4v5sbNode = 0; here->BSIM4v5sbNode = 0;
}
if (here->BSIM4v5bNodePrime && if (here->BSIM4v5bNodePrime > 0 &&
here->BSIM4v5bNodePrime != here->BSIM4v5bNode) here->BSIM4v5bNodePrime != here->BSIM4v5bNode)
{
CKTdltNNum(ckt, here->BSIM4v5bNodePrime); CKTdltNNum(ckt, here->BSIM4v5bNodePrime);
here->BSIM4v5bNodePrime = 0; here->BSIM4v5bNodePrime = 0;
}
if (here->BSIM4v5dbNode && if (here->BSIM4v5dbNode > 0 &&
here->BSIM4v5dbNode != here->BSIM4v5bNode) here->BSIM4v5dbNode != here->BSIM4v5bNode)
{
CKTdltNNum(ckt, here->BSIM4v5dbNode); CKTdltNNum(ckt, here->BSIM4v5dbNode);
here->BSIM4v5dbNode = 0; here->BSIM4v5dbNode = 0;
}
if (here->BSIM4v5gNodeMid && if (here->BSIM4v5gNodeMid > 0 &&
here->BSIM4v5gNodeMid != here->BSIM4v5gNodeExt) here->BSIM4v5gNodeMid != here->BSIM4v5gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4v5gNodeMid); CKTdltNNum(ckt, here->BSIM4v5gNodeMid);
here->BSIM4v5gNodeMid = 0; here->BSIM4v5gNodeMid = 0;
}
if (here->BSIM4v5gNodePrime && if (here->BSIM4v5gNodePrime > 0 &&
here->BSIM4v5gNodePrime != here->BSIM4v5gNodeExt) here->BSIM4v5gNodePrime != here->BSIM4v5gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4v5gNodePrime); CKTdltNNum(ckt, here->BSIM4v5gNodePrime);
here->BSIM4v5gNodePrime = 0; here->BSIM4v5gNodePrime = 0;
}
if (here->BSIM4v5sNodePrime if (here->BSIM4v5sNodePrime > 0
&& here->BSIM4v5sNodePrime != here->BSIM4v5sNode) && here->BSIM4v5sNodePrime != here->BSIM4v5sNode)
{
CKTdltNNum(ckt, here->BSIM4v5sNodePrime); CKTdltNNum(ckt, here->BSIM4v5sNodePrime);
here->BSIM4v5sNodePrime = 0; here->BSIM4v5sNodePrime = 0;
}
if (here->BSIM4v5dNodePrime if (here->BSIM4v5dNodePrime > 0
&& here->BSIM4v5dNodePrime != here->BSIM4v5dNode) && here->BSIM4v5dNodePrime != here->BSIM4v5dNode)
{
CKTdltNNum(ckt, here->BSIM4v5dNodePrime); CKTdltNNum(ckt, here->BSIM4v5dNodePrime);
here->BSIM4v5dNodePrime = 0; here->BSIM4v5dNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -2466,53 +2466,44 @@ BSIM4v6unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->BSIM4v6instances; here != NULL; for (here = model->BSIM4v6instances; here != NULL;
here=here->BSIM4v6nextInstance) here=here->BSIM4v6nextInstance)
{ {
if (here->BSIM4v6qNode) if (here->BSIM4v6qNode > 0)
{
CKTdltNNum(ckt, here->BSIM4v6qNode); CKTdltNNum(ckt, here->BSIM4v6qNode);
here->BSIM4v6qNode = 0; here->BSIM4v6qNode = 0;
}
if (here->BSIM4v6sbNode && if (here->BSIM4v6sbNode > 0 &&
here->BSIM4v6sbNode != here->BSIM4v6bNode) here->BSIM4v6sbNode != here->BSIM4v6bNode)
{
CKTdltNNum(ckt, here->BSIM4v6sbNode); CKTdltNNum(ckt, here->BSIM4v6sbNode);
here->BSIM4v6sbNode = 0; here->BSIM4v6sbNode = 0;
}
if (here->BSIM4v6bNodePrime && if (here->BSIM4v6bNodePrime > 0 &&
here->BSIM4v6bNodePrime != here->BSIM4v6bNode) here->BSIM4v6bNodePrime != here->BSIM4v6bNode)
{
CKTdltNNum(ckt, here->BSIM4v6bNodePrime); CKTdltNNum(ckt, here->BSIM4v6bNodePrime);
here->BSIM4v6bNodePrime = 0; here->BSIM4v6bNodePrime = 0;
}
if (here->BSIM4v6dbNode && if (here->BSIM4v6dbNode > 0 &&
here->BSIM4v6dbNode != here->BSIM4v6bNode) here->BSIM4v6dbNode != here->BSIM4v6bNode)
{
CKTdltNNum(ckt, here->BSIM4v6dbNode); CKTdltNNum(ckt, here->BSIM4v6dbNode);
here->BSIM4v6dbNode = 0; here->BSIM4v6dbNode = 0;
}
if (here->BSIM4v6gNodeMid && if (here->BSIM4v6gNodeMid > 0 &&
here->BSIM4v6gNodeMid != here->BSIM4v6gNodeExt) here->BSIM4v6gNodeMid != here->BSIM4v6gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4v6gNodeMid); CKTdltNNum(ckt, here->BSIM4v6gNodeMid);
here->BSIM4v6gNodeMid = 0; here->BSIM4v6gNodeMid = 0;
}
if (here->BSIM4v6gNodePrime && if (here->BSIM4v6gNodePrime > 0 &&
here->BSIM4v6gNodePrime != here->BSIM4v6gNodeExt) here->BSIM4v6gNodePrime != here->BSIM4v6gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4v6gNodePrime); CKTdltNNum(ckt, here->BSIM4v6gNodePrime);
here->BSIM4v6gNodePrime = 0; here->BSIM4v6gNodePrime = 0;
}
if (here->BSIM4v6sNodePrime if (here->BSIM4v6sNodePrime > 0
&& here->BSIM4v6sNodePrime != here->BSIM4v6sNode) && here->BSIM4v6sNodePrime != here->BSIM4v6sNode)
{
CKTdltNNum(ckt, here->BSIM4v6sNodePrime); CKTdltNNum(ckt, here->BSIM4v6sNodePrime);
here->BSIM4v6sNodePrime = 0; here->BSIM4v6sNodePrime = 0;
}
if (here->BSIM4v6dNodePrime if (here->BSIM4v6dNodePrime > 0
&& here->BSIM4v6dNodePrime != here->BSIM4v6dNode) && here->BSIM4v6dNodePrime != here->BSIM4v6dNode)
{
CKTdltNNum(ckt, here->BSIM4v6dNodePrime); CKTdltNNum(ckt, here->BSIM4v6dNodePrime);
here->BSIM4v6dNodePrime = 0; here->BSIM4v6dNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -2623,53 +2623,45 @@ CKTcircuit *ckt)
for (here = model->BSIM4v7instances; here != NULL; for (here = model->BSIM4v7instances; here != NULL;
here=here->BSIM4v7nextInstance) here=here->BSIM4v7nextInstance)
{ {
if (here->BSIM4v7qNode) if (here->BSIM4v7qNode > 0)
{
CKTdltNNum(ckt, here->BSIM4v7qNode); CKTdltNNum(ckt, here->BSIM4v7qNode);
here->BSIM4v7qNode = 0; here->BSIM4v7qNode = 0;
}
if (here->BSIM4v7sbNode && if (here->BSIM4v7sbNode > 0 &&
here->BSIM4v7sbNode != here->BSIM4v7bNode) here->BSIM4v7sbNode != here->BSIM4v7bNode)
{
CKTdltNNum(ckt, here->BSIM4v7sbNode); CKTdltNNum(ckt, here->BSIM4v7sbNode);
here->BSIM4v7sbNode = 0; here->BSIM4v7sbNode = 0;
}
if (here->BSIM4v7bNodePrime && if (here->BSIM4v7bNodePrime > 0 &&
here->BSIM4v7bNodePrime != here->BSIM4v7bNode) here->BSIM4v7bNodePrime != here->BSIM4v7bNode)
{
CKTdltNNum(ckt, here->BSIM4v7bNodePrime); CKTdltNNum(ckt, here->BSIM4v7bNodePrime);
here->BSIM4v7bNodePrime = 0; here->BSIM4v7bNodePrime = 0;
}
if (here->BSIM4v7dbNode && if (here->BSIM4v7dbNode > 0 &&
here->BSIM4v7dbNode != here->BSIM4v7bNode) here->BSIM4v7dbNode != here->BSIM4v7bNode)
{
CKTdltNNum(ckt, here->BSIM4v7dbNode); CKTdltNNum(ckt, here->BSIM4v7dbNode);
here->BSIM4v7dbNode = 0; here->BSIM4v7dbNode = 0;
}
if (here->BSIM4v7gNodeMid && if (here->BSIM4v7gNodeMid > 0 &&
here->BSIM4v7gNodeMid != here->BSIM4v7gNodeExt) here->BSIM4v7gNodeMid != here->BSIM4v7gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4v7gNodeMid); CKTdltNNum(ckt, here->BSIM4v7gNodeMid);
here->BSIM4v7gNodeMid = 0; here->BSIM4v7gNodeMid = 0;
}
if (here->BSIM4v7gNodePrime && if (here->BSIM4v7gNodePrime > 0 &&
here->BSIM4v7gNodePrime != here->BSIM4v7gNodeExt) here->BSIM4v7gNodePrime != here->BSIM4v7gNodeExt)
{
CKTdltNNum(ckt, here->BSIM4v7gNodePrime); CKTdltNNum(ckt, here->BSIM4v7gNodePrime);
here->BSIM4v7gNodePrime = 0; here->BSIM4v7gNodePrime = 0;
}
if (here->BSIM4v7sNodePrime if (here->BSIM4v7sNodePrime > 0
&& here->BSIM4v7sNodePrime != here->BSIM4v7sNode) && here->BSIM4v7sNodePrime != here->BSIM4v7sNode)
{
CKTdltNNum(ckt, here->BSIM4v7sNodePrime); CKTdltNNum(ckt, here->BSIM4v7sNodePrime);
here->BSIM4v7sNodePrime = 0; here->BSIM4v7sNodePrime = 0;
}
if (here->BSIM4v7dNodePrime if (here->BSIM4v7dNodePrime > 0
&& here->BSIM4v7dNodePrime != here->BSIM4v7dNode) && here->BSIM4v7dNodePrime != here->BSIM4v7dNode)
{
CKTdltNNum(ckt, here->BSIM4v7dNodePrime); CKTdltNNum(ckt, here->BSIM4v7dNodePrime);
here->BSIM4v7dNodePrime = 0; here->BSIM4v7dNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -2761,156 +2761,126 @@ B4SOIunsetup(
here=here->B4SOInextInstance) here=here->B4SOInextInstance)
{ {
/* here for debugging purpose only */ /* here for debugging purpose only */
if (here->B4SOIqjdNode) if (here->B4SOIqjdNode > 0)
{
CKTdltNNum(ckt, here->B4SOIqjdNode); CKTdltNNum(ckt, here->B4SOIqjdNode);
here->B4SOIqjdNode = 0; here->B4SOIqjdNode = 0;
}
if (here->B4SOIqjsNode) if (here->B4SOIqjsNode > 0)
{
CKTdltNNum(ckt, here->B4SOIqjsNode); CKTdltNNum(ckt, here->B4SOIqjsNode);
here->B4SOIqjsNode = 0; here->B4SOIqjsNode = 0;
}
if (here->B4SOIqbfNode) if (here->B4SOIqbfNode > 0)
{
CKTdltNNum(ckt, here->B4SOIqbfNode); CKTdltNNum(ckt, here->B4SOIqbfNode);
here->B4SOIqbfNode = 0; here->B4SOIqbfNode = 0;
}
if (here->B4SOIcbgNode) if (here->B4SOIcbgNode > 0)
{
CKTdltNNum(ckt, here->B4SOIcbgNode); CKTdltNNum(ckt, here->B4SOIcbgNode);
here->B4SOIcbgNode = 0; here->B4SOIcbgNode = 0;
}
if (here->B4SOIcbdNode) if (here->B4SOIcbdNode > 0)
{
CKTdltNNum(ckt, here->B4SOIcbdNode); CKTdltNNum(ckt, here->B4SOIcbdNode);
here->B4SOIcbdNode = 0; here->B4SOIcbdNode = 0;
}
if (here->B4SOIcbbNode) if (here->B4SOIcbbNode > 0)
{
CKTdltNNum(ckt, here->B4SOIcbbNode); CKTdltNNum(ckt, here->B4SOIcbbNode);
here->B4SOIcbbNode = 0; here->B4SOIcbbNode = 0;
}
if (here->B4SOIibpNode) if (here->B4SOIibpNode > 0)
{
CKTdltNNum(ckt, here->B4SOIibpNode); CKTdltNNum(ckt, here->B4SOIibpNode);
here->B4SOIibpNode = 0; here->B4SOIibpNode = 0;
}
if (here->B4SOIitunNode) if (here->B4SOIitunNode > 0)
{
CKTdltNNum(ckt, here->B4SOIitunNode); CKTdltNNum(ckt, here->B4SOIitunNode);
here->B4SOIitunNode = 0; here->B4SOIitunNode = 0;
}
if (here->B4SOIigidlNode) if (here->B4SOIigidlNode > 0)
{
CKTdltNNum(ckt, here->B4SOIigidlNode); CKTdltNNum(ckt, here->B4SOIigidlNode);
here->B4SOIigidlNode = 0; here->B4SOIigidlNode = 0;
}
if (here->B4SOIgigbNode) if (here->B4SOIgigbNode > 0)
{
CKTdltNNum(ckt, here->B4SOIgigbNode); CKTdltNNum(ckt, here->B4SOIgigbNode);
here->B4SOIgigbNode = 0; here->B4SOIgigbNode = 0;
}
if (here->B4SOIgigdNode) if (here->B4SOIgigdNode > 0)
{
CKTdltNNum(ckt, here->B4SOIgigdNode); CKTdltNNum(ckt, here->B4SOIgigdNode);
here->B4SOIgigdNode = 0; here->B4SOIgigdNode = 0;
}
if (here->B4SOIgiggNode) if (here->B4SOIgiggNode > 0)
{
CKTdltNNum(ckt, here->B4SOIgiggNode); CKTdltNNum(ckt, here->B4SOIgiggNode);
here->B4SOIgiggNode = 0; here->B4SOIgiggNode = 0;
}
if (here->B4SOIigNode) if (here->B4SOIigNode > 0)
{
CKTdltNNum(ckt, here->B4SOIigNode); CKTdltNNum(ckt, here->B4SOIigNode);
here->B4SOIigNode = 0; here->B4SOIigNode = 0;
}
if (here->B4SOIiiiNode) if (here->B4SOIiiiNode > 0)
{
CKTdltNNum(ckt, here->B4SOIiiiNode); CKTdltNNum(ckt, here->B4SOIiiiNode);
here->B4SOIiiiNode = 0; here->B4SOIiiiNode = 0;
}
if (here->B4SOIibdNode) if (here->B4SOIibdNode > 0)
{
CKTdltNNum(ckt, here->B4SOIibdNode); CKTdltNNum(ckt, here->B4SOIibdNode);
here->B4SOIibdNode = 0; here->B4SOIibdNode = 0;
}
if (here->B4SOIibsNode) if (here->B4SOIibsNode > 0)
{
CKTdltNNum(ckt, here->B4SOIibsNode); CKTdltNNum(ckt, here->B4SOIibsNode);
here->B4SOIibsNode = 0; here->B4SOIibsNode = 0;
}
if (here->B4SOIicNode) if (here->B4SOIicNode > 0)
{
CKTdltNNum(ckt, here->B4SOIicNode); CKTdltNNum(ckt, here->B4SOIicNode);
here->B4SOIicNode = 0; here->B4SOIicNode = 0;
}
if (here->B4SOIidsNode) if (here->B4SOIidsNode > 0)
{
CKTdltNNum(ckt, here->B4SOIidsNode); CKTdltNNum(ckt, here->B4SOIidsNode);
here->B4SOIidsNode = 0; here->B4SOIidsNode = 0;
}
if (here->B4SOIvbsNode) if (here->B4SOIvbsNode > 0)
{
CKTdltNNum(ckt, here->B4SOIvbsNode); CKTdltNNum(ckt, here->B4SOIvbsNode);
here->B4SOIvbsNode = 0; here->B4SOIvbsNode = 0;
}
if (here->B4SOIsbNode && if (here->B4SOIsbNode > 0 &&
here->B4SOIsbNode != here->B4SOIbNode) here->B4SOIsbNode != here->B4SOIbNode)
{
CKTdltNNum(ckt, here->B4SOIsbNode); CKTdltNNum(ckt, here->B4SOIsbNode);
here->B4SOIsbNode = 0; here->B4SOIsbNode = 0;
}
if (here->B4SOIdbNode &&
here->B4SOIdbNode != here->B4SOIbNode)
{
CKTdltNNum(ckt, here->B4SOIdbNode);
here->B4SOIdbNode = 0;
}
if (here->B4SOIgNodeMid &&
here->B4SOIgNodeMid != here->B4SOIgNodeExt)
{
CKTdltNNum(ckt, here->B4SOIgNodeMid);
here->B4SOIgNodeMid = 0;
}
if (here->B4SOIgNode &&
here->B4SOIgNode != here->B4SOIgNodeExt)
{
CKTdltNNum(ckt, here->B4SOIgNode);
here->B4SOIgNode = 0;
}
if (here->B4SOItempNode && if (here->B4SOIdbNode > 0 &&
here->B4SOIdbNode != here->B4SOIbNode)
CKTdltNNum(ckt, here->B4SOIdbNode);
here->B4SOIdbNode = 0;
if (here->B4SOIgNodeMid > 0 &&
here->B4SOIgNodeMid != here->B4SOIgNodeExt)
CKTdltNNum(ckt, here->B4SOIgNodeMid);
here->B4SOIgNodeMid = 0;
if (here->B4SOIgNode > 0 &&
here->B4SOIgNode != here->B4SOIgNodeExt)
CKTdltNNum(ckt, here->B4SOIgNode);
here->B4SOIgNode = 0;
if (here->B4SOItempNode > 0 &&
here->B4SOItempNode != here->B4SOItempNodeExt && here->B4SOItempNode != here->B4SOItempNodeExt &&
here->B4SOItempNode != here->B4SOIbNodeExt && here->B4SOItempNode != here->B4SOIbNodeExt &&
here->B4SOItempNode != here->B4SOIpNodeExt) here->B4SOItempNode != here->B4SOIpNodeExt)
{
CKTdltNNum(ckt, here->B4SOItempNode); CKTdltNNum(ckt, here->B4SOItempNode);
here->B4SOItempNode = 0; here->B4SOItempNode = 0;
}
if (here->B4SOIbNode && if (here->B4SOIbNode > 0 &&
here->B4SOIbNode != here->B4SOIbNodeExt && here->B4SOIbNode != here->B4SOIbNodeExt &&
here->B4SOIbNode != here->B4SOIpNodeExt) here->B4SOIbNode != here->B4SOIpNodeExt)
{
CKTdltNNum(ckt, here->B4SOIbNode); CKTdltNNum(ckt, here->B4SOIbNode);
here->B4SOIbNode = 0; here->B4SOIbNode = 0;
}
here->B4SOIpNode = 0; here->B4SOIpNode = 0;
if (here->B4SOIsNodePrime if (here->B4SOIsNodePrime > 0
&& here->B4SOIsNodePrime != here->B4SOIsNode) && here->B4SOIsNodePrime != here->B4SOIsNode)
{
CKTdltNNum(ckt, here->B4SOIsNodePrime); CKTdltNNum(ckt, here->B4SOIsNodePrime);
here->B4SOIsNodePrime = 0; here->B4SOIsNodePrime = 0;
}
if (here->B4SOIdNodePrime if (here->B4SOIdNodePrime > 0
&& here->B4SOIdNodePrime != here->B4SOIdNode) && here->B4SOIdNodePrime != here->B4SOIdNode)
{
CKTdltNNum(ckt, here->B4SOIdNodePrime); CKTdltNNum(ckt, here->B4SOIdNodePrime);
here->B4SOIdNodePrime = 0; here->B4SOIdNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -256,12 +256,10 @@ DIOunsetup(
here=here->DIOnextInstance) here=here->DIOnextInstance)
{ {
if (here->DIOposPrimeNode if (here->DIOposPrimeNode > 0
&& here->DIOposPrimeNode != here->DIOposNode) && here->DIOposPrimeNode != here->DIOposNode)
{
CKTdltNNum(ckt, here->DIOposPrimeNode); CKTdltNNum(ckt, here->DIOposPrimeNode);
here->DIOposPrimeNode = 0; here->DIOposPrimeNode = 0;
}
} }
} }
return OK; return OK;

View File

@ -412,37 +412,30 @@ HFETAunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->HFETAinstances; here != NULL; for (here = model->HFETAinstances; here != NULL;
here=here->HFETAnextInstance) here=here->HFETAnextInstance)
{ {
if (here->HFETAsourcePrmPrmNode if (here->HFETAsourcePrmPrmNode > 0
&& here->HFETAsourcePrmPrmNode != here->HFETAsourcePrimeNode) && here->HFETAsourcePrmPrmNode != here->HFETAsourcePrimeNode)
{
CKTdltNNum(ckt, here->HFETAsourcePrmPrmNode); CKTdltNNum(ckt, here->HFETAsourcePrmPrmNode);
here->HFETAsourcePrmPrmNode = 0; here->HFETAsourcePrmPrmNode = 0;
}
if (here->HFETAdrainPrmPrmNode if (here->HFETAdrainPrmPrmNode > 0
&& here->HFETAdrainPrmPrmNode != here->HFETAdrainPrimeNode) && here->HFETAdrainPrmPrmNode != here->HFETAdrainPrimeNode)
{
CKTdltNNum(ckt, here->HFETAdrainPrmPrmNode); CKTdltNNum(ckt, here->HFETAdrainPrmPrmNode);
here->HFETAdrainPrmPrmNode = 0; here->HFETAdrainPrmPrmNode = 0;
}
if (here->HFETAgatePrimeNode if (here->HFETAgatePrimeNode > 0
&& here->HFETAgatePrimeNode != here->HFETAgateNode) && here->HFETAgatePrimeNode != here->HFETAgateNode)
{
CKTdltNNum(ckt, here->HFETAgatePrimeNode); CKTdltNNum(ckt, here->HFETAgatePrimeNode);
here->HFETAgatePrimeNode = 0; here->HFETAgatePrimeNode = 0;
}
if (here->HFETAdrainPrimeNode if (here->HFETAdrainPrimeNode > 0
&& here->HFETAdrainPrimeNode != here->HFETAdrainNode) && here->HFETAdrainPrimeNode != here->HFETAdrainNode)
{
CKTdltNNum(ckt, here->HFETAdrainPrimeNode); CKTdltNNum(ckt, here->HFETAdrainPrimeNode);
here->HFETAdrainPrimeNode = 0; here->HFETAdrainPrimeNode = 0;
}
if (here->HFETAsourcePrimeNode if (here->HFETAsourcePrimeNode > 0
&& here->HFETAsourcePrimeNode != here->HFETAsourceNode) && here->HFETAsourcePrimeNode != here->HFETAsourceNode)
{
CKTdltNNum(ckt, here->HFETAsourcePrimeNode); CKTdltNNum(ckt, here->HFETAsourcePrimeNode);
here->HFETAsourcePrimeNode = 0; here->HFETAsourcePrimeNode = 0;
}
} }
} }

View File

@ -216,18 +216,15 @@ HFET2unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->HFET2instances; here != NULL; for (here = model->HFET2instances; here != NULL;
here=here->HFET2nextInstance) here=here->HFET2nextInstance)
{ {
if (here->HFET2drainPrimeNode if (here->HFET2drainPrimeNode > 0
&& here->HFET2drainPrimeNode != here->HFET2drainNode) && here->HFET2drainPrimeNode != here->HFET2drainNode)
{
CKTdltNNum(ckt, here->HFET2drainPrimeNode); CKTdltNNum(ckt, here->HFET2drainPrimeNode);
here->HFET2drainPrimeNode = 0; here->HFET2drainPrimeNode = 0;
}
if (here->HFET2sourcePrimeNode if (here->HFET2sourcePrimeNode > 0
&& here->HFET2sourcePrimeNode != here->HFET2sourceNode) && here->HFET2sourcePrimeNode != here->HFET2sourceNode)
{
CKTdltNNum(ckt, here->HFET2sourcePrimeNode); CKTdltNNum(ckt, here->HFET2sourcePrimeNode);
here->HFET2sourcePrimeNode = 0; here->HFET2sourcePrimeNode = 0;
}
} }
} }

View File

@ -1307,42 +1307,35 @@ HSM2unsetup(
for (here = model->HSM2instances; here != NULL; for (here = model->HSM2instances; here != NULL;
here=here->HSM2nextInstance) here=here->HSM2nextInstance)
{ {
if (here->HSM2sbNode if (here->HSM2sbNode > 0
&& here->HSM2sbNode != here->HSM2bNode) && here->HSM2sbNode != here->HSM2bNode)
{
CKTdltNNum(ckt, here->HSM2sbNode); CKTdltNNum(ckt, here->HSM2sbNode);
here->HSM2sbNode = 0; here->HSM2sbNode = 0;
}
if (here->HSM2bNodePrime if (here->HSM2bNodePrime > 0
&& here->HSM2bNodePrime != here->HSM2bNode) && here->HSM2bNodePrime != here->HSM2bNode)
{
CKTdltNNum(ckt, here->HSM2bNodePrime); CKTdltNNum(ckt, here->HSM2bNodePrime);
here->HSM2bNodePrime = 0; here->HSM2bNodePrime = 0;
}
if (here->HSM2dbNode if (here->HSM2dbNode > 0
&& here->HSM2dbNode != here->HSM2bNode) && here->HSM2dbNode != here->HSM2bNode)
{
CKTdltNNum(ckt, here->HSM2dbNode); CKTdltNNum(ckt, here->HSM2dbNode);
here->HSM2dbNode = 0; here->HSM2dbNode = 0;
}
if (here->HSM2gNodePrime if (here->HSM2gNodePrime > 0
&& here->HSM2gNodePrime != here->HSM2gNode) && here->HSM2gNodePrime != here->HSM2gNode)
{
CKTdltNNum(ckt, here->HSM2gNodePrime); CKTdltNNum(ckt, here->HSM2gNodePrime);
here->HSM2gNodePrime = 0; here->HSM2gNodePrime = 0;
}
if (here->HSM2sNodePrime if (here->HSM2sNodePrime > 0
&& here->HSM2sNodePrime != here->HSM2sNode) && here->HSM2sNodePrime != here->HSM2sNode)
{
CKTdltNNum(ckt, here->HSM2sNodePrime); CKTdltNNum(ckt, here->HSM2sNodePrime);
here->HSM2sNodePrime = 0; here->HSM2sNodePrime = 0;
}
if (here->HSM2dNodePrime if (here->HSM2dNodePrime > 0
&& here->HSM2dNodePrime != here->HSM2dNode) && here->HSM2dNodePrime != here->HSM2dNode)
{
CKTdltNNum(ckt, here->HSM2dNodePrime); CKTdltNNum(ckt, here->HSM2dNodePrime);
here->HSM2dNodePrime = 0; here->HSM2dNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -1471,62 +1471,52 @@ HSMHVunsetup(
for (here = model->HSMHVinstances; here != NULL; for (here = model->HSMHVinstances; here != NULL;
here=here->HSMHVnextInstance) here=here->HSMHVnextInstance)
{ {
if (here->HSMHVqbNode) if (here->HSMHVqbNode > 0)
{
CKTdltNNum(ckt, here->HSMHVqbNode); CKTdltNNum(ckt, here->HSMHVqbNode);
here->HSMHVqbNode = 0; here->HSMHVqbNode = 0;
}
if (here->HSMHVqiNode) if (here->HSMHVqiNode > 0)
{
CKTdltNNum(ckt, here->HSMHVqiNode); CKTdltNNum(ckt, here->HSMHVqiNode);
here->HSMHVqiNode = 0; here->HSMHVqiNode = 0;
}
if (here->HSMHVtempNode > 0 && if (here->HSMHVtempNode > 0 &&
here->HSMHVtempNode != here->HSMHVtempNodeExt && here->HSMHVtempNode != here->HSMHVtempNodeExt &&
here->HSMHVtempNode != here->HSMHVsubNodeExt) here->HSMHVtempNode != here->HSMHVsubNodeExt)
{
CKTdltNNum(ckt, here->HSMHVtempNode); CKTdltNNum(ckt, here->HSMHVtempNode);
here->HSMHVtempNode = 0; here->HSMHVtempNode = 0;
}
here->HSMHVsubNode = 0; here->HSMHVsubNode = 0;
if (here->HSMHVsbNode if (here->HSMHVsbNode > 0
&& here->HSMHVsbNode != here->HSMHVbNode) && here->HSMHVsbNode != here->HSMHVbNode)
{
CKTdltNNum(ckt, here->HSMHVsbNode); CKTdltNNum(ckt, here->HSMHVsbNode);
here->HSMHVsbNode = 0; here->HSMHVsbNode = 0;
}
if (here->HSMHVbNodePrime if (here->HSMHVbNodePrime > 0
&& here->HSMHVbNodePrime != here->HSMHVbNode) && here->HSMHVbNodePrime != here->HSMHVbNode)
{
CKTdltNNum(ckt, here->HSMHVbNodePrime); CKTdltNNum(ckt, here->HSMHVbNodePrime);
here->HSMHVbNodePrime = 0; here->HSMHVbNodePrime = 0;
}
if (here->HSMHVdbNode if (here->HSMHVdbNode > 0
&& here->HSMHVdbNode != here->HSMHVbNode) && here->HSMHVdbNode != here->HSMHVbNode)
{
CKTdltNNum(ckt, here->HSMHVdbNode); CKTdltNNum(ckt, here->HSMHVdbNode);
here->HSMHVdbNode = 0; here->HSMHVdbNode = 0;
}
if (here->HSMHVgNodePrime if (here->HSMHVgNodePrime > 0
&& here->HSMHVgNodePrime != here->HSMHVgNode) && here->HSMHVgNodePrime != here->HSMHVgNode)
{
CKTdltNNum(ckt, here->HSMHVgNodePrime); CKTdltNNum(ckt, here->HSMHVgNodePrime);
here->HSMHVgNodePrime = 0; here->HSMHVgNodePrime = 0;
}
if (here->HSMHVsNodePrime if (here->HSMHVsNodePrime > 0
&& here->HSMHVsNodePrime != here->HSMHVsNode) && here->HSMHVsNodePrime != here->HSMHVsNode)
{
CKTdltNNum(ckt, here->HSMHVsNodePrime); CKTdltNNum(ckt, here->HSMHVsNodePrime);
here->HSMHVsNodePrime = 0; here->HSMHVsNodePrime = 0;
}
if (here->HSMHVdNodePrime if (here->HSMHVdNodePrime > 0
&& here->HSMHVdNodePrime != here->HSMHVdNode) && here->HSMHVdNodePrime != here->HSMHVdNode)
{
CKTdltNNum(ckt, here->HSMHVdNodePrime); CKTdltNNum(ckt, here->HSMHVdNodePrime);
here->HSMHVdNodePrime = 0; here->HSMHVdNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -1742,58 +1742,48 @@ HSMHV2unsetup(
if (here->HSMHV2tempNode > 0 && if (here->HSMHV2tempNode > 0 &&
here->HSMHV2tempNode != here->HSMHV2tempNodeExt && here->HSMHV2tempNode != here->HSMHV2tempNodeExt &&
here->HSMHV2tempNode != here->HSMHV2subNodeExt) here->HSMHV2tempNode != here->HSMHV2subNodeExt)
{
CKTdltNNum(ckt, here->HSMHV2tempNode); CKTdltNNum(ckt, here->HSMHV2tempNode);
here->HSMHV2tempNode = 0; here->HSMHV2tempNode = 0;
}
here->HSMHV2subNode = 0; here->HSMHV2subNode = 0;
if (here->HSMHV2qbNode) if (here->HSMHV2qbNode > 0)
{
CKTdltNNum(ckt, here->HSMHV2qbNode); CKTdltNNum(ckt, here->HSMHV2qbNode);
here->HSMHV2qbNode = 0; here->HSMHV2qbNode = 0;
}
if (here->HSMHV2qiNode) if (here->HSMHV2qiNode > 0)
{
CKTdltNNum(ckt, here->HSMHV2qiNode); CKTdltNNum(ckt, here->HSMHV2qiNode);
here->HSMHV2qiNode = 0; here->HSMHV2qiNode = 0;
}
if (here->HSMHV2sbNode if (here->HSMHV2sbNode > 0
&& here->HSMHV2sbNode != here->HSMHV2bNode) && here->HSMHV2sbNode != here->HSMHV2bNode)
{
CKTdltNNum(ckt, here->HSMHV2sbNode); CKTdltNNum(ckt, here->HSMHV2sbNode);
here->HSMHV2sbNode = 0; here->HSMHV2sbNode = 0;
}
if (here->HSMHV2bNodePrime if (here->HSMHV2bNodePrime > 0
&& here->HSMHV2bNodePrime != here->HSMHV2bNode) && here->HSMHV2bNodePrime != here->HSMHV2bNode)
{
CKTdltNNum(ckt, here->HSMHV2bNodePrime); CKTdltNNum(ckt, here->HSMHV2bNodePrime);
here->HSMHV2bNodePrime = 0; here->HSMHV2bNodePrime = 0;
}
if (here->HSMHV2dbNode if (here->HSMHV2dbNode > 0
&& here->HSMHV2dbNode != here->HSMHV2bNode) && here->HSMHV2dbNode != here->HSMHV2bNode)
{
CKTdltNNum(ckt, here->HSMHV2dbNode); CKTdltNNum(ckt, here->HSMHV2dbNode);
here->HSMHV2dbNode = 0; here->HSMHV2dbNode = 0;
}
if (here->HSMHV2gNodePrime if (here->HSMHV2gNodePrime > 0
&& here->HSMHV2gNodePrime != here->HSMHV2gNode) && here->HSMHV2gNodePrime != here->HSMHV2gNode)
{
CKTdltNNum(ckt, here->HSMHV2gNodePrime); CKTdltNNum(ckt, here->HSMHV2gNodePrime);
here->HSMHV2gNodePrime = 0; here->HSMHV2gNodePrime = 0;
}
if (here->HSMHV2sNodePrime if (here->HSMHV2sNodePrime > 0
&& here->HSMHV2sNodePrime != here->HSMHV2sNode) && here->HSMHV2sNodePrime != here->HSMHV2sNode)
{
CKTdltNNum(ckt, here->HSMHV2sNodePrime); CKTdltNNum(ckt, here->HSMHV2sNodePrime);
here->HSMHV2sNodePrime = 0; here->HSMHV2sNodePrime = 0;
}
if (here->HSMHV2dNodePrime if (here->HSMHV2dNodePrime > 0
&& here->HSMHV2dNodePrime != here->HSMHV2dNode) && here->HSMHV2dNodePrime != here->HSMHV2dNode)
{
CKTdltNNum(ckt, here->HSMHV2dNodePrime); CKTdltNNum(ckt, here->HSMHV2dNodePrime);
here->HSMHV2dNodePrime = 0; here->HSMHV2dNodePrime = 0;
}
} }
} }
#endif #endif

View File

@ -118,10 +118,9 @@ INDunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->INDinstances; here != NULL; for (here = model->INDinstances; here != NULL;
here=here->INDnextInstance) here=here->INDnextInstance)
{ {
if (here->INDbrEq) { if (here->INDbrEq > 0)
CKTdltNNum(ckt, here->INDbrEq); CKTdltNNum(ckt, here->INDbrEq);
here->INDbrEq = 0; here->INDbrEq = 0;
}
} }
} }
return OK; return OK;

View File

@ -195,18 +195,15 @@ JFETunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->JFETinstances; here != NULL; for (here = model->JFETinstances; here != NULL;
here=here->JFETnextInstance) here=here->JFETnextInstance)
{ {
if (here->JFETdrainPrimeNode if (here->JFETdrainPrimeNode > 0
&& here->JFETdrainPrimeNode != here->JFETdrainNode) && here->JFETdrainPrimeNode != here->JFETdrainNode)
{
CKTdltNNum(ckt, here->JFETdrainPrimeNode); CKTdltNNum(ckt, here->JFETdrainPrimeNode);
here->JFETdrainPrimeNode = 0; here->JFETdrainPrimeNode = 0;
}
if (here->JFETsourcePrimeNode if (here->JFETsourcePrimeNode > 0
&& here->JFETsourcePrimeNode != here->JFETsourceNode) && here->JFETsourcePrimeNode != here->JFETsourceNode)
{
CKTdltNNum(ckt, here->JFETsourcePrimeNode); CKTdltNNum(ckt, here->JFETsourcePrimeNode);
here->JFETsourcePrimeNode = 0; here->JFETsourcePrimeNode = 0;
}
} }
} }
return OK; return OK;

View File

@ -135,18 +135,15 @@ JFET2unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->JFET2instances; here != NULL; for (here = model->JFET2instances; here != NULL;
here=here->JFET2nextInstance) here=here->JFET2nextInstance)
{ {
if (here->JFET2drainPrimeNode if (here->JFET2drainPrimeNode > 0
&& here->JFET2drainPrimeNode != here->JFET2drainNode) && here->JFET2drainPrimeNode != here->JFET2drainNode)
{
CKTdltNNum(ckt, here->JFET2drainPrimeNode); CKTdltNNum(ckt, here->JFET2drainPrimeNode);
here->JFET2drainPrimeNode = 0; here->JFET2drainPrimeNode = 0;
}
if (here->JFET2sourcePrimeNode if (here->JFET2sourcePrimeNode > 0
&& here->JFET2sourcePrimeNode != here->JFET2sourceNode) && here->JFET2sourcePrimeNode != here->JFET2sourceNode)
{
CKTdltNNum(ckt, here->JFET2sourcePrimeNode); CKTdltNNum(ckt, here->JFET2sourcePrimeNode);
here->JFET2sourcePrimeNode = 0; here->JFET2sourcePrimeNode = 0;
}
} }
} }
return OK; return OK;

View File

@ -229,14 +229,13 @@ LTRAunsetup(GENmodel *inModel, CKTcircuit *ckt)
model = model->LTRAnextModel) { model = model->LTRAnextModel) {
for (here = model->LTRAinstances; here != NULL; for (here = model->LTRAinstances; here != NULL;
here = here->LTRAnextInstance) { here = here->LTRAnextInstance) {
if (here->LTRAbrEq2) { if (here->LTRAbrEq2 > 0)
CKTdltNNum(ckt, here->LTRAbrEq2); CKTdltNNum(ckt, here->LTRAbrEq2);
here->LTRAbrEq2 = 0; here->LTRAbrEq2 = 0;
}
if (here->LTRAbrEq1) { if (here->LTRAbrEq1 > 0)
CKTdltNNum(ckt, here->LTRAbrEq1); CKTdltNNum(ckt, here->LTRAbrEq1);
here->LTRAbrEq1 = 0; here->LTRAbrEq1 = 0;
}
} }
} }
return OK; return OK;

View File

@ -168,18 +168,15 @@ MESunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->MESinstances; here != NULL; for (here = model->MESinstances; here != NULL;
here=here->MESnextInstance) here=here->MESnextInstance)
{ {
if (here->MESdrainPrimeNode if (here->MESdrainPrimeNode > 0
&& here->MESdrainPrimeNode != here->MESdrainNode) && here->MESdrainPrimeNode != here->MESdrainNode)
{
CKTdltNNum(ckt, here->MESdrainPrimeNode); CKTdltNNum(ckt, here->MESdrainPrimeNode);
here->MESdrainPrimeNode = 0; here->MESdrainPrimeNode = 0;
}
if (here->MESsourcePrimeNode if (here->MESsourcePrimeNode > 0
&& here->MESsourcePrimeNode != here->MESsourceNode) && here->MESsourcePrimeNode != here->MESsourceNode)
{
CKTdltNNum(ckt, here->MESsourcePrimeNode); CKTdltNNum(ckt, here->MESsourcePrimeNode);
here->MESsourcePrimeNode = 0; here->MESsourcePrimeNode = 0;
}
} }
} }
return OK; return OK;

View File

@ -419,36 +419,31 @@ MESAunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->MESAinstances; here != NULL; for (here = model->MESAinstances; here != NULL;
here=here->MESAnextInstance) here=here->MESAnextInstance)
{ {
if (here->MESAdrainPrmPrmNode if (here->MESAdrainPrmPrmNode > 0
&& here->MESAdrainPrmPrmNode != here->MESAdrainPrimeNode) && here->MESAdrainPrmPrmNode != here->MESAdrainPrimeNode)
{
CKTdltNNum(ckt, here->MESAdrainPrmPrmNode); CKTdltNNum(ckt, here->MESAdrainPrmPrmNode);
here->MESAdrainPrmPrmNode = 0; here->MESAdrainPrmPrmNode = 0;
}
if (here->MESAsourcePrmPrmNode if (here->MESAsourcePrmPrmNode > 0
&& here->MESAsourcePrmPrmNode != here->MESAsourcePrimeNode) && here->MESAsourcePrmPrmNode != here->MESAsourcePrimeNode)
{
CKTdltNNum(ckt, here->MESAsourcePrmPrmNode); CKTdltNNum(ckt, here->MESAsourcePrmPrmNode);
here->MESAsourcePrmPrmNode = 0; here->MESAsourcePrmPrmNode = 0;
}
if (here->MESAgatePrimeNode if (here->MESAgatePrimeNode > 0
&& here->MESAgatePrimeNode != here->MESAgateNode) && here->MESAgatePrimeNode != here->MESAgateNode)
{
CKTdltNNum(ckt, here->MESAgatePrimeNode); CKTdltNNum(ckt, here->MESAgatePrimeNode);
here->MESAgatePrimeNode = 0; here->MESAgatePrimeNode = 0;
}
if (here->MESAdrainPrimeNode if (here->MESAdrainPrimeNode > 0
&& here->MESAdrainPrimeNode != here->MESAdrainNode) && here->MESAdrainPrimeNode != here->MESAdrainNode)
{
CKTdltNNum(ckt, here->MESAdrainPrimeNode); CKTdltNNum(ckt, here->MESAdrainPrimeNode);
here->MESAdrainPrimeNode = 0; here->MESAdrainPrimeNode = 0;
}
if (here->MESAsourcePrimeNode if (here->MESAsourcePrimeNode > 0
&& here->MESAsourcePrimeNode != here->MESAsourceNode) && here->MESAsourcePrimeNode != here->MESAsourceNode)
{
CKTdltNNum(ckt, here->MESAsourcePrimeNode); CKTdltNNum(ckt, here->MESAsourcePrimeNode);
here->MESAsourcePrimeNode = 0; here->MESAsourcePrimeNode = 0;
}
} }
} }

View File

@ -223,18 +223,15 @@ MOS1unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->MOS1instances; here != NULL; for (here = model->MOS1instances; here != NULL;
here=here->MOS1nextInstance) here=here->MOS1nextInstance)
{ {
if (here->MOS1sNodePrime if (here->MOS1sNodePrime > 0
&& here->MOS1sNodePrime != here->MOS1sNode) && here->MOS1sNodePrime != here->MOS1sNode)
{
CKTdltNNum(ckt, here->MOS1sNodePrime); CKTdltNNum(ckt, here->MOS1sNodePrime);
here->MOS1sNodePrime= 0; here->MOS1sNodePrime= 0;
}
if (here->MOS1dNodePrime if (here->MOS1dNodePrime > 0
&& here->MOS1dNodePrime != here->MOS1dNode) && here->MOS1dNodePrime != here->MOS1dNode)
{
CKTdltNNum(ckt, here->MOS1dNodePrime); CKTdltNNum(ckt, here->MOS1dNodePrime);
here->MOS1dNodePrime= 0; here->MOS1dNodePrime= 0;
}
} }
} }
return OK; return OK;

View File

@ -246,18 +246,15 @@ MOS2unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->MOS2instances; here != NULL; for (here = model->MOS2instances; here != NULL;
here=here->MOS2nextInstance) here=here->MOS2nextInstance)
{ {
if (here->MOS2sNodePrime if (here->MOS2sNodePrime > 0
&& here->MOS2sNodePrime != here->MOS2sNode) && here->MOS2sNodePrime != here->MOS2sNode)
{
CKTdltNNum(ckt, here->MOS2sNodePrime); CKTdltNNum(ckt, here->MOS2sNodePrime);
here->MOS2sNodePrime = 0; here->MOS2sNodePrime = 0;
}
if (here->MOS2dNodePrime if (here->MOS2dNodePrime > 0
&& here->MOS2dNodePrime != here->MOS2dNode) && here->MOS2dNodePrime != here->MOS2dNode)
{
CKTdltNNum(ckt, here->MOS2dNodePrime); CKTdltNNum(ckt, here->MOS2dNodePrime);
here->MOS2dNodePrime = 0; here->MOS2dNodePrime = 0;
}
} }
} }
return OK; return OK;

View File

@ -271,18 +271,15 @@ MOS3unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->MOS3instances; here != NULL; for (here = model->MOS3instances; here != NULL;
here=here->MOS3nextInstance) here=here->MOS3nextInstance)
{ {
if (here->MOS3sNodePrime if (here->MOS3sNodePrime > 0
&& here->MOS3sNodePrime != here->MOS3sNode) && here->MOS3sNodePrime != here->MOS3sNode)
{
CKTdltNNum(ckt, here->MOS3sNodePrime); CKTdltNNum(ckt, here->MOS3sNodePrime);
here->MOS3sNodePrime= 0; here->MOS3sNodePrime= 0;
}
if (here->MOS3dNodePrime if (here->MOS3dNodePrime > 0
&& here->MOS3dNodePrime != here->MOS3dNode) && here->MOS3dNodePrime != here->MOS3dNode)
{
CKTdltNNum(ckt, here->MOS3dNodePrime); CKTdltNNum(ckt, here->MOS3dNodePrime);
here->MOS3dNodePrime= 0; here->MOS3dNodePrime= 0;
}
} }
} }
return OK; return OK;

View File

@ -233,18 +233,15 @@ MOS6unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->MOS6instances; here != NULL; for (here = model->MOS6instances; here != NULL;
here=here->MOS6nextInstance) here=here->MOS6nextInstance)
{ {
if (here->MOS6sNodePrime if (here->MOS6sNodePrime > 0
&& here->MOS6sNodePrime != here->MOS6sNode) && here->MOS6sNodePrime != here->MOS6sNode)
{
CKTdltNNum(ckt, here->MOS6sNodePrime); CKTdltNNum(ckt, here->MOS6sNodePrime);
here->MOS6sNodePrime= 0; here->MOS6sNodePrime= 0;
}
if (here->MOS6dNodePrime if (here->MOS6dNodePrime > 0
&& here->MOS6dNodePrime != here->MOS6dNode) && here->MOS6dNodePrime != here->MOS6dNode)
{
CKTdltNNum(ckt, here->MOS6dNodePrime); CKTdltNNum(ckt, here->MOS6dNodePrime);
here->MOS6dNodePrime= 0; here->MOS6dNodePrime= 0;
}
} }
} }
return OK; return OK;

View File

@ -271,18 +271,15 @@ MOS9unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->MOS9instances; here != NULL; for (here = model->MOS9instances; here != NULL;
here=here->MOS9nextInstance) here=here->MOS9nextInstance)
{ {
if (here->MOS9sNodePrime if (here->MOS9sNodePrime > 0
&& here->MOS9sNodePrime != here->MOS9sNode) && here->MOS9sNodePrime != here->MOS9sNode)
{
CKTdltNNum(ckt, here->MOS9sNodePrime); CKTdltNNum(ckt, here->MOS9sNodePrime);
here->MOS9sNodePrime= 0; here->MOS9sNodePrime= 0;
}
if (here->MOS9dNodePrime if (here->MOS9dNodePrime > 0
&& here->MOS9dNodePrime != here->MOS9dNode) && here->MOS9dNodePrime != here->MOS9dNode)
{
CKTdltNNum(ckt, here->MOS9dNodePrime); CKTdltNNum(ckt, here->MOS9dNodePrime);
here->MOS9dNodePrime= 0; here->MOS9dNodePrime= 0;
}
} }
} }
return OK; return OK;

View File

@ -674,43 +674,36 @@ SOI3unsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->SOI3instances; here != NULL; for (here = model->SOI3instances; here != NULL;
here=here->SOI3nextInstance) here=here->SOI3nextInstance)
{ {
if (here->SOI3tout4Node) if (here->SOI3tout4Node > 0)
{
CKTdltNNum(ckt, here->SOI3tout4Node); CKTdltNNum(ckt, here->SOI3tout4Node);
here->SOI3tout4Node = 0; here->SOI3tout4Node = 0;
}
if (here->SOI3tout3Node) if (here->SOI3tout3Node > 0)
{
CKTdltNNum(ckt, here->SOI3tout3Node); CKTdltNNum(ckt, here->SOI3tout3Node);
here->SOI3tout3Node = 0; here->SOI3tout3Node = 0;
}
if (here->SOI3tout2Node) if (here->SOI3tout2Node > 0)
{
CKTdltNNum(ckt, here->SOI3tout2Node); CKTdltNNum(ckt, here->SOI3tout2Node);
here->SOI3tout2Node = 0; here->SOI3tout2Node = 0;
}
if (here->SOI3tout1Node) if (here->SOI3tout1Node > 0)
{
CKTdltNNum(ckt, here->SOI3tout1Node); CKTdltNNum(ckt, here->SOI3tout1Node);
here->SOI3tout1Node = 0; here->SOI3tout1Node = 0;
}
if (here->SOI3branch) if (here->SOI3branch > 0)
{
CKTdltNNum(ckt, here->SOI3branch); CKTdltNNum(ckt, here->SOI3branch);
here->SOI3branch=0; here->SOI3branch=0;
}
if (here->SOI3sNodePrime if (here->SOI3sNodePrime > 0
&& here->SOI3sNodePrime != here->SOI3sNode) && here->SOI3sNodePrime != here->SOI3sNode)
{
CKTdltNNum(ckt, here->SOI3sNodePrime); CKTdltNNum(ckt, here->SOI3sNodePrime);
here->SOI3sNodePrime= 0; here->SOI3sNodePrime= 0;
}
if (here->SOI3dNodePrime if (here->SOI3dNodePrime > 0
&& here->SOI3dNodePrime != here->SOI3dNode) && here->SOI3dNodePrime != here->SOI3dNode)
{
CKTdltNNum(ckt, here->SOI3dNodePrime); CKTdltNNum(ckt, here->SOI3dNodePrime);
here->SOI3dNodePrime= 0; here->SOI3dNodePrime= 0;
}
} }
} }
return OK; return OK;

View File

@ -126,22 +126,21 @@ TRAunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->TRAinstances; here != NULL; for (here = model->TRAinstances; here != NULL;
here=here->TRAnextInstance) here=here->TRAnextInstance)
{ {
if (here->TRAintNode2) { if (here->TRAintNode2 > 0)
CKTdltNNum(ckt, here->TRAintNode2); CKTdltNNum(ckt, here->TRAintNode2);
here->TRAintNode2= 0; here->TRAintNode2= 0;
}
if (here->TRAintNode1) { if (here->TRAintNode1 > 0)
CKTdltNNum(ckt, here->TRAintNode1); CKTdltNNum(ckt, here->TRAintNode1);
here->TRAintNode1= 0; here->TRAintNode1= 0;
}
if (here->TRAbrEq2) { if (here->TRAbrEq2 > 0)
CKTdltNNum(ckt, here->TRAbrEq2); CKTdltNNum(ckt, here->TRAbrEq2);
here->TRAbrEq2= 0; here->TRAbrEq2= 0;
}
if (here->TRAbrEq1) { if (here->TRAbrEq1 > 0)
CKTdltNNum(ckt, here->TRAbrEq1); CKTdltNNum(ckt, here->TRAbrEq1);
here->TRAbrEq1= 0; here->TRAbrEq1= 0;
}
} }
} }
return OK; return OK;

View File

@ -558,45 +558,37 @@ VBICunsetup(
for (here = model->VBICinstances; here != NULL; for (here = model->VBICinstances; here != NULL;
here=here->VBICnextInstance) here=here->VBICnextInstance)
{ {
if (here->VBICbaseBINode) if (here->VBICbaseBINode > 0)
{
CKTdltNNum(ckt, here->VBICbaseBINode); CKTdltNNum(ckt, here->VBICbaseBINode);
here->VBICbaseBINode = 0; here->VBICbaseBINode = 0;
}
if (here->VBICbaseBPNode) if (here->VBICbaseBPNode > 0)
{
CKTdltNNum(ckt, here->VBICbaseBPNode); CKTdltNNum(ckt, here->VBICbaseBPNode);
here->VBICbaseBPNode = 0; here->VBICbaseBPNode = 0;
}
if (here->VBICcollCINode) if (here->VBICcollCINode > 0)
{
CKTdltNNum(ckt, here->VBICcollCINode); CKTdltNNum(ckt, here->VBICcollCINode);
here->VBICcollCINode = 0; here->VBICcollCINode = 0;
}
if (here->VBICsubsSINode if (here->VBICsubsSINode > 0
&& here->VBICsubsSINode != here->VBICsubsNode) && here->VBICsubsSINode != here->VBICsubsNode)
{
CKTdltNNum(ckt, here->VBICsubsSINode); CKTdltNNum(ckt, here->VBICsubsSINode);
here->VBICsubsSINode = 0; here->VBICsubsSINode = 0;
}
if (here->VBICemitEINode if (here->VBICemitEINode > 0
&& here->VBICemitEINode != here->VBICemitNode) && here->VBICemitEINode != here->VBICemitNode)
{
CKTdltNNum(ckt, here->VBICemitEINode); CKTdltNNum(ckt, here->VBICemitEINode);
here->VBICemitEINode = 0; here->VBICemitEINode = 0;
}
if (here->VBICbaseBXNode if (here->VBICbaseBXNode > 0
&& here->VBICbaseBXNode != here->VBICbaseNode) && here->VBICbaseBXNode != here->VBICbaseNode)
{
CKTdltNNum(ckt, here->VBICbaseBXNode); CKTdltNNum(ckt, here->VBICbaseBXNode);
here->VBICbaseBXNode = 0; here->VBICbaseBXNode = 0;
}
if (here->VBICcollCXNode if (here->VBICcollCXNode > 0
&& here->VBICcollCXNode != here->VBICcollNode) && here->VBICcollCXNode != here->VBICcollNode)
{
CKTdltNNum(ckt, here->VBICcollCXNode); CKTdltNNum(ckt, here->VBICcollCXNode);
here->VBICcollCXNode = 0; here->VBICcollCXNode = 0;
}
} }
} }
return OK; return OK;

View File

@ -73,10 +73,9 @@ VCVSunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->VCVSinstances; here != NULL; for (here = model->VCVSinstances; here != NULL;
here=here->VCVSnextInstance) here=here->VCVSnextInstance)
{ {
if (here->VCVSbranch) { if (here->VCVSbranch > 0)
CKTdltNNum(ckt, here->VCVSbranch); CKTdltNNum(ckt, here->VCVSbranch);
here->VCVSbranch = 0; here->VCVSbranch = 0;
}
} }
} }
return OK; return OK;

View File

@ -70,10 +70,9 @@ VSRCunsetup(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->VSRCinstances; here != NULL; for (here = model->VSRCinstances; here != NULL;
here=here->VSRCnextInstance) here=here->VSRCnextInstance)
{ {
if (here->VSRCbranch) { if (here->VSRCbranch > 0)
CKTdltNNum(ckt, here->VSRCbranch); CKTdltNNum(ckt, here->VSRCbranch);
here->VSRCbranch = 0; here->VSRCbranch = 0;
}
} }
} }
return OK; return OK;