src/spicelib/devices/*/*set.c, XXXunsetup(), sort CKTdltNNum() invocations
Invoke CKTdltNNum() in reverse order of local node creation in XXXsetup() This fixes a bug at least in mesa and hfet1, where already destroyed node variables have still been accessed in the guarding 'if' of a later CKTdltNNum() stanza. Invoking them in revers order easily prevents such bugs, and improves readability.
This commit is contained in:
parent
7afb798a6f
commit
0c86adf9af
|
|
@ -481,11 +481,11 @@ BJTunsetup(
|
|||
for (here = model->BJTinstances; here != NULL;
|
||||
here=here->BJTnextInstance)
|
||||
{
|
||||
if (here->BJTcolPrimeNode
|
||||
&& here->BJTcolPrimeNode != here->BJTcolNode)
|
||||
if (here->BJTemitPrimeNode
|
||||
&& here->BJTemitPrimeNode != here->BJTemitNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BJTcolPrimeNode);
|
||||
here->BJTcolPrimeNode = 0;
|
||||
CKTdltNNum(ckt, here->BJTemitPrimeNode);
|
||||
here->BJTemitPrimeNode = 0;
|
||||
}
|
||||
if (here->BJTbasePrimeNode
|
||||
&& here->BJTbasePrimeNode != here->BJTbaseNode)
|
||||
|
|
@ -493,11 +493,11 @@ BJTunsetup(
|
|||
CKTdltNNum(ckt, here->BJTbasePrimeNode);
|
||||
here->BJTbasePrimeNode = 0;
|
||||
}
|
||||
if (here->BJTemitPrimeNode
|
||||
&& here->BJTemitPrimeNode != here->BJTemitNode)
|
||||
if (here->BJTcolPrimeNode
|
||||
&& here->BJTcolPrimeNode != here->BJTcolNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BJTemitPrimeNode);
|
||||
here->BJTemitPrimeNode = 0;
|
||||
CKTdltNNum(ckt, here->BJTcolPrimeNode);
|
||||
here->BJTcolPrimeNode = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -412,18 +412,18 @@ B1unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->B1instances; here != NULL;
|
||||
here=here->B1nextInstance)
|
||||
{
|
||||
if (here->B1dNodePrime
|
||||
&& here->B1dNodePrime != here->B1dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B1dNodePrime);
|
||||
here->B1dNodePrime = 0;
|
||||
}
|
||||
if (here->B1sNodePrime
|
||||
&& here->B1sNodePrime != here->B1sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B1sNodePrime);
|
||||
here->B1sNodePrime = 0;
|
||||
}
|
||||
if (here->B1dNodePrime
|
||||
&& here->B1dNodePrime != here->B1dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B1dNodePrime);
|
||||
here->B1dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -581,18 +581,18 @@ B2unsetup(
|
|||
for (here = model->B2instances; here != NULL;
|
||||
here=here->B2nextInstance)
|
||||
{
|
||||
if (here->B2dNodePrime
|
||||
&& here->B2dNodePrime != here->B2dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B2dNodePrime);
|
||||
here->B2dNodePrime = 0;
|
||||
}
|
||||
if (here->B2sNodePrime
|
||||
&& here->B2sNodePrime != here->B2sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B2sNodePrime);
|
||||
here->B2sNodePrime = 0;
|
||||
}
|
||||
if (here->B2dNodePrime
|
||||
&& here->B2dNodePrime != here->B2dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B2dNodePrime);
|
||||
here->B2dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -1144,18 +1144,18 @@ BSIM3unsetup(
|
|||
for (here = model->BSIM3instances; here != NULL;
|
||||
here=here->BSIM3nextInstance)
|
||||
{
|
||||
if (here->BSIM3dNodePrime
|
||||
&& here->BSIM3dNodePrime != here->BSIM3dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3dNodePrime);
|
||||
here->BSIM3dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3sNodePrime
|
||||
&& here->BSIM3sNodePrime != here->BSIM3sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3sNodePrime);
|
||||
here->BSIM3sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3dNodePrime
|
||||
&& here->BSIM3dNodePrime != here->BSIM3dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3dNodePrime);
|
||||
here->BSIM3dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -1357,18 +1357,18 @@ B3SOIDDunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->B3SOIDDinstances; here != NULL;
|
||||
here=here->B3SOIDDnextInstance)
|
||||
{
|
||||
if (here->B3SOIDDdNodePrime
|
||||
&& here->B3SOIDDdNodePrime != here->B3SOIDDdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIDDdNodePrime);
|
||||
here->B3SOIDDdNodePrime = 0;
|
||||
}
|
||||
if (here->B3SOIDDsNodePrime
|
||||
&& here->B3SOIDDsNodePrime != here->B3SOIDDsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIDDsNodePrime);
|
||||
here->B3SOIDDsNodePrime = 0;
|
||||
}
|
||||
if (here->B3SOIDDdNodePrime
|
||||
&& here->B3SOIDDdNodePrime != here->B3SOIDDdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIDDdNodePrime);
|
||||
here->B3SOIDDdNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -1346,18 +1346,18 @@ B3SOIFDunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->B3SOIFDinstances; here != NULL;
|
||||
here=here->B3SOIFDnextInstance)
|
||||
{
|
||||
if (here->B3SOIFDdNodePrime
|
||||
&& here->B3SOIFDdNodePrime != here->B3SOIFDdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIFDdNodePrime);
|
||||
here->B3SOIFDdNodePrime = 0;
|
||||
}
|
||||
if (here->B3SOIFDsNodePrime
|
||||
&& here->B3SOIFDsNodePrime != here->B3SOIFDsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIFDsNodePrime);
|
||||
here->B3SOIFDsNodePrime = 0;
|
||||
}
|
||||
if (here->B3SOIFDdNodePrime
|
||||
&& here->B3SOIFDdNodePrime != here->B3SOIFDdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIFDdNodePrime);
|
||||
here->B3SOIFDdNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -1461,18 +1461,18 @@ B3SOIPDunsetup(
|
|||
for (here = model->B3SOIPDinstances; here != NULL;
|
||||
here=here->B3SOIPDnextInstance)
|
||||
{
|
||||
if (here->B3SOIPDdNodePrime
|
||||
&& here->B3SOIPDdNodePrime != here->B3SOIPDdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIPDdNodePrime);
|
||||
here->B3SOIPDdNodePrime = 0;
|
||||
}
|
||||
if (here->B3SOIPDsNodePrime
|
||||
&& here->B3SOIPDsNodePrime != here->B3SOIPDsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIPDsNodePrime);
|
||||
here->B3SOIPDsNodePrime = 0;
|
||||
}
|
||||
if (here->B3SOIPDdNodePrime
|
||||
&& here->B3SOIPDdNodePrime != here->B3SOIPDdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B3SOIPDdNodePrime);
|
||||
here->B3SOIPDdNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -904,18 +904,18 @@ BSIM3v0unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->BSIM3v0instances; here != NULL;
|
||||
here=here->BSIM3v0nextInstance)
|
||||
{
|
||||
if (here->BSIM3v0dNodePrime
|
||||
&& here->BSIM3v0dNodePrime != here->BSIM3v0dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v0dNodePrime);
|
||||
here->BSIM3v0dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3v0sNodePrime
|
||||
&& here->BSIM3v0sNodePrime != here->BSIM3v0sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v0sNodePrime);
|
||||
here->BSIM3v0sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3v0dNodePrime
|
||||
&& here->BSIM3v0dNodePrime != here->BSIM3v0dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v0dNodePrime);
|
||||
here->BSIM3v0dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -964,18 +964,18 @@ BSIM3v1unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->BSIM3v1instances; here != NULL;
|
||||
here=here->BSIM3v1nextInstance)
|
||||
{
|
||||
if (here->BSIM3v1dNodePrime
|
||||
&& here->BSIM3v1dNodePrime != here->BSIM3v1dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v1dNodePrime);
|
||||
here->BSIM3v1dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3v1sNodePrime
|
||||
&& here->BSIM3v1sNodePrime != here->BSIM3v1sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v1sNodePrime);
|
||||
here->BSIM3v1sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3v1dNodePrime
|
||||
&& here->BSIM3v1dNodePrime != here->BSIM3v1dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v1dNodePrime);
|
||||
here->BSIM3v1dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -1156,18 +1156,18 @@ BSIM3v32unsetup(
|
|||
for (here = model->BSIM3v32instances; here != NULL;
|
||||
here=here->BSIM3v32nextInstance)
|
||||
{
|
||||
if (here->BSIM3v32dNodePrime
|
||||
&& here->BSIM3v32dNodePrime != here->BSIM3v32dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v32dNodePrime);
|
||||
here->BSIM3v32dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3v32sNodePrime
|
||||
&& here->BSIM3v32sNodePrime != here->BSIM3v32sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v32sNodePrime);
|
||||
here->BSIM3v32sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM3v32dNodePrime
|
||||
&& here->BSIM3v32dNodePrime != here->BSIM3v32dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM3v32dNodePrime);
|
||||
here->BSIM3v32dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -2765,18 +2765,18 @@ CKTcircuit *ckt)
|
|||
for (here = model->BSIM4instances; here != NULL;
|
||||
here=here->BSIM4nextInstance)
|
||||
{
|
||||
if (here->BSIM4dNodePrime
|
||||
&& here->BSIM4dNodePrime != here->BSIM4dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4dNodePrime);
|
||||
here->BSIM4dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4sNodePrime
|
||||
&& here->BSIM4sNodePrime != here->BSIM4sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4sNodePrime);
|
||||
here->BSIM4sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4dNodePrime
|
||||
&& here->BSIM4dNodePrime != here->BSIM4dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4dNodePrime);
|
||||
here->BSIM4dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2143,18 +2143,18 @@ BSIM4v5unsetup(
|
|||
for (here = model->BSIM4v5instances; here != NULL;
|
||||
here=here->BSIM4v5nextInstance)
|
||||
{
|
||||
if (here->BSIM4v5dNodePrime
|
||||
&& here->BSIM4v5dNodePrime != here->BSIM4v5dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v5dNodePrime);
|
||||
here->BSIM4v5dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4v5sNodePrime
|
||||
&& here->BSIM4v5sNodePrime != here->BSIM4v5sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v5sNodePrime);
|
||||
here->BSIM4v5sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4v5dNodePrime
|
||||
&& here->BSIM4v5dNodePrime != here->BSIM4v5dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v5dNodePrime);
|
||||
here->BSIM4v5dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2476,18 +2476,18 @@ BSIM4v6unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->BSIM4v6instances; here != NULL;
|
||||
here=here->BSIM4v6nextInstance)
|
||||
{
|
||||
if (here->BSIM4v6dNodePrime
|
||||
&& here->BSIM4v6dNodePrime != here->BSIM4v6dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v6dNodePrime);
|
||||
here->BSIM4v6dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4v6sNodePrime
|
||||
&& here->BSIM4v6sNodePrime != here->BSIM4v6sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v6sNodePrime);
|
||||
here->BSIM4v6sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4v6dNodePrime
|
||||
&& here->BSIM4v6dNodePrime != here->BSIM4v6dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v6dNodePrime);
|
||||
here->BSIM4v6dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2633,18 +2633,18 @@ CKTcircuit *ckt)
|
|||
for (here = model->BSIM4v7instances; here != NULL;
|
||||
here=here->BSIM4v7nextInstance)
|
||||
{
|
||||
if (here->BSIM4v7dNodePrime
|
||||
&& here->BSIM4v7dNodePrime != here->BSIM4v7dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v7dNodePrime);
|
||||
here->BSIM4v7dNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4v7sNodePrime
|
||||
&& here->BSIM4v7sNodePrime != here->BSIM4v7sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v7sNodePrime);
|
||||
here->BSIM4v7sNodePrime = 0;
|
||||
}
|
||||
if (here->BSIM4v7dNodePrime
|
||||
&& here->BSIM4v7dNodePrime != here->BSIM4v7dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->BSIM4v7dNodePrime);
|
||||
here->BSIM4v7dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2766,18 +2766,18 @@ B4SOIunsetup(
|
|||
for (here = model->B4SOIinstances; here != NULL;
|
||||
here=here->B4SOInextInstance)
|
||||
{
|
||||
if (here->B4SOIdNodePrime
|
||||
&& here->B4SOIdNodePrime != here->B4SOIdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIdNodePrime);
|
||||
here->B4SOIdNodePrime = 0;
|
||||
}
|
||||
if (here->B4SOIsNodePrime
|
||||
&& here->B4SOIsNodePrime != here->B4SOIsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIsNodePrime);
|
||||
here->B4SOIsNodePrime = 0;
|
||||
}
|
||||
if (here->B4SOIdNodePrime
|
||||
&& here->B4SOIdNodePrime != here->B4SOIdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->B4SOIdNodePrime);
|
||||
here->B4SOIdNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -324,16 +324,16 @@ CPLunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
|
||||
for (m = 0; m < noL; m++) {
|
||||
if (here->CPLibr1[m]) {
|
||||
CKTdltNNum(ckt, here->CPLibr1[m]);
|
||||
here->CPLibr1[m] = 0;
|
||||
if (here->CPLibr2[m]) {
|
||||
CKTdltNNum(ckt, here->CPLibr2[m]);
|
||||
here->CPLibr2[m] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (m = 0; m < noL; m++) {
|
||||
if (here->CPLibr2[m]) {
|
||||
CKTdltNNum(ckt, here->CPLibr2[m]);
|
||||
here->CPLibr2[m] = 0;
|
||||
if (here->CPLibr1[m]) {
|
||||
CKTdltNNum(ckt, here->CPLibr1[m]);
|
||||
here->CPLibr1[m] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -412,6 +412,25 @@ HFETAunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->HFETAinstances; here != NULL;
|
||||
here=here->HFETAnextInstance)
|
||||
{
|
||||
if (here->HFETAsourcePrmPrmNode
|
||||
&& here->HFETAsourcePrmPrmNode != here->HFETAsourcePrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HFETAsourcePrmPrmNode);
|
||||
here->HFETAsourcePrmPrmNode = 0;
|
||||
}
|
||||
if (here->HFETAdrainPrmPrmNode
|
||||
&& here->HFETAdrainPrmPrmNode != here->HFETAdrainPrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HFETAdrainPrmPrmNode);
|
||||
here->HFETAdrainPrmPrmNode = 0;
|
||||
}
|
||||
if (here->HFETAgatePrimeNode
|
||||
&& here->HFETAgatePrimeNode != here->HFETAgateNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HFETAgatePrimeNode);
|
||||
here->HFETAgatePrimeNode = 0;
|
||||
}
|
||||
|
||||
if (here->HFETAdrainPrimeNode
|
||||
&& here->HFETAdrainPrimeNode != here->HFETAdrainNode)
|
||||
{
|
||||
|
|
@ -424,25 +443,6 @@ HFETAunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
CKTdltNNum(ckt, here->HFETAsourcePrimeNode);
|
||||
here->HFETAsourcePrimeNode = 0;
|
||||
}
|
||||
if (here->HFETAgatePrimeNode
|
||||
&& here->HFETAgatePrimeNode != here->HFETAgateNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HFETAgatePrimeNode);
|
||||
here->HFETAgatePrimeNode = 0;
|
||||
}
|
||||
|
||||
if (here->HFETAdrainPrmPrmNode
|
||||
&& here->HFETAdrainPrmPrmNode != here->HFETAdrainPrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HFETAdrainPrmPrmNode);
|
||||
here->HFETAdrainPrmPrmNode = 0;
|
||||
}
|
||||
if (here->HFETAsourcePrmPrmNode
|
||||
&& here->HFETAsourcePrmPrmNode != here->HFETAsourcePrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HFETAsourcePrmPrmNode);
|
||||
here->HFETAsourcePrmPrmNode = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1312,23 +1312,11 @@ HSM2unsetup(
|
|||
for (here = model->HSM2instances; here != NULL;
|
||||
here=here->HSM2nextInstance)
|
||||
{
|
||||
if (here->HSM2dNodePrime
|
||||
&& here->HSM2dNodePrime != here->HSM2dNode)
|
||||
if (here->HSM2sbNode
|
||||
&& here->HSM2sbNode != here->HSM2bNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSM2dNodePrime);
|
||||
here->HSM2dNodePrime = 0;
|
||||
}
|
||||
if (here->HSM2sNodePrime
|
||||
&& here->HSM2sNodePrime != here->HSM2sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSM2sNodePrime);
|
||||
here->HSM2sNodePrime = 0;
|
||||
}
|
||||
if (here->HSM2gNodePrime
|
||||
&& here->HSM2gNodePrime != here->HSM2gNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSM2gNodePrime);
|
||||
here->HSM2gNodePrime = 0;
|
||||
CKTdltNNum(ckt, here->HSM2sbNode);
|
||||
here->HSM2sbNode = 0;
|
||||
}
|
||||
if (here->HSM2bNodePrime
|
||||
&& here->HSM2bNodePrime != here->HSM2bNode)
|
||||
|
|
@ -1342,11 +1330,23 @@ HSM2unsetup(
|
|||
CKTdltNNum(ckt, here->HSM2dbNode);
|
||||
here->HSM2dbNode = 0;
|
||||
}
|
||||
if (here->HSM2sbNode
|
||||
&& here->HSM2sbNode != here->HSM2bNode)
|
||||
if (here->HSM2gNodePrime
|
||||
&& here->HSM2gNodePrime != here->HSM2gNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSM2sbNode);
|
||||
here->HSM2sbNode = 0;
|
||||
CKTdltNNum(ckt, here->HSM2gNodePrime);
|
||||
here->HSM2gNodePrime = 0;
|
||||
}
|
||||
if (here->HSM2sNodePrime
|
||||
&& here->HSM2sNodePrime != here->HSM2sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSM2sNodePrime);
|
||||
here->HSM2sNodePrime = 0;
|
||||
}
|
||||
if (here->HSM2dNodePrime
|
||||
&& here->HSM2dNodePrime != here->HSM2dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSM2dNodePrime);
|
||||
here->HSM2dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1473,23 +1473,11 @@ HSMHVunsetup(
|
|||
for (here = model->HSMHVinstances; here != NULL;
|
||||
here=here->HSMHVnextInstance)
|
||||
{
|
||||
if (here->HSMHVdNodePrime
|
||||
&& here->HSMHVdNodePrime != here->HSMHVdNode)
|
||||
if (here->HSMHVsbNode
|
||||
&& here->HSMHVsbNode != here->HSMHVbNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVdNodePrime);
|
||||
here->HSMHVdNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHVsNodePrime
|
||||
&& here->HSMHVsNodePrime != here->HSMHVsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVsNodePrime);
|
||||
here->HSMHVsNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHVgNodePrime
|
||||
&& here->HSMHVgNodePrime != here->HSMHVgNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVgNodePrime);
|
||||
here->HSMHVgNodePrime = 0;
|
||||
CKTdltNNum(ckt, here->HSMHVsbNode);
|
||||
here->HSMHVsbNode = 0;
|
||||
}
|
||||
if (here->HSMHVbNodePrime
|
||||
&& here->HSMHVbNodePrime != here->HSMHVbNode)
|
||||
|
|
@ -1503,11 +1491,23 @@ HSMHVunsetup(
|
|||
CKTdltNNum(ckt, here->HSMHVdbNode);
|
||||
here->HSMHVdbNode = 0;
|
||||
}
|
||||
if (here->HSMHVsbNode
|
||||
&& here->HSMHVsbNode != here->HSMHVbNode)
|
||||
if (here->HSMHVgNodePrime
|
||||
&& here->HSMHVgNodePrime != here->HSMHVgNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVsbNode);
|
||||
here->HSMHVsbNode = 0;
|
||||
CKTdltNNum(ckt, here->HSMHVgNodePrime);
|
||||
here->HSMHVgNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHVsNodePrime
|
||||
&& here->HSMHVsNodePrime != here->HSMHVsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVsNodePrime);
|
||||
here->HSMHVsNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHVdNodePrime
|
||||
&& here->HSMHVdNodePrime != here->HSMHVdNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHVdNodePrime);
|
||||
here->HSMHVdNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1741,23 +1741,11 @@ HSMHV2unsetup(
|
|||
for (here = model->HSMHV2instances; here != NULL;
|
||||
here=here->HSMHV2nextInstance)
|
||||
{
|
||||
if (here->HSMHV2dNodePrime
|
||||
&& here->HSMHV2dNodePrime != here->HSMHV2dNode)
|
||||
if (here->HSMHV2sbNode
|
||||
&& here->HSMHV2sbNode != here->HSMHV2bNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2dNodePrime);
|
||||
here->HSMHV2dNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHV2sNodePrime
|
||||
&& here->HSMHV2sNodePrime != here->HSMHV2sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2sNodePrime);
|
||||
here->HSMHV2sNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHV2gNodePrime
|
||||
&& here->HSMHV2gNodePrime != here->HSMHV2gNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2gNodePrime);
|
||||
here->HSMHV2gNodePrime = 0;
|
||||
CKTdltNNum(ckt, here->HSMHV2sbNode);
|
||||
here->HSMHV2sbNode = 0;
|
||||
}
|
||||
if (here->HSMHV2bNodePrime
|
||||
&& here->HSMHV2bNodePrime != here->HSMHV2bNode)
|
||||
|
|
@ -1771,11 +1759,23 @@ HSMHV2unsetup(
|
|||
CKTdltNNum(ckt, here->HSMHV2dbNode);
|
||||
here->HSMHV2dbNode = 0;
|
||||
}
|
||||
if (here->HSMHV2sbNode
|
||||
&& here->HSMHV2sbNode != here->HSMHV2bNode)
|
||||
if (here->HSMHV2gNodePrime
|
||||
&& here->HSMHV2gNodePrime != here->HSMHV2gNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2sbNode);
|
||||
here->HSMHV2sbNode = 0;
|
||||
CKTdltNNum(ckt, here->HSMHV2gNodePrime);
|
||||
here->HSMHV2gNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHV2sNodePrime
|
||||
&& here->HSMHV2sNodePrime != here->HSMHV2sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2sNodePrime);
|
||||
here->HSMHV2sNodePrime = 0;
|
||||
}
|
||||
if (here->HSMHV2dNodePrime
|
||||
&& here->HSMHV2dNodePrime != here->HSMHV2dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->HSMHV2dNodePrime);
|
||||
here->HSMHV2dNodePrime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,18 +195,18 @@ JFETunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->JFETinstances; here != NULL;
|
||||
here=here->JFETnextInstance)
|
||||
{
|
||||
if (here->JFETsourcePrimeNode
|
||||
&& here->JFETsourcePrimeNode != here->JFETsourceNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->JFETsourcePrimeNode);
|
||||
here->JFETsourcePrimeNode = 0;
|
||||
}
|
||||
if (here->JFETdrainPrimeNode
|
||||
&& here->JFETdrainPrimeNode != here->JFETdrainNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->JFETdrainPrimeNode);
|
||||
here->JFETdrainPrimeNode = 0;
|
||||
}
|
||||
if (here->JFETsourcePrimeNode
|
||||
&& here->JFETsourcePrimeNode != here->JFETsourceNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->JFETsourcePrimeNode);
|
||||
here->JFETsourcePrimeNode = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -135,18 +135,18 @@ JFET2unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->JFET2instances; here != NULL;
|
||||
here=here->JFET2nextInstance)
|
||||
{
|
||||
if (here->JFET2sourcePrimeNode
|
||||
&& here->JFET2sourcePrimeNode != here->JFET2sourceNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->JFET2sourcePrimeNode);
|
||||
here->JFET2sourcePrimeNode = 0;
|
||||
}
|
||||
if (here->JFET2drainPrimeNode
|
||||
&& here->JFET2drainPrimeNode != here->JFET2drainNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->JFET2drainPrimeNode);
|
||||
here->JFET2drainPrimeNode = 0;
|
||||
}
|
||||
if (here->JFET2sourcePrimeNode
|
||||
&& here->JFET2sourcePrimeNode != here->JFET2sourceNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->JFET2sourcePrimeNode);
|
||||
here->JFET2sourcePrimeNode = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -229,14 +229,14 @@ LTRAunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
model = model->LTRAnextModel) {
|
||||
for (here = model->LTRAinstances; here != NULL;
|
||||
here = here->LTRAnextInstance) {
|
||||
if (here->LTRAbrEq1) {
|
||||
CKTdltNNum(ckt, here->LTRAbrEq1);
|
||||
here->LTRAbrEq1 = 0;
|
||||
}
|
||||
if (here->LTRAbrEq2) {
|
||||
CKTdltNNum(ckt, here->LTRAbrEq2);
|
||||
here->LTRAbrEq2 = 0;
|
||||
}
|
||||
if (here->LTRAbrEq1) {
|
||||
CKTdltNNum(ckt, here->LTRAbrEq1);
|
||||
here->LTRAbrEq1 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -168,18 +168,18 @@ MESunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->MESinstances; here != NULL;
|
||||
here=here->MESnextInstance)
|
||||
{
|
||||
if (here->MESsourcePrimeNode
|
||||
&& here->MESsourcePrimeNode != here->MESsourceNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESsourcePrimeNode);
|
||||
here->MESsourcePrimeNode = 0;
|
||||
}
|
||||
if (here->MESdrainPrimeNode
|
||||
&& here->MESdrainPrimeNode != here->MESdrainNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESdrainPrimeNode);
|
||||
here->MESdrainPrimeNode = 0;
|
||||
}
|
||||
if (here->MESsourcePrimeNode
|
||||
&& here->MESsourcePrimeNode != here->MESsourceNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESsourcePrimeNode);
|
||||
here->MESsourcePrimeNode = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -419,6 +419,24 @@ MESAunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->MESAinstances; here != NULL;
|
||||
here=here->MESAnextInstance)
|
||||
{
|
||||
if (here->MESAdrainPrmPrmNode
|
||||
&& here->MESAdrainPrmPrmNode != here->MESAdrainPrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESAdrainPrmPrmNode);
|
||||
here->MESAdrainPrmPrmNode = 0;
|
||||
}
|
||||
if (here->MESAsourcePrmPrmNode
|
||||
&& here->MESAsourcePrmPrmNode != here->MESAsourcePrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESAsourcePrmPrmNode);
|
||||
here->MESAsourcePrmPrmNode = 0;
|
||||
}
|
||||
if (here->MESAgatePrimeNode
|
||||
&& here->MESAgatePrimeNode != here->MESAgateNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESAgatePrimeNode);
|
||||
here->MESAgatePrimeNode = 0;
|
||||
}
|
||||
if (here->MESAdrainPrimeNode
|
||||
&& here->MESAdrainPrimeNode != here->MESAdrainNode)
|
||||
{
|
||||
|
|
@ -431,24 +449,6 @@ MESAunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
CKTdltNNum(ckt, here->MESAsourcePrimeNode);
|
||||
here->MESAsourcePrimeNode = 0;
|
||||
}
|
||||
if (here->MESAgatePrimeNode
|
||||
&& here->MESAgatePrimeNode != here->MESAgateNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESAgatePrimeNode);
|
||||
here->MESAgatePrimeNode = 0;
|
||||
}
|
||||
if (here->MESAsourcePrmPrmNode
|
||||
&& here->MESAsourcePrmPrmNode != here->MESAsourcePrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESAsourcePrmPrmNode);
|
||||
here->MESAsourcePrmPrmNode = 0;
|
||||
}
|
||||
if (here->MESAdrainPrmPrmNode
|
||||
&& here->MESAdrainPrmPrmNode != here->MESAdrainPrimeNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MESAdrainPrmPrmNode);
|
||||
here->MESAdrainPrmPrmNode = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,18 +223,18 @@ MOS1unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->MOS1instances; here != NULL;
|
||||
here=here->MOS1nextInstance)
|
||||
{
|
||||
if (here->MOS1dNodePrime
|
||||
&& here->MOS1dNodePrime != here->MOS1dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS1dNodePrime);
|
||||
here->MOS1dNodePrime= 0;
|
||||
}
|
||||
if (here->MOS1sNodePrime
|
||||
&& here->MOS1sNodePrime != here->MOS1sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS1sNodePrime);
|
||||
here->MOS1sNodePrime= 0;
|
||||
}
|
||||
if (here->MOS1dNodePrime
|
||||
&& here->MOS1dNodePrime != here->MOS1dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS1dNodePrime);
|
||||
here->MOS1dNodePrime= 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -271,18 +271,18 @@ MOS3unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->MOS3instances; here != NULL;
|
||||
here=here->MOS3nextInstance)
|
||||
{
|
||||
if (here->MOS3dNodePrime
|
||||
&& here->MOS3dNodePrime != here->MOS3dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS3dNodePrime);
|
||||
here->MOS3dNodePrime= 0;
|
||||
}
|
||||
if (here->MOS3sNodePrime
|
||||
&& here->MOS3sNodePrime != here->MOS3sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS3sNodePrime);
|
||||
here->MOS3sNodePrime= 0;
|
||||
}
|
||||
if (here->MOS3dNodePrime
|
||||
&& here->MOS3dNodePrime != here->MOS3dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS3dNodePrime);
|
||||
here->MOS3dNodePrime= 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -233,18 +233,18 @@ MOS6unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->MOS6instances; here != NULL;
|
||||
here=here->MOS6nextInstance)
|
||||
{
|
||||
if (here->MOS6dNodePrime
|
||||
&& here->MOS6dNodePrime != here->MOS6dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS6dNodePrime);
|
||||
here->MOS6dNodePrime= 0;
|
||||
}
|
||||
if (here->MOS6sNodePrime
|
||||
&& here->MOS6sNodePrime != here->MOS6sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS6sNodePrime);
|
||||
here->MOS6sNodePrime= 0;
|
||||
}
|
||||
if (here->MOS6dNodePrime
|
||||
&& here->MOS6dNodePrime != here->MOS6dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS6dNodePrime);
|
||||
here->MOS6dNodePrime= 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -271,18 +271,18 @@ MOS9unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->MOS9instances; here != NULL;
|
||||
here=here->MOS9nextInstance)
|
||||
{
|
||||
if (here->MOS9dNodePrime
|
||||
&& here->MOS9dNodePrime != here->MOS9dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS9dNodePrime);
|
||||
here->MOS9dNodePrime= 0;
|
||||
}
|
||||
if (here->MOS9sNodePrime
|
||||
&& here->MOS9sNodePrime != here->MOS9sNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS9sNodePrime);
|
||||
here->MOS9sNodePrime= 0;
|
||||
}
|
||||
if (here->MOS9dNodePrime
|
||||
&& here->MOS9dNodePrime != here->MOS9dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->MOS9dNodePrime);
|
||||
here->MOS9dNodePrime= 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
|
|
@ -674,11 +674,30 @@ SOI3unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->SOI3instances; here != NULL;
|
||||
here=here->SOI3nextInstance)
|
||||
{
|
||||
if (here->SOI3dNodePrime
|
||||
&& here->SOI3dNodePrime != here->SOI3dNode)
|
||||
if (here->SOI3tout4Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3dNodePrime);
|
||||
here->SOI3dNodePrime= 0;
|
||||
CKTdltNNum(ckt, here->SOI3tout4Node);
|
||||
here->SOI3tout4Node = 0;
|
||||
}
|
||||
if (here->SOI3tout3Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3tout3Node);
|
||||
here->SOI3tout3Node = 0;
|
||||
}
|
||||
if (here->SOI3tout2Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3tout2Node);
|
||||
here->SOI3tout2Node = 0;
|
||||
}
|
||||
if (here->SOI3tout1Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3tout1Node);
|
||||
here->SOI3tout1Node = 0;
|
||||
}
|
||||
if (here->SOI3branch)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3branch);
|
||||
here->SOI3branch=0;
|
||||
}
|
||||
if (here->SOI3sNodePrime
|
||||
&& here->SOI3sNodePrime != here->SOI3sNode)
|
||||
|
|
@ -686,30 +705,11 @@ SOI3unsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
CKTdltNNum(ckt, here->SOI3sNodePrime);
|
||||
here->SOI3sNodePrime= 0;
|
||||
}
|
||||
if (here->SOI3branch)
|
||||
if (here->SOI3dNodePrime
|
||||
&& here->SOI3dNodePrime != here->SOI3dNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3branch);
|
||||
here->SOI3branch=0;
|
||||
}
|
||||
if (here->SOI3tout1Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3tout1Node);
|
||||
here->SOI3tout1Node = 0;
|
||||
}
|
||||
if (here->SOI3tout2Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3tout2Node);
|
||||
here->SOI3tout2Node = 0;
|
||||
}
|
||||
if (here->SOI3tout3Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3tout3Node);
|
||||
here->SOI3tout3Node = 0;
|
||||
}
|
||||
if (here->SOI3tout4Node)
|
||||
{
|
||||
CKTdltNNum(ckt, here->SOI3tout4Node);
|
||||
here->SOI3tout4Node = 0;
|
||||
CKTdltNNum(ckt, here->SOI3dNodePrime);
|
||||
here->SOI3dNodePrime= 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,21 +126,21 @@ TRAunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->TRAinstances; here != NULL;
|
||||
here=here->TRAnextInstance)
|
||||
{
|
||||
if (here->TRAbrEq1) {
|
||||
CKTdltNNum(ckt, here->TRAbrEq1);
|
||||
here->TRAbrEq1= 0;
|
||||
}
|
||||
if (here->TRAbrEq2) {
|
||||
CKTdltNNum(ckt, here->TRAbrEq2);
|
||||
here->TRAbrEq2= 0;
|
||||
if (here->TRAintNode2) {
|
||||
CKTdltNNum(ckt, here->TRAintNode2);
|
||||
here->TRAintNode2= 0;
|
||||
}
|
||||
if (here->TRAintNode1) {
|
||||
CKTdltNNum(ckt, here->TRAintNode1);
|
||||
here->TRAintNode1= 0;
|
||||
}
|
||||
if (here->TRAintNode2) {
|
||||
CKTdltNNum(ckt, here->TRAintNode2);
|
||||
here->TRAintNode2= 0;
|
||||
if (here->TRAbrEq2) {
|
||||
CKTdltNNum(ckt, here->TRAbrEq2);
|
||||
here->TRAbrEq2= 0;
|
||||
}
|
||||
if (here->TRAbrEq1) {
|
||||
CKTdltNNum(ckt, here->TRAbrEq1);
|
||||
here->TRAbrEq1= 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -170,16 +170,16 @@ TXLunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = model->TXLinstances; here != NULL;
|
||||
here = here->TXLnextInstance) {
|
||||
|
||||
if (here->TXLibr1) {
|
||||
CKTdltNNum(ckt, here->TXLibr1);
|
||||
here->TXLibr1 = 0;
|
||||
}
|
||||
|
||||
if (here->TXLibr2) {
|
||||
CKTdltNNum(ckt, here->TXLibr2);
|
||||
here->TXLibr2 = 0;
|
||||
}
|
||||
|
||||
if (here->TXLibr1) {
|
||||
CKTdltNNum(ckt, here->TXLibr1);
|
||||
here->TXLibr1 = 0;
|
||||
}
|
||||
|
||||
here->TXLdcGiven=0;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -558,35 +558,6 @@ VBICunsetup(
|
|||
for (here = model->VBICinstances; here != NULL;
|
||||
here=here->VBICnextInstance)
|
||||
{
|
||||
if (here->VBICcollCXNode
|
||||
&& here->VBICcollCXNode != here->VBICcollNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICcollCXNode);
|
||||
here->VBICcollCXNode = 0;
|
||||
}
|
||||
if (here->VBICbaseBXNode
|
||||
&& here->VBICbaseBXNode != here->VBICbaseNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICbaseBXNode);
|
||||
here->VBICbaseBXNode = 0;
|
||||
}
|
||||
if (here->VBICemitEINode
|
||||
&& here->VBICemitEINode != here->VBICemitNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICemitEINode);
|
||||
here->VBICemitEINode = 0;
|
||||
}
|
||||
if (here->VBICsubsSINode
|
||||
&& here->VBICsubsSINode != here->VBICsubsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICsubsSINode);
|
||||
here->VBICsubsSINode = 0;
|
||||
}
|
||||
if (here->VBICcollCINode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICcollCINode);
|
||||
here->VBICcollCINode = 0;
|
||||
}
|
||||
if (here->VBICbaseBINode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICbaseBINode);
|
||||
|
|
@ -597,6 +568,35 @@ VBICunsetup(
|
|||
CKTdltNNum(ckt, here->VBICbaseBPNode);
|
||||
here->VBICbaseBPNode = 0;
|
||||
}
|
||||
if (here->VBICcollCINode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICcollCINode);
|
||||
here->VBICcollCINode = 0;
|
||||
}
|
||||
if (here->VBICsubsSINode
|
||||
&& here->VBICsubsSINode != here->VBICsubsNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICsubsSINode);
|
||||
here->VBICsubsSINode = 0;
|
||||
}
|
||||
if (here->VBICemitEINode
|
||||
&& here->VBICemitEINode != here->VBICemitNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICemitEINode);
|
||||
here->VBICemitEINode = 0;
|
||||
}
|
||||
if (here->VBICbaseBXNode
|
||||
&& here->VBICbaseBXNode != here->VBICbaseNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICbaseBXNode);
|
||||
here->VBICbaseBXNode = 0;
|
||||
}
|
||||
if (here->VBICcollCXNode
|
||||
&& here->VBICcollCXNode != here->VBICcollNode)
|
||||
{
|
||||
CKTdltNNum(ckt, here->VBICcollCXNode);
|
||||
here->VBICcollCXNode = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
|
|
|
|||
Loading…
Reference in New Issue