FIXME, bsim3 + 4, Charge Node, aka, qNode

if this is really an "external" optional node,
  then this must be moved up in the struct definition to match
  position with the XXNames[] array, and to match usage via GENnode[]

if it is merly an "internal" node, which might be monitored via CKTfindBranch,
  then it should be removed from the XXNames[] array, again to fit usage via GENnode[]
This commit is contained in:
rlar 2017-01-07 19:41:12 +01:00
parent 05188c6ea1
commit fb4343a881
16 changed files with 78 additions and 40 deletions

View File

@ -512,11 +512,11 @@ IP( "pmos", BSIM3_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *BSIM3names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM3nSize = NUMELEMS(BSIM3names);

View File

@ -22,10 +22,15 @@ typedef struct sBSIM3instance
struct sBSIM3instance *BSIM3nextInstance;
IFuid BSIM3name;
int BSIM3states; /* index into state table for this device */
/* GENnode[] { */
int BSIM3dNode;
int BSIM3gNode;
int BSIM3sNode;
int BSIM3bNode;
// FIXME, BSIM3qNode must be moved up to here
/* } */
int BSIM3dNodePrime;
int BSIM3sNodePrime;
int BSIM3qNode; /* MCJ */

View File

@ -416,11 +416,11 @@ IP( "pmos", BSIM3v0_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *BSIM3v0names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM3v0nSize = NUMELEMS(BSIM3v0names);

View File

@ -20,10 +20,14 @@ typedef struct sBSIM3v0instance
IFuid BSIM3v0name;
int BSIM3v0states; /* index into state table for this device */
/* GENnode[] { */
int BSIM3v0dNode;
int BSIM3v0gNode;
int BSIM3v0sNode;
int BSIM3v0bNode;
// FIXME, BSIM3v0qNode must be moved up to here
/* } */
int BSIM3v0dNodePrime;
int BSIM3v0sNodePrime;
int BSIM3v0qNode; /* MCJ */

View File

@ -432,11 +432,11 @@ IOP( "hdif", BSIM3v1_MOD_HDIF, IF_REAL, "S/D junction extension"),
};
char *BSIM3v1names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM3v1nSize = NUMELEMS(BSIM3v1names);

View File

@ -21,10 +21,14 @@ typedef struct sBSIM3v1instance
IFuid BSIM3v1name;
int BSIM3v1states; /* index into state table for this device */
/* GENnode[] { */
int BSIM3v1dNode;
int BSIM3v1gNode;
int BSIM3v1sNode;
int BSIM3v1bNode;
// FIXME, BSIM3v1qNode must be moved up to here
/* } */
int BSIM3v1dNodePrime;
int BSIM3v1sNodePrime;
int BSIM3v1qNode; /* MCJ */

View File

@ -512,11 +512,11 @@ IP( "pmos", BSIM3v32_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *BSIM3v32names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM3v32nSize = NUMELEMS(BSIM3v32names);

View File

@ -22,10 +22,15 @@ typedef struct sBSIM3v32instance
struct sBSIM3v32instance *BSIM3v32nextInstance;
IFuid BSIM3v32name;
int BSIM3v32states; /* index into state table for this device */
/* GENnode[] { */
int BSIM3v32dNode;
int BSIM3v32gNode;
int BSIM3v32sNode;
int BSIM3v32bNode;
// FIXME, BSIM3v32qNode must be moved up to here
/* } */
int BSIM3v32dNodePrime;
int BSIM3v32sNodePrime;
int BSIM3v32qNode; /* MCJ */

View File

@ -1047,11 +1047,11 @@ IP( "pmos", BSIM4_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *BSIM4names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM4nSize = NUMELEMS(BSIM4names);

View File

@ -35,10 +35,15 @@ typedef struct sBSIM4instance
struct sBSIM4instance *BSIM4nextInstance;
IFuid BSIM4name;
int BSIM4states; /* index into state table for this device */
/* GENnode[] { */
int BSIM4dNode;
int BSIM4gNodeExt;
int BSIM4sNode;
int BSIM4bNode;
// FIXME, BSIM4qNode must be moved up to here
/* } */
int BSIM4dNodePrime;
int BSIM4gNodePrime;
int BSIM4gNodeMid;

View File

@ -903,11 +903,11 @@ IP( "pmos", BSIM4v5_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *BSIM4v5names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM4v5nSize = NUMELEMS(BSIM4v5names);

View File

@ -24,10 +24,15 @@ typedef struct sBSIM4v5instance
struct sBSIM4v5instance *BSIM4v5nextInstance;
IFuid BSIM4v5name;
int BSIM4v5states; /* index into state table for this device */
/* GENnode[] { */
int BSIM4v5dNode;
int BSIM4v5gNodeExt;
int BSIM4v5sNode;
int BSIM4v5bNode;
// FIXME, BSIM4v5qNode must be moved up to here
/* } */
int BSIM4v5dNodePrime;
int BSIM4v5gNodePrime;
int BSIM4v5gNodeMid;

View File

@ -987,11 +987,11 @@ IP( "pmos", BSIM4v6_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *BSIM4v6names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM4v6nSize = NUMELEMS(BSIM4v6names);

View File

@ -33,10 +33,15 @@ typedef struct sBSIM4v6instance
struct sBSIM4v6instance *BSIM4v6nextInstance;
IFuid BSIM4v6name;
int BSIM4v6states; /* index into state table for this device */
/* GENnode[] { */
int BSIM4v6dNode;
int BSIM4v6gNodeExt;
int BSIM4v6sNode;
int BSIM4v6bNode;
// FIXME, BSIM4v6qNode must be moved up to here
/* } */
int BSIM4v6dNodePrime;
int BSIM4v6gNodePrime;
int BSIM4v6gNodeMid;

View File

@ -1045,11 +1045,11 @@ IP( "pmos", BSIM4v7_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *BSIM4v7names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Charge"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Charge" /* 5 */
};
int BSIM4v7nSize = NUMELEMS(BSIM4v7names);

View File

@ -34,10 +34,15 @@ typedef struct sBSIM4v7instance
struct sBSIM4v7instance *BSIM4v7nextInstance;
IFuid BSIM4v7name;
int BSIM4v7states; /* index into state table for this device */
/* GENnode[] { */
int BSIM4v7dNode;
int BSIM4v7gNodeExt;
int BSIM4v7sNode;
int BSIM4v7bNode;
// FIXME, BSIM4v7qNode must be moved up to here
/* } */
int BSIM4v7dNodePrime;
int BSIM4v7gNodePrime;
int BSIM4v7gNodeMid;