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:
rlar 2017-01-21 22:17:33 +01:00
parent 0c86adf9af
commit 1fd14fa2ee
14 changed files with 688 additions and 0 deletions

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{