src/spicelib/devices/*/*set.c, missing CKTdltNNum() invocations, simple cases
All locally created nodes (CKTmk..() invocations in XXXsetup()) must be deleted in XXXunsetup() Otherwise CKTmk..() invocations during a following CKTsetup() will re-emit still used node numbers, thus accidentally shorting nodes. This patch fixes the simple cases, which are local node variables which will start with value 0 and eventually be set with the result of a CKTmk..() invocation. More complex cases evolve, if such a local variable might receive a node number which origins from another node, or the netlist itself.
This commit is contained in:
parent
0c86adf9af
commit
1fd14fa2ee
|
|
@ -1144,6 +1144,11 @@ BSIM3unsetup(
|
|||
for (here = model->BSIM3instances; here != NULL;
|
||||
here=here->BSIM3nextInstance)
|
||||
{
|
||||
if (here->BSIM3qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3qNode);
|
||||
here->BSIM3qNode = 0;
|
||||
}
|
||||
if (here->BSIM3sNodePrime
|
||||
&& here->BSIM3sNodePrime != here->BSIM3sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1357,6 +1357,223 @@ B3SOIDDunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->B3SOIDDinstances; here != NULL;
|
||||
here=here->B3SOIDDnextInstance)
|
||||
{
|
||||
/* here for debugging purpose only */
|
||||
if (here->B3SOIDDdum5Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIDDdum5Node);
|
||||
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->B3SOIDDsNodePrime
|
||||
&& here->B3SOIDDsNodePrime != here->B3SOIDDsNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1346,6 +1346,223 @@ B3SOIFDunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->B3SOIFDinstances; here != NULL;
|
||||
here=here->B3SOIFDnextInstance)
|
||||
{
|
||||
/* here for debugging purpose only */
|
||||
if (here->B3SOIFDdum5Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIFDdum5Node);
|
||||
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->B3SOIFDsNodePrime
|
||||
&& here->B3SOIFDsNodePrime != here->B3SOIFDsNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1461,6 +1461,103 @@ B3SOIPDunsetup(
|
|||
for (here = model->B3SOIPDinstances; here != NULL;
|
||||
here=here->B3SOIPDnextInstance)
|
||||
{
|
||||
/* here for debugging purpose only */
|
||||
if (here->B3SOIPDqjdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIPDqjdNode);
|
||||
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->B3SOIPDsNodePrime
|
||||
&& here->B3SOIPDsNodePrime != here->B3SOIPDsNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -904,6 +904,11 @@ BSIM3v0unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->BSIM3v0instances; here != NULL;
|
||||
here=here->BSIM3v0nextInstance)
|
||||
{
|
||||
if (here->BSIM3v0qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v0qNode);
|
||||
here->BSIM3v0qNode = 0;
|
||||
}
|
||||
if (here->BSIM3v0sNodePrime
|
||||
&& here->BSIM3v0sNodePrime != here->BSIM3v0sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -964,6 +964,11 @@ BSIM3v1unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->BSIM3v1instances; here != NULL;
|
||||
here=here->BSIM3v1nextInstance)
|
||||
{
|
||||
if (here->BSIM3v1qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v1qNode);
|
||||
here->BSIM3v1qNode = 0;
|
||||
}
|
||||
if (here->BSIM3v1sNodePrime
|
||||
&& here->BSIM3v1sNodePrime != here->BSIM3v1sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1156,6 +1156,11 @@ BSIM3v32unsetup(
|
|||
for (here = model->BSIM3v32instances; here != NULL;
|
||||
here=here->BSIM3v32nextInstance)
|
||||
{
|
||||
if (here->BSIM3v32qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v32qNode);
|
||||
here->BSIM3v32qNode = 0;
|
||||
}
|
||||
if (here->BSIM3v32sNodePrime
|
||||
&& here->BSIM3v32sNodePrime != here->BSIM3v32sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2765,6 +2765,11 @@ CKTcircuit *ckt)
|
|||
for (here = model->BSIM4instances; here != NULL;
|
||||
here=here->BSIM4nextInstance)
|
||||
{
|
||||
if (here->BSIM4qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4qNode);
|
||||
here->BSIM4qNode = 0;
|
||||
}
|
||||
if (here->BSIM4sNodePrime
|
||||
&& here->BSIM4sNodePrime != here->BSIM4sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2143,6 +2143,11 @@ BSIM4v5unsetup(
|
|||
for (here = model->BSIM4v5instances; here != NULL;
|
||||
here=here->BSIM4v5nextInstance)
|
||||
{
|
||||
if (here->BSIM4v5qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v5qNode);
|
||||
here->BSIM4v5qNode = 0;
|
||||
}
|
||||
if (here->BSIM4v5sNodePrime
|
||||
&& here->BSIM4v5sNodePrime != here->BSIM4v5sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2476,6 +2476,11 @@ BSIM4v6unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->BSIM4v6instances; here != NULL;
|
||||
here=here->BSIM4v6nextInstance)
|
||||
{
|
||||
if (here->BSIM4v6qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v6qNode);
|
||||
here->BSIM4v6qNode = 0;
|
||||
}
|
||||
if (here->BSIM4v6sNodePrime
|
||||
&& here->BSIM4v6sNodePrime != here->BSIM4v6sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2633,6 +2633,11 @@ CKTcircuit *ckt)
|
|||
for (here = model->BSIM4v7instances; here != NULL;
|
||||
here=here->BSIM4v7nextInstance)
|
||||
{
|
||||
if (here->BSIM4v7qNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v7qNode);
|
||||
here->BSIM4v7qNode = 0;
|
||||
}
|
||||
if (here->BSIM4v7sNodePrime
|
||||
&& here->BSIM4v7sNodePrime != here->BSIM4v7sNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2766,6 +2766,103 @@ B4SOIunsetup(
|
|||
for (here = model->B4SOIinstances; here != NULL;
|
||||
here=here->B4SOInextInstance)
|
||||
{
|
||||
/* here for debugging purpose only */
|
||||
if (here->B4SOIqjdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIqjdNode);
|
||||
here->B4SOIqjdNode = 0;
|
||||
}
|
||||
if (here->B4SOIqjsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIqjsNode);
|
||||
here->B4SOIqjsNode = 0;
|
||||
}
|
||||
if (here->B4SOIqbfNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIqbfNode);
|
||||
here->B4SOIqbfNode = 0;
|
||||
}
|
||||
if (here->B4SOIcbgNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIcbgNode);
|
||||
here->B4SOIcbgNode = 0;
|
||||
}
|
||||
if (here->B4SOIcbdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIcbdNode);
|
||||
here->B4SOIcbdNode = 0;
|
||||
}
|
||||
if (here->B4SOIcbbNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIcbbNode);
|
||||
here->B4SOIcbbNode = 0;
|
||||
}
|
||||
if (here->B4SOIibpNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIibpNode);
|
||||
here->B4SOIibpNode = 0;
|
||||
}
|
||||
if (here->B4SOIitunNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIitunNode);
|
||||
here->B4SOIitunNode = 0;
|
||||
}
|
||||
if (here->B4SOIigidlNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIigidlNode);
|
||||
here->B4SOIigidlNode = 0;
|
||||
}
|
||||
if (here->B4SOIgigbNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIgigbNode);
|
||||
here->B4SOIgigbNode = 0;
|
||||
}
|
||||
if (here->B4SOIgigdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIgigdNode);
|
||||
here->B4SOIgigdNode = 0;
|
||||
}
|
||||
if (here->B4SOIgiggNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIgiggNode);
|
||||
here->B4SOIgiggNode = 0;
|
||||
}
|
||||
if (here->B4SOIigNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIigNode);
|
||||
here->B4SOIigNode = 0;
|
||||
}
|
||||
if (here->B4SOIiiiNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIiiiNode);
|
||||
here->B4SOIiiiNode = 0;
|
||||
}
|
||||
if (here->B4SOIibdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIibdNode);
|
||||
here->B4SOIibdNode = 0;
|
||||
}
|
||||
if (here->B4SOIibsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIibsNode);
|
||||
here->B4SOIibsNode = 0;
|
||||
}
|
||||
if (here->B4SOIicNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIicNode);
|
||||
here->B4SOIicNode = 0;
|
||||
}
|
||||
if (here->B4SOIidsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIidsNode);
|
||||
here->B4SOIidsNode = 0;
|
||||
}
|
||||
if (here->B4SOIvbsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIvbsNode);
|
||||
here->B4SOIvbsNode = 0;
|
||||
}
|
||||
|
||||
if (here->B4SOIsNodePrime
|
||||
&& here->B4SOIsNodePrime != here->B4SOIsNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1473,6 +1473,16 @@ HSMHVunsetup(
|
|||
for (here = model->HSMHVinstances; here != NULL;
|
||||
here=here->HSMHVnextInstance)
|
||||
{
|
||||
if (here->HSMHVqbNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVqbNode);
|
||||
here->HSMHVqbNode = 0;
|
||||
}
|
||||
if (here->HSMHVqiNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVqiNode);
|
||||
here->HSMHVqiNode = 0;
|
||||
}
|
||||
if (here->HSMHVsbNode
|
||||
&& here->HSMHVsbNode != here->HSMHVbNode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1741,6 +1741,16 @@ HSMHV2unsetup(
|
|||
for (here = model->HSMHV2instances; here != NULL;
|
||||
here=here->HSMHV2nextInstance)
|
||||
{
|
||||
if (here->HSMHV2qbNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2qbNode);
|
||||
here->HSMHV2qbNode = 0;
|
||||
}
|
||||
if (here->HSMHV2qiNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2qiNode);
|
||||
here->HSMHV2qiNode = 0;
|
||||
}
|
||||
if (here->HSMHV2sbNode
|
||||
&& here->HSMHV2sbNode != here->HSMHV2bNode)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue