From 0c86adf9aff319f8810e8fd31638e7c0616f986e Mon Sep 17 00:00:00 2001 From: rlar Date: Sun, 22 Jan 2017 17:59:53 +0100 Subject: [PATCH] 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. --- src/spicelib/devices/bjt/bjtsetup.c | 16 +++---- src/spicelib/devices/bsim1/b1set.c | 12 +++--- src/spicelib/devices/bsim2/b2set.c | 12 +++--- src/spicelib/devices/bsim3/b3set.c | 12 +++--- src/spicelib/devices/bsim3soi_dd/b3soiddset.c | 12 +++--- src/spicelib/devices/bsim3soi_fd/b3soifdset.c | 12 +++--- src/spicelib/devices/bsim3soi_pd/b3soipdset.c | 12 +++--- src/spicelib/devices/bsim3v0/b3v0set.c | 12 +++--- src/spicelib/devices/bsim3v1/b3v1set.c | 12 +++--- src/spicelib/devices/bsim3v32/b3v32set.c | 12 +++--- src/spicelib/devices/bsim4/b4set.c | 12 +++--- src/spicelib/devices/bsim4v5/b4v5set.c | 12 +++--- src/spicelib/devices/bsim4v6/b4v6set.c | 12 +++--- src/spicelib/devices/bsim4v7/b4v7set.c | 12 +++--- src/spicelib/devices/bsimsoi/b4soiset.c | 12 +++--- src/spicelib/devices/cpl/cplsetup.c | 12 +++--- src/spicelib/devices/hfet1/hfetsetup.c | 32 +++++++------- src/spicelib/devices/hisim2/hsm2set.c | 40 +++++++++--------- src/spicelib/devices/hisimhv1/hsmhvset.c | 40 +++++++++--------- src/spicelib/devices/hisimhv2/hsmhv2set.c | 40 +++++++++--------- src/spicelib/devices/jfet/jfetset.c | 12 +++--- src/spicelib/devices/jfet2/jfet2set.c | 12 +++--- src/spicelib/devices/ltra/ltraset.c | 8 ++-- src/spicelib/devices/mes/messetup.c | 12 +++--- src/spicelib/devices/mesa/mesasetup.c | 32 +++++++------- src/spicelib/devices/mos1/mos1set.c | 12 +++--- src/spicelib/devices/mos3/mos3set.c | 12 +++--- src/spicelib/devices/mos6/mos6set.c | 12 +++--- src/spicelib/devices/mos9/mos9set.c | 12 +++--- src/spicelib/devices/soi3/soi3set.c | 40 +++++++++--------- src/spicelib/devices/tra/trasetup.c | 20 ++++----- src/spicelib/devices/txl/txlsetup.c | 10 ++--- src/spicelib/devices/vbic/vbicsetup.c | 42 +++++++++---------- 33 files changed, 292 insertions(+), 292 deletions(-) diff --git a/src/spicelib/devices/bjt/bjtsetup.c b/src/spicelib/devices/bjt/bjtsetup.c index a66ac7399..01f8032a7 100644 --- a/src/spicelib/devices/bjt/bjtsetup.c +++ b/src/spicelib/devices/bjt/bjtsetup.c @@ -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; } } } diff --git a/src/spicelib/devices/bsim1/b1set.c b/src/spicelib/devices/bsim1/b1set.c index 46ae6d5b2..03e9085cf 100644 --- a/src/spicelib/devices/bsim1/b1set.c +++ b/src/spicelib/devices/bsim1/b1set.c @@ -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; diff --git a/src/spicelib/devices/bsim2/b2set.c b/src/spicelib/devices/bsim2/b2set.c index 3c9dec9a3..64f28b778 100644 --- a/src/spicelib/devices/bsim2/b2set.c +++ b/src/spicelib/devices/bsim2/b2set.c @@ -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; diff --git a/src/spicelib/devices/bsim3/b3set.c b/src/spicelib/devices/bsim3/b3set.c index fb15a2574..659dc3819 100644 --- a/src/spicelib/devices/bsim3/b3set.c +++ b/src/spicelib/devices/bsim3/b3set.c @@ -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; diff --git a/src/spicelib/devices/bsim3soi_dd/b3soiddset.c b/src/spicelib/devices/bsim3soi_dd/b3soiddset.c index 3fed81aae..f324c0489 100644 --- a/src/spicelib/devices/bsim3soi_dd/b3soiddset.c +++ b/src/spicelib/devices/bsim3soi_dd/b3soiddset.c @@ -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; diff --git a/src/spicelib/devices/bsim3soi_fd/b3soifdset.c b/src/spicelib/devices/bsim3soi_fd/b3soifdset.c index 242aa1517..ec16f1b6d 100644 --- a/src/spicelib/devices/bsim3soi_fd/b3soifdset.c +++ b/src/spicelib/devices/bsim3soi_fd/b3soifdset.c @@ -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; diff --git a/src/spicelib/devices/bsim3soi_pd/b3soipdset.c b/src/spicelib/devices/bsim3soi_pd/b3soipdset.c index 8a4e3b047..1ed1df006 100644 --- a/src/spicelib/devices/bsim3soi_pd/b3soipdset.c +++ b/src/spicelib/devices/bsim3soi_pd/b3soipdset.c @@ -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; diff --git a/src/spicelib/devices/bsim3v0/b3v0set.c b/src/spicelib/devices/bsim3v0/b3v0set.c index 4243b7456..e67f4aa8b 100644 --- a/src/spicelib/devices/bsim3v0/b3v0set.c +++ b/src/spicelib/devices/bsim3v0/b3v0set.c @@ -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; diff --git a/src/spicelib/devices/bsim3v1/b3v1set.c b/src/spicelib/devices/bsim3v1/b3v1set.c index e3bedcbb9..11881b8a3 100644 --- a/src/spicelib/devices/bsim3v1/b3v1set.c +++ b/src/spicelib/devices/bsim3v1/b3v1set.c @@ -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; diff --git a/src/spicelib/devices/bsim3v32/b3v32set.c b/src/spicelib/devices/bsim3v32/b3v32set.c index 53f787493..ab7addd45 100644 --- a/src/spicelib/devices/bsim3v32/b3v32set.c +++ b/src/spicelib/devices/bsim3v32/b3v32set.c @@ -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; diff --git a/src/spicelib/devices/bsim4/b4set.c b/src/spicelib/devices/bsim4/b4set.c index cc6c04a64..fe0301d5c 100644 --- a/src/spicelib/devices/bsim4/b4set.c +++ b/src/spicelib/devices/bsim4/b4set.c @@ -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 diff --git a/src/spicelib/devices/bsim4v5/b4v5set.c b/src/spicelib/devices/bsim4v5/b4v5set.c index ef891b506..2b39c22e7 100644 --- a/src/spicelib/devices/bsim4v5/b4v5set.c +++ b/src/spicelib/devices/bsim4v5/b4v5set.c @@ -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 diff --git a/src/spicelib/devices/bsim4v6/b4v6set.c b/src/spicelib/devices/bsim4v6/b4v6set.c index 33b6460f2..031ef2e9f 100644 --- a/src/spicelib/devices/bsim4v6/b4v6set.c +++ b/src/spicelib/devices/bsim4v6/b4v6set.c @@ -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 diff --git a/src/spicelib/devices/bsim4v7/b4v7set.c b/src/spicelib/devices/bsim4v7/b4v7set.c index 9c2f560f4..47c5a9cd1 100644 --- a/src/spicelib/devices/bsim4v7/b4v7set.c +++ b/src/spicelib/devices/bsim4v7/b4v7set.c @@ -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 diff --git a/src/spicelib/devices/bsimsoi/b4soiset.c b/src/spicelib/devices/bsimsoi/b4soiset.c index 3cd7e5e9e..c03359b2f 100644 --- a/src/spicelib/devices/bsimsoi/b4soiset.c +++ b/src/spicelib/devices/bsimsoi/b4soiset.c @@ -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 diff --git a/src/spicelib/devices/cpl/cplsetup.c b/src/spicelib/devices/cpl/cplsetup.c index f5411a28a..ac5026aa4 100644 --- a/src/spicelib/devices/cpl/cplsetup.c +++ b/src/spicelib/devices/cpl/cplsetup.c @@ -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; } } diff --git a/src/spicelib/devices/hfet1/hfetsetup.c b/src/spicelib/devices/hfet1/hfetsetup.c index 410ccedfd..ffa735fef 100644 --- a/src/spicelib/devices/hfet1/hfetsetup.c +++ b/src/spicelib/devices/hfet1/hfetsetup.c @@ -412,17 +412,17 @@ HFETAunsetup(GENmodel *inModel, CKTcircuit *ckt) for (here = model->HFETAinstances; here != NULL; here=here->HFETAnextInstance) { - if (here->HFETAdrainPrimeNode - && here->HFETAdrainPrimeNode != here->HFETAdrainNode) + if (here->HFETAsourcePrmPrmNode + && here->HFETAsourcePrmPrmNode != here->HFETAsourcePrimeNode) { - CKTdltNNum(ckt, here->HFETAdrainPrimeNode); - here->HFETAdrainPrimeNode = 0; + CKTdltNNum(ckt, here->HFETAsourcePrmPrmNode); + here->HFETAsourcePrmPrmNode = 0; } - if (here->HFETAsourcePrimeNode - && here->HFETAsourcePrimeNode != here->HFETAsourceNode) + if (here->HFETAdrainPrmPrmNode + && here->HFETAdrainPrmPrmNode != here->HFETAdrainPrimeNode) { - CKTdltNNum(ckt, here->HFETAsourcePrimeNode); - here->HFETAsourcePrimeNode = 0; + CKTdltNNum(ckt, here->HFETAdrainPrmPrmNode); + here->HFETAdrainPrmPrmNode = 0; } if (here->HFETAgatePrimeNode && here->HFETAgatePrimeNode != here->HFETAgateNode) @@ -431,17 +431,17 @@ HFETAunsetup(GENmodel *inModel, CKTcircuit *ckt) here->HFETAgatePrimeNode = 0; } - if (here->HFETAdrainPrmPrmNode - && here->HFETAdrainPrmPrmNode != here->HFETAdrainPrimeNode) + if (here->HFETAdrainPrimeNode + && here->HFETAdrainPrimeNode != here->HFETAdrainNode) { - CKTdltNNum(ckt, here->HFETAdrainPrmPrmNode); - here->HFETAdrainPrmPrmNode = 0; + CKTdltNNum(ckt, here->HFETAdrainPrimeNode); + here->HFETAdrainPrimeNode = 0; } - if (here->HFETAsourcePrmPrmNode - && here->HFETAsourcePrmPrmNode != here->HFETAsourcePrimeNode) + if (here->HFETAsourcePrimeNode + && here->HFETAsourcePrimeNode != here->HFETAsourceNode) { - CKTdltNNum(ckt, here->HFETAsourcePrmPrmNode); - here->HFETAsourcePrmPrmNode = 0; + CKTdltNNum(ckt, here->HFETAsourcePrimeNode); + here->HFETAsourcePrimeNode = 0; } } diff --git a/src/spicelib/devices/hisim2/hsm2set.c b/src/spicelib/devices/hisim2/hsm2set.c index 5aa33bfb7..c20ec99e2 100644 --- a/src/spicelib/devices/hisim2/hsm2set.c +++ b/src/spicelib/devices/hisim2/hsm2set.c @@ -1312,23 +1312,11 @@ HSM2unsetup( for (here = model->HSM2instances; here != NULL; here=here->HSM2nextInstance) { - if (here->HSM2dNodePrime - && here->HSM2dNodePrime != here->HSM2dNode) - { - 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) + if (here->HSM2sbNode + && here->HSM2sbNode != here->HSM2bNode) { - 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; } } } diff --git a/src/spicelib/devices/hisimhv1/hsmhvset.c b/src/spicelib/devices/hisimhv1/hsmhvset.c index 80d84c77c..eb38c82d5 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvset.c +++ b/src/spicelib/devices/hisimhv1/hsmhvset.c @@ -1473,23 +1473,11 @@ HSMHVunsetup( for (here = model->HSMHVinstances; here != NULL; here=here->HSMHVnextInstance) { - if (here->HSMHVdNodePrime - && here->HSMHVdNodePrime != here->HSMHVdNode) - { - 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) + if (here->HSMHVsbNode + && here->HSMHVsbNode != here->HSMHVbNode) { - 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; } } } diff --git a/src/spicelib/devices/hisimhv2/hsmhv2set.c b/src/spicelib/devices/hisimhv2/hsmhv2set.c index aae6cc8b9..6ea613f51 100644 --- a/src/spicelib/devices/hisimhv2/hsmhv2set.c +++ b/src/spicelib/devices/hisimhv2/hsmhv2set.c @@ -1741,23 +1741,11 @@ HSMHV2unsetup( for (here = model->HSMHV2instances; here != NULL; here=here->HSMHV2nextInstance) { - if (here->HSMHV2dNodePrime - && here->HSMHV2dNodePrime != here->HSMHV2dNode) - { - 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) + if (here->HSMHV2sbNode + && here->HSMHV2sbNode != here->HSMHV2bNode) { - 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; } } } diff --git a/src/spicelib/devices/jfet/jfetset.c b/src/spicelib/devices/jfet/jfetset.c index 07ef2a757..40ef04bd5 100644 --- a/src/spicelib/devices/jfet/jfetset.c +++ b/src/spicelib/devices/jfet/jfetset.c @@ -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; diff --git a/src/spicelib/devices/jfet2/jfet2set.c b/src/spicelib/devices/jfet2/jfet2set.c index ece5ef269..d5805aedb 100644 --- a/src/spicelib/devices/jfet2/jfet2set.c +++ b/src/spicelib/devices/jfet2/jfet2set.c @@ -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; diff --git a/src/spicelib/devices/ltra/ltraset.c b/src/spicelib/devices/ltra/ltraset.c index 1fdd10072..847f38c33 100644 --- a/src/spicelib/devices/ltra/ltraset.c +++ b/src/spicelib/devices/ltra/ltraset.c @@ -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; diff --git a/src/spicelib/devices/mes/messetup.c b/src/spicelib/devices/mes/messetup.c index a65449159..56b18d9e6 100644 --- a/src/spicelib/devices/mes/messetup.c +++ b/src/spicelib/devices/mes/messetup.c @@ -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; diff --git a/src/spicelib/devices/mesa/mesasetup.c b/src/spicelib/devices/mesa/mesasetup.c index ed775721c..88176a2ed 100644 --- a/src/spicelib/devices/mesa/mesasetup.c +++ b/src/spicelib/devices/mesa/mesasetup.c @@ -419,17 +419,17 @@ MESAunsetup(GENmodel *inModel, CKTcircuit *ckt) for (here = model->MESAinstances; here != NULL; here=here->MESAnextInstance) { - if (here->MESAdrainPrimeNode - && here->MESAdrainPrimeNode != here->MESAdrainNode) + if (here->MESAdrainPrmPrmNode + && here->MESAdrainPrmPrmNode != here->MESAdrainPrimeNode) { - CKTdltNNum(ckt, here->MESAdrainPrimeNode); - here->MESAdrainPrimeNode = 0; + CKTdltNNum(ckt, here->MESAdrainPrmPrmNode); + here->MESAdrainPrmPrmNode = 0; } - if (here->MESAsourcePrimeNode - && here->MESAsourcePrimeNode != here->MESAsourceNode) + if (here->MESAsourcePrmPrmNode + && here->MESAsourcePrmPrmNode != here->MESAsourcePrimeNode) { - CKTdltNNum(ckt, here->MESAsourcePrimeNode); - here->MESAsourcePrimeNode = 0; + CKTdltNNum(ckt, here->MESAsourcePrmPrmNode); + here->MESAsourcePrmPrmNode = 0; } if (here->MESAgatePrimeNode && here->MESAgatePrimeNode != here->MESAgateNode) @@ -437,17 +437,17 @@ MESAunsetup(GENmodel *inModel, CKTcircuit *ckt) CKTdltNNum(ckt, here->MESAgatePrimeNode); here->MESAgatePrimeNode = 0; } - if (here->MESAsourcePrmPrmNode - && here->MESAsourcePrmPrmNode != here->MESAsourcePrimeNode) + if (here->MESAdrainPrimeNode + && here->MESAdrainPrimeNode != here->MESAdrainNode) { - CKTdltNNum(ckt, here->MESAsourcePrmPrmNode); - here->MESAsourcePrmPrmNode = 0; + CKTdltNNum(ckt, here->MESAdrainPrimeNode); + here->MESAdrainPrimeNode = 0; } - if (here->MESAdrainPrmPrmNode - && here->MESAdrainPrmPrmNode != here->MESAdrainPrimeNode) + if (here->MESAsourcePrimeNode + && here->MESAsourcePrimeNode != here->MESAsourceNode) { - CKTdltNNum(ckt, here->MESAdrainPrmPrmNode); - here->MESAdrainPrmPrmNode = 0; + CKTdltNNum(ckt, here->MESAsourcePrimeNode); + here->MESAsourcePrimeNode = 0; } } diff --git a/src/spicelib/devices/mos1/mos1set.c b/src/spicelib/devices/mos1/mos1set.c index 521ff3fbf..2dacbcfa0 100644 --- a/src/spicelib/devices/mos1/mos1set.c +++ b/src/spicelib/devices/mos1/mos1set.c @@ -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; diff --git a/src/spicelib/devices/mos3/mos3set.c b/src/spicelib/devices/mos3/mos3set.c index 5ff4ca879..ee646f63d 100644 --- a/src/spicelib/devices/mos3/mos3set.c +++ b/src/spicelib/devices/mos3/mos3set.c @@ -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; diff --git a/src/spicelib/devices/mos6/mos6set.c b/src/spicelib/devices/mos6/mos6set.c index 8a1cd3d80..2daad6b5a 100644 --- a/src/spicelib/devices/mos6/mos6set.c +++ b/src/spicelib/devices/mos6/mos6set.c @@ -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; diff --git a/src/spicelib/devices/mos9/mos9set.c b/src/spicelib/devices/mos9/mos9set.c index b32c91b2a..51c1f67fc 100644 --- a/src/spicelib/devices/mos9/mos9set.c +++ b/src/spicelib/devices/mos9/mos9set.c @@ -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; diff --git a/src/spicelib/devices/soi3/soi3set.c b/src/spicelib/devices/soi3/soi3set.c index 32ba53a2b..e1a4abc96 100644 --- a/src/spicelib/devices/soi3/soi3set.c +++ b/src/spicelib/devices/soi3/soi3set.c @@ -674,42 +674,42 @@ 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->SOI3sNodePrime - && here->SOI3sNodePrime != here->SOI3sNode) + if (here->SOI3tout3Node) { - CKTdltNNum(ckt, here->SOI3sNodePrime); - here->SOI3sNodePrime= 0; + CKTdltNNum(ckt, here->SOI3tout3Node); + here->SOI3tout3Node = 0; } - if (here->SOI3branch) + if (here->SOI3tout2Node) { - CKTdltNNum(ckt, here->SOI3branch); - here->SOI3branch=0; + CKTdltNNum(ckt, here->SOI3tout2Node); + here->SOI3tout2Node = 0; } if (here->SOI3tout1Node) { CKTdltNNum(ckt, here->SOI3tout1Node); here->SOI3tout1Node = 0; } - if (here->SOI3tout2Node) + if (here->SOI3branch) { - CKTdltNNum(ckt, here->SOI3tout2Node); - here->SOI3tout2Node = 0; + CKTdltNNum(ckt, here->SOI3branch); + here->SOI3branch=0; } - if (here->SOI3tout3Node) + if (here->SOI3sNodePrime + && here->SOI3sNodePrime != here->SOI3sNode) { - CKTdltNNum(ckt, here->SOI3tout3Node); - here->SOI3tout3Node = 0; + CKTdltNNum(ckt, here->SOI3sNodePrime); + here->SOI3sNodePrime= 0; } - if (here->SOI3tout4Node) + if (here->SOI3dNodePrime + && here->SOI3dNodePrime != here->SOI3dNode) { - CKTdltNNum(ckt, here->SOI3tout4Node); - here->SOI3tout4Node = 0; + CKTdltNNum(ckt, here->SOI3dNodePrime); + here->SOI3dNodePrime= 0; } } } diff --git a/src/spicelib/devices/tra/trasetup.c b/src/spicelib/devices/tra/trasetup.c index eab1eb6f1..df6abd7fb 100644 --- a/src/spicelib/devices/tra/trasetup.c +++ b/src/spicelib/devices/tra/trasetup.c @@ -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; } } } diff --git a/src/spicelib/devices/txl/txlsetup.c b/src/spicelib/devices/txl/txlsetup.c index c60a7b305..0eea24240 100644 --- a/src/spicelib/devices/txl/txlsetup.c +++ b/src/spicelib/devices/txl/txlsetup.c @@ -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; } diff --git a/src/spicelib/devices/vbic/vbicsetup.c b/src/spicelib/devices/vbic/vbicsetup.c index d5171bf75..f5f351ece 100644 --- a/src/spicelib/devices/vbic/vbicsetup.c +++ b/src/spicelib/devices/vbic/vbicsetup.c @@ -558,23 +558,20 @@ VBICunsetup( for (here = model->VBICinstances; here != NULL; here=here->VBICnextInstance) { - if (here->VBICcollCXNode - && here->VBICcollCXNode != here->VBICcollNode) + if (here->VBICbaseBINode) { - CKTdltNNum(ckt, here->VBICcollCXNode); - here->VBICcollCXNode = 0; + CKTdltNNum(ckt, here->VBICbaseBINode); + here->VBICbaseBINode = 0; } - if (here->VBICbaseBXNode - && here->VBICbaseBXNode != here->VBICbaseNode) + if (here->VBICbaseBPNode) { - CKTdltNNum(ckt, here->VBICbaseBXNode); - here->VBICbaseBXNode = 0; + CKTdltNNum(ckt, here->VBICbaseBPNode); + here->VBICbaseBPNode = 0; } - if (here->VBICemitEINode - && here->VBICemitEINode != here->VBICemitNode) + if (here->VBICcollCINode) { - CKTdltNNum(ckt, here->VBICemitEINode); - here->VBICemitEINode = 0; + CKTdltNNum(ckt, here->VBICcollCINode); + here->VBICcollCINode = 0; } if (here->VBICsubsSINode && here->VBICsubsSINode != here->VBICsubsNode) @@ -582,20 +579,23 @@ VBICunsetup( CKTdltNNum(ckt, here->VBICsubsSINode); here->VBICsubsSINode = 0; } - if (here->VBICcollCINode) + if (here->VBICemitEINode + && here->VBICemitEINode != here->VBICemitNode) { - CKTdltNNum(ckt, here->VBICcollCINode); - here->VBICcollCINode = 0; + CKTdltNNum(ckt, here->VBICemitEINode); + here->VBICemitEINode = 0; } - if (here->VBICbaseBINode) + if (here->VBICbaseBXNode + && here->VBICbaseBXNode != here->VBICbaseNode) { - CKTdltNNum(ckt, here->VBICbaseBINode); - here->VBICbaseBINode = 0; + CKTdltNNum(ckt, here->VBICbaseBXNode); + here->VBICbaseBXNode = 0; } - if (here->VBICbaseBPNode) + if (here->VBICcollCXNode + && here->VBICcollCXNode != here->VBICcollNode) { - CKTdltNNum(ckt, here->VBICbaseBPNode); - here->VBICbaseBPNode = 0; + CKTdltNNum(ckt, here->VBICcollCXNode); + here->VBICcollCXNode = 0; } } }