FIXME, soi stuff, very seriously broken !

This commit is contained in:
rlar 2017-01-07 19:51:41 +01:00
parent fb4343a881
commit b59e2d03b5
10 changed files with 57 additions and 39 deletions

View File

@ -465,14 +465,14 @@ IP( "pmos", B3SOIDD_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *B3SOIDDnames[] = {
"Drain",
"Gate",
"Source",
"Backgate",
"",
"Body",
"Temp",
"Charge",
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Backgate", /* 4 */
"", /* 5 */ /* ouch ! */
"Body", /* 6 */
"Temp", /* 7 */
"Charge", /* 8 */
};
int B3SOIDDnSize = NUMELEMS(B3SOIDDnames);

View File

@ -26,6 +26,7 @@ typedef struct sB3SOIDDinstance
IFuid B3SOIDDname;
int B3SOIDDstates; /* index into state table for this device */
/* GENnode[] { */
int B3SOIDDdNode;
int B3SOIDDgNode;
int B3SOIDDsNode;
@ -33,6 +34,9 @@ typedef struct sB3SOIDDinstance
int B3SOIDDbNode;
int B3SOIDDtempNode;
int B3SOIDDpNode;
// FIXME completely messed up with respect to B3SOIDDnames[] and INP2M
/* } */
int B3SOIDDdNodePrime;
int B3SOIDDsNodePrime;

View File

@ -465,14 +465,14 @@ IP( "pmos", B3SOIFD_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *B3SOIFDnames[] = {
"Drain",
"Gate",
"Source",
"Backgate",
"",
"Body",
"Temp",
"Charge",
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Backgate", /* 4 */
"", /* 5 */ /* ouch ! */
"Body", /* 6 */
"Temp", /* 7 */
"Charge", /* 8 */
};
int B3SOIFDnSize = NUMELEMS(B3SOIFDnames);

View File

@ -26,6 +26,7 @@ typedef struct sB3SOIFDinstance
IFuid B3SOIFDname;
int B3SOIFDstates; /* index into state table for this device */
/* GENnode[] { */
int B3SOIFDdNode;
int B3SOIFDgNode;
int B3SOIFDsNode;
@ -33,6 +34,9 @@ typedef struct sB3SOIFDinstance
int B3SOIFDbNode;
int B3SOIFDtempNode;
int B3SOIFDpNode;
// FIXME completely messed up with respect to B3SOIFDnames[] and INP2M
/* } */
int B3SOIFDdNodePrime;
int B3SOIFDsNodePrime;

View File

@ -568,14 +568,14 @@ IP( "pmos", B3SOIPD_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *B3SOIPDnames[] = {
"Drain",
"Gate",
"Source",
"Backgate",
"",
"Body",
"Temp",
"Charge",
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Backgate", /* 4 */
"", /* 5 */ /* ouch ! */
"Body", /* 6 */
"Temp", /* 7 */
"Charge", /* 8 */
};
int B3SOIPDnSize = NUMELEMS(B3SOIPDnames);

View File

@ -30,6 +30,7 @@ typedef struct sB3SOIPDinstance
IFuid B3SOIPDname;
int B3SOIPDstates; /* index into state table for this device */
/* GENnode[] { */
int B3SOIPDdNode;
int B3SOIPDgNode;
int B3SOIPDsNode;
@ -37,6 +38,9 @@ typedef struct sB3SOIPDinstance
int B3SOIPDpNode;
int B3SOIPDbNode;
int B3SOIPDtempNode;
/* The contract is: B3SOIPDnames, completely disordered ! */
/* } */
int B3SOIPDdNodePrime;
int B3SOIPDsNodePrime;

View File

@ -1116,14 +1116,14 @@ IP( "pmos", B4SOI_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};
char *B4SOInames[] = {
"Drain",
"Gate",
"Source",
"Backgate",
"",
"Body",
"Temp",
"Charge",
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Backgate", /* 4 */
"", /* 5 */ /* ouch ! */
"Body", /* 6 */
"Temp", /* 7 */
"Charge", /* 8 */
};
int B4SOInSize = NUMELEMS(B4SOInames);

View File

@ -31,6 +31,7 @@ typedef struct sB4SOIinstance
IFuid B4SOIname;
int B4SOIstates; /* index into state table for this device */
/* GENnode[] { */
int B4SOIdNode;
int B4SOIgNodeExt; /* v3.1 changed gNode to gNodeExt */
int B4SOIsNode;
@ -38,6 +39,9 @@ typedef struct sB4SOIinstance
int B4SOIpNode;
int B4SOIbNode;
int B4SOItempNode;
// FIXME completely messed up with respect to B4SOInames[] and INP2M
/* } */
int B4SOIdNodePrime;
int B4SOIsNodePrime;
int B4SOIgNode; /* v3.1 */

View File

@ -28,12 +28,12 @@ ngspice integration
char *SOI3names[] = {
"Drain",
"Front Gate",
"Source",
"Back Gate",
"Bulk",
"Thermal"
"Drain", /* 1 */
"Front Gate", /* 2 */
"Source", /* 3 */
"Back Gate", /* 4 */
"Bulk", /* 5 */
"Thermal" /* 6 */
};

View File

@ -43,13 +43,15 @@ typedef struct sSOI3instance {
IFuid SOI3name; /* pointer to character string naming this instance */
int SOI3states; /* index into state table for this device */
/* GENnode[] { */
int SOI3dNode; /* number of the drain node of the mosfet */
int SOI3gfNode; /* number of the front gate node of the mosfet */
int SOI3sNode; /* number of the source node of the mosfet */
int SOI3gbNode; /* number of the back gate node of the mosfet */
int SOI3bNode; /* number of the bulk node of the mosfet */
int SOI3toutNode; /* number of thermal output node (tout) */
// surprise, a SOI with really matching SOI3names[] !
/* } */
int SOI3branch; /* branch number for zero voltage source if no thermal */