FIXME, soi stuff, very seriously broken !
This commit is contained in:
parent
fb4343a881
commit
b59e2d03b5
|
|
@ -465,14 +465,14 @@ IP( "pmos", B3SOIDD_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
|
||||||
};
|
};
|
||||||
|
|
||||||
char *B3SOIDDnames[] = {
|
char *B3SOIDDnames[] = {
|
||||||
"Drain",
|
"Drain", /* 1 */
|
||||||
"Gate",
|
"Gate", /* 2 */
|
||||||
"Source",
|
"Source", /* 3 */
|
||||||
"Backgate",
|
"Backgate", /* 4 */
|
||||||
"",
|
"", /* 5 */ /* ouch ! */
|
||||||
"Body",
|
"Body", /* 6 */
|
||||||
"Temp",
|
"Temp", /* 7 */
|
||||||
"Charge",
|
"Charge", /* 8 */
|
||||||
};
|
};
|
||||||
|
|
||||||
int B3SOIDDnSize = NUMELEMS(B3SOIDDnames);
|
int B3SOIDDnSize = NUMELEMS(B3SOIDDnames);
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ typedef struct sB3SOIDDinstance
|
||||||
IFuid B3SOIDDname;
|
IFuid B3SOIDDname;
|
||||||
int B3SOIDDstates; /* index into state table for this device */
|
int B3SOIDDstates; /* index into state table for this device */
|
||||||
|
|
||||||
|
/* GENnode[] { */
|
||||||
int B3SOIDDdNode;
|
int B3SOIDDdNode;
|
||||||
int B3SOIDDgNode;
|
int B3SOIDDgNode;
|
||||||
int B3SOIDDsNode;
|
int B3SOIDDsNode;
|
||||||
|
|
@ -33,6 +34,9 @@ typedef struct sB3SOIDDinstance
|
||||||
int B3SOIDDbNode;
|
int B3SOIDDbNode;
|
||||||
int B3SOIDDtempNode;
|
int B3SOIDDtempNode;
|
||||||
int B3SOIDDpNode;
|
int B3SOIDDpNode;
|
||||||
|
// FIXME completely messed up with respect to B3SOIDDnames[] and INP2M
|
||||||
|
/* } */
|
||||||
|
|
||||||
int B3SOIDDdNodePrime;
|
int B3SOIDDdNodePrime;
|
||||||
int B3SOIDDsNodePrime;
|
int B3SOIDDsNodePrime;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -465,14 +465,14 @@ IP( "pmos", B3SOIFD_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
|
||||||
};
|
};
|
||||||
|
|
||||||
char *B3SOIFDnames[] = {
|
char *B3SOIFDnames[] = {
|
||||||
"Drain",
|
"Drain", /* 1 */
|
||||||
"Gate",
|
"Gate", /* 2 */
|
||||||
"Source",
|
"Source", /* 3 */
|
||||||
"Backgate",
|
"Backgate", /* 4 */
|
||||||
"",
|
"", /* 5 */ /* ouch ! */
|
||||||
"Body",
|
"Body", /* 6 */
|
||||||
"Temp",
|
"Temp", /* 7 */
|
||||||
"Charge",
|
"Charge", /* 8 */
|
||||||
};
|
};
|
||||||
|
|
||||||
int B3SOIFDnSize = NUMELEMS(B3SOIFDnames);
|
int B3SOIFDnSize = NUMELEMS(B3SOIFDnames);
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ typedef struct sB3SOIFDinstance
|
||||||
IFuid B3SOIFDname;
|
IFuid B3SOIFDname;
|
||||||
int B3SOIFDstates; /* index into state table for this device */
|
int B3SOIFDstates; /* index into state table for this device */
|
||||||
|
|
||||||
|
/* GENnode[] { */
|
||||||
int B3SOIFDdNode;
|
int B3SOIFDdNode;
|
||||||
int B3SOIFDgNode;
|
int B3SOIFDgNode;
|
||||||
int B3SOIFDsNode;
|
int B3SOIFDsNode;
|
||||||
|
|
@ -33,6 +34,9 @@ typedef struct sB3SOIFDinstance
|
||||||
int B3SOIFDbNode;
|
int B3SOIFDbNode;
|
||||||
int B3SOIFDtempNode;
|
int B3SOIFDtempNode;
|
||||||
int B3SOIFDpNode;
|
int B3SOIFDpNode;
|
||||||
|
// FIXME completely messed up with respect to B3SOIFDnames[] and INP2M
|
||||||
|
/* } */
|
||||||
|
|
||||||
int B3SOIFDdNodePrime;
|
int B3SOIFDdNodePrime;
|
||||||
int B3SOIFDsNodePrime;
|
int B3SOIFDsNodePrime;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -568,14 +568,14 @@ IP( "pmos", B3SOIPD_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
|
||||||
};
|
};
|
||||||
|
|
||||||
char *B3SOIPDnames[] = {
|
char *B3SOIPDnames[] = {
|
||||||
"Drain",
|
"Drain", /* 1 */
|
||||||
"Gate",
|
"Gate", /* 2 */
|
||||||
"Source",
|
"Source", /* 3 */
|
||||||
"Backgate",
|
"Backgate", /* 4 */
|
||||||
"",
|
"", /* 5 */ /* ouch ! */
|
||||||
"Body",
|
"Body", /* 6 */
|
||||||
"Temp",
|
"Temp", /* 7 */
|
||||||
"Charge",
|
"Charge", /* 8 */
|
||||||
};
|
};
|
||||||
|
|
||||||
int B3SOIPDnSize = NUMELEMS(B3SOIPDnames);
|
int B3SOIPDnSize = NUMELEMS(B3SOIPDnames);
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ typedef struct sB3SOIPDinstance
|
||||||
IFuid B3SOIPDname;
|
IFuid B3SOIPDname;
|
||||||
int B3SOIPDstates; /* index into state table for this device */
|
int B3SOIPDstates; /* index into state table for this device */
|
||||||
|
|
||||||
|
/* GENnode[] { */
|
||||||
int B3SOIPDdNode;
|
int B3SOIPDdNode;
|
||||||
int B3SOIPDgNode;
|
int B3SOIPDgNode;
|
||||||
int B3SOIPDsNode;
|
int B3SOIPDsNode;
|
||||||
|
|
@ -37,6 +38,9 @@ typedef struct sB3SOIPDinstance
|
||||||
int B3SOIPDpNode;
|
int B3SOIPDpNode;
|
||||||
int B3SOIPDbNode;
|
int B3SOIPDbNode;
|
||||||
int B3SOIPDtempNode;
|
int B3SOIPDtempNode;
|
||||||
|
/* The contract is: B3SOIPDnames, completely disordered ! */
|
||||||
|
/* } */
|
||||||
|
|
||||||
int B3SOIPDdNodePrime;
|
int B3SOIPDdNodePrime;
|
||||||
int B3SOIPDsNodePrime;
|
int B3SOIPDsNodePrime;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1116,14 +1116,14 @@ IP( "pmos", B4SOI_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
|
||||||
};
|
};
|
||||||
|
|
||||||
char *B4SOInames[] = {
|
char *B4SOInames[] = {
|
||||||
"Drain",
|
"Drain", /* 1 */
|
||||||
"Gate",
|
"Gate", /* 2 */
|
||||||
"Source",
|
"Source", /* 3 */
|
||||||
"Backgate",
|
"Backgate", /* 4 */
|
||||||
"",
|
"", /* 5 */ /* ouch ! */
|
||||||
"Body",
|
"Body", /* 6 */
|
||||||
"Temp",
|
"Temp", /* 7 */
|
||||||
"Charge",
|
"Charge", /* 8 */
|
||||||
};
|
};
|
||||||
|
|
||||||
int B4SOInSize = NUMELEMS(B4SOInames);
|
int B4SOInSize = NUMELEMS(B4SOInames);
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ typedef struct sB4SOIinstance
|
||||||
IFuid B4SOIname;
|
IFuid B4SOIname;
|
||||||
int B4SOIstates; /* index into state table for this device */
|
int B4SOIstates; /* index into state table for this device */
|
||||||
|
|
||||||
|
/* GENnode[] { */
|
||||||
int B4SOIdNode;
|
int B4SOIdNode;
|
||||||
int B4SOIgNodeExt; /* v3.1 changed gNode to gNodeExt */
|
int B4SOIgNodeExt; /* v3.1 changed gNode to gNodeExt */
|
||||||
int B4SOIsNode;
|
int B4SOIsNode;
|
||||||
|
|
@ -38,6 +39,9 @@ typedef struct sB4SOIinstance
|
||||||
int B4SOIpNode;
|
int B4SOIpNode;
|
||||||
int B4SOIbNode;
|
int B4SOIbNode;
|
||||||
int B4SOItempNode;
|
int B4SOItempNode;
|
||||||
|
// FIXME completely messed up with respect to B4SOInames[] and INP2M
|
||||||
|
/* } */
|
||||||
|
|
||||||
int B4SOIdNodePrime;
|
int B4SOIdNodePrime;
|
||||||
int B4SOIsNodePrime;
|
int B4SOIsNodePrime;
|
||||||
int B4SOIgNode; /* v3.1 */
|
int B4SOIgNode; /* v3.1 */
|
||||||
|
|
|
||||||
|
|
@ -28,12 +28,12 @@ ngspice integration
|
||||||
|
|
||||||
|
|
||||||
char *SOI3names[] = {
|
char *SOI3names[] = {
|
||||||
"Drain",
|
"Drain", /* 1 */
|
||||||
"Front Gate",
|
"Front Gate", /* 2 */
|
||||||
"Source",
|
"Source", /* 3 */
|
||||||
"Back Gate",
|
"Back Gate", /* 4 */
|
||||||
"Bulk",
|
"Bulk", /* 5 */
|
||||||
"Thermal"
|
"Thermal" /* 6 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,13 +43,15 @@ typedef struct sSOI3instance {
|
||||||
IFuid SOI3name; /* pointer to character string naming this instance */
|
IFuid SOI3name; /* pointer to character string naming this instance */
|
||||||
int SOI3states; /* index into state table for this device */
|
int SOI3states; /* index into state table for this device */
|
||||||
|
|
||||||
|
/* GENnode[] { */
|
||||||
int SOI3dNode; /* number of the drain node of the mosfet */
|
int SOI3dNode; /* number of the drain node of the mosfet */
|
||||||
int SOI3gfNode; /* number of the front gate 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 SOI3sNode; /* number of the source node of the mosfet */
|
||||||
int SOI3gbNode; /* number of the back gate 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 SOI3bNode; /* number of the bulk node of the mosfet */
|
||||||
int SOI3toutNode; /* number of thermal output node (tout) */
|
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 */
|
int SOI3branch; /* branch number for zero voltage source if no thermal */
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue