presumably correct GENnodes[] <--> XXnames[] associations
this is a "pin-pointer" commit, pointing to places for source code verification we have int Nodes in every device instance, these are overlaid with struct GENinstance.GENnode[] and will be used from there too. the length entries and the XXnames[] arrays *must* fit this.
This commit is contained in:
parent
26da22e682
commit
78d88645d0
|
|
@ -27,8 +27,8 @@ IFparm ASRCpTable[] = { /* parameters */
|
|||
|
||||
|
||||
char *ASRCnames[] = {
|
||||
"src+",
|
||||
"src-"
|
||||
"src+", /* 1 */
|
||||
"src-" /* 2 */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,8 +23,11 @@ typedef struct sASRCinstance {
|
|||
* current model */
|
||||
IFuid ASRCname; /* pointer to character string naming this instance */
|
||||
int ASRCstates; /* state info */
|
||||
|
||||
/* GENnode[] { */
|
||||
int ASRCposNode; /* number of positive node of source */
|
||||
int ASRCnegNode; /* number of negative node of source */
|
||||
/* } */
|
||||
|
||||
int ASRCtype; /* Whether source is voltage or current */
|
||||
int ASRCbranch; /* number of branch equation added for v source */
|
||||
|
|
|
|||
|
|
@ -219,10 +219,10 @@ IFparm BJTmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *BJTnames[] = {
|
||||
"collector",
|
||||
"base",
|
||||
"emitter",
|
||||
"substrate"
|
||||
"collector", /* 1 */
|
||||
"base", /* 2 */
|
||||
"emitter", /* 3 */
|
||||
"substrate" /* 4 */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,10 +23,13 @@ typedef struct sBJTinstance {
|
|||
IFuid BJTname; /* pointer to character string naming this instance */
|
||||
int BJTstate; /* pointer to start of state vector for bjt */
|
||||
|
||||
/* GENnode[] { */
|
||||
int BJTcolNode; /* number of collector node of bjt */
|
||||
int BJTbaseNode; /* number of base node of bjt */
|
||||
int BJTemitNode; /* number of emitter node of bjt */
|
||||
int BJTsubstNode; /* number of substrate node of bjt */
|
||||
/* } */
|
||||
|
||||
int BJTcolPrimeNode; /* number of internal collector node of bjt */
|
||||
int BJTbasePrimeNode; /* number of internal base node of bjt */
|
||||
int BJTemitPrimeNode; /* number of internal emitter node of bjt */
|
||||
|
|
|
|||
|
|
@ -131,10 +131,10 @@ IFparm B1mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *B1names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int B1nSize = NUMELEMS(B1names);
|
||||
|
|
|
|||
|
|
@ -26,10 +26,13 @@ typedef struct sBSIM1instance {
|
|||
IFuid B1name; /* pointer to character string naming this instance */
|
||||
int B1states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int B1dNode; /* number of the gate node of the mosfet */
|
||||
int B1gNode; /* number of the gate node of the mosfet */
|
||||
int B1sNode; /* number of the source node of the mosfet */
|
||||
int B1bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int B1dNodePrime; /* number of the internal drain node of the mosfet */
|
||||
int B1sNodePrime; /* number of the internal source node of the mosfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -201,10 +201,10 @@ IFparm B2mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *B2names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int B2nSize = NUMELEMS(B2names);
|
||||
|
|
|
|||
|
|
@ -22,10 +22,13 @@ typedef struct sBSIM2instance {
|
|||
IFuid B2name; /* pointer to character string naming this instance */
|
||||
int B2states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int B2dNode; /* number of the gate node of the mosfet */
|
||||
int B2gNode; /* number of the gate node of the mosfet */
|
||||
int B2sNode; /* number of the source node of the mosfet */
|
||||
int B2bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int B2dNodePrime; /* number of the internal drain node of the mosfet */
|
||||
int B2sNodePrime; /* number of the internal source node of the mosfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -59,8 +59,8 @@ IFparm CAPmPTable[] = { /* names of model parameters */
|
|||
};
|
||||
|
||||
char *CAPnames[] = {
|
||||
"C+",
|
||||
"C-"
|
||||
"C+", /* 1 */
|
||||
"C-" /* 2 */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -24,8 +24,11 @@ typedef struct sCAPinstance {
|
|||
* current model*/
|
||||
IFuid CAPname; /* pointer to character string naming this instance */
|
||||
int CAPstate; /* pointer to start of capacitor state vector */
|
||||
|
||||
/* GENnode[] { */
|
||||
int CAPposNode; /* number of positive node of capacitor */
|
||||
int CAPnegNode; /* number of negative node of capacitor */
|
||||
/* } */
|
||||
|
||||
double CAPtemp; /* temperature at which this capacitor operates */
|
||||
double CAPdtemp; /* delta-temperature of this instance */
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ static IFparm CCCSmPTable[] = {
|
|||
#endif
|
||||
|
||||
char *CCCSnames[] = {
|
||||
"F+",
|
||||
"F-"
|
||||
"F+", /* 1 */
|
||||
"F-" /* 2 */
|
||||
};
|
||||
|
||||
int CCCSnSize = NUMELEMS(CCCSnames);
|
||||
|
|
|
|||
|
|
@ -22,8 +22,11 @@ typedef struct sCCCSinstance {
|
|||
IFuid CCCSname; /* pointer to character string naming this instance */
|
||||
int CCCSstate; /* not used */
|
||||
|
||||
/* GENnode[] { */
|
||||
int CCCSposNode; /* number of positive node of source */
|
||||
int CCCSnegNode; /* number of negative node of source */
|
||||
/* } */
|
||||
|
||||
int CCCScontBranch; /* number of branch eq of controlling source */
|
||||
|
||||
char *CCCScontName; /* pointer to name of controlling instance */
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ IFparm CCVSpTable[] = { /* parameters */
|
|||
};
|
||||
|
||||
char *CCVSnames[] = {
|
||||
"H+",
|
||||
"H-"
|
||||
"H+", /* 1 */
|
||||
"H-" /* 2 */
|
||||
};
|
||||
|
||||
int CCVSnSize = NUMELEMS(CCVSnames);
|
||||
|
|
|
|||
|
|
@ -22,8 +22,10 @@ typedef struct sCCVSinstance {
|
|||
IFuid CCVSname; /* pointer to character string naming this instance */
|
||||
int CCVSstate; /* not used */
|
||||
|
||||
/* GENnode[] { */
|
||||
int CCVSposNode; /* number of positive node of source */
|
||||
int CCVSnegNode; /* number of negative node of source */
|
||||
/* } */
|
||||
|
||||
IFuid CCVScontName; /* pointer to name of controlling instance */
|
||||
int CCVSbranch; /* equation number of branch equation added for v source */
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ IFparm CSWmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *CSWnames[] = {
|
||||
"W+",
|
||||
"W-"
|
||||
"W+", /* 1 */
|
||||
"W-" /* 2 */
|
||||
};
|
||||
|
||||
int CSWnSize = NUMELEMS(CSWnames);
|
||||
|
|
|
|||
|
|
@ -25,10 +25,12 @@ typedef struct sCSWinstance {
|
|||
IFuid CSWname; /* pointer to character string naming this instance */
|
||||
int CSWstate; /* pointer to start of switch's section of state vector */
|
||||
|
||||
/* GENnode[] { */
|
||||
int CSWposNode; /* number of positive node of switch */
|
||||
int CSWnegNode; /* number of negative node of switch */
|
||||
int CSWcontBranch; /* number of branch of controlling current */
|
||||
/* } */
|
||||
|
||||
int CSWcontBranch; /* number of branch of controlling current */
|
||||
IFuid CSWcontName; /* name of controlling source */
|
||||
|
||||
double *CSWposPosptr; /* pointer to sparse matrix diagonal at
|
||||
|
|
|
|||
|
|
@ -112,8 +112,8 @@ IFparm DIOmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *DIOnames[] = {
|
||||
"D+",
|
||||
"D-"
|
||||
"D+", /* 1 */
|
||||
"D-" /* 2 */
|
||||
};
|
||||
|
||||
int DIOnSize = NUMELEMS(DIOnames);
|
||||
|
|
|
|||
|
|
@ -23,8 +23,12 @@ typedef struct sDIOinstance {
|
|||
* current model*/
|
||||
IFuid DIOname; /* pointer to character string naming this instance */
|
||||
int DIOstate; /* pointer to start of state vector for diode */
|
||||
|
||||
/* GENnode[] { */
|
||||
int DIOposNode; /* number of positive node of diode */
|
||||
int DIOnegNode; /* number of negative node of diode */
|
||||
/* } */
|
||||
|
||||
int DIOposPrimeNode; /* number of positive prime node of diode */
|
||||
|
||||
double *DIOposPosPrimePtr; /* pointer to sparse matrix at
|
||||
|
|
|
|||
|
|
@ -114,9 +114,9 @@ IFparm HFETAmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *HFETAnames[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source" /* 3 */
|
||||
};
|
||||
|
||||
int HFETAnSize = NUMELEMS(HFETAnames);
|
||||
|
|
|
|||
|
|
@ -20,9 +20,12 @@ typedef struct sHFETAinstance {
|
|||
IFuid HFETAname;
|
||||
int HFETAstate; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int HFETAdrainNode;
|
||||
int HFETAgateNode;
|
||||
int HFETAsourceNode;
|
||||
/* } */
|
||||
|
||||
int HFETAdrainPrimeNode;
|
||||
int HFETAgatePrimeNode;
|
||||
int HFETAsourcePrimeNode;
|
||||
|
|
|
|||
|
|
@ -87,9 +87,9 @@ IFparm HFET2mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *HFET2names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source" /* 3 */
|
||||
};
|
||||
|
||||
int HFET2nSize = NUMELEMS(HFET2names);
|
||||
|
|
|
|||
|
|
@ -14,9 +14,12 @@ typedef struct sHFET2instance {
|
|||
IFuid HFET2name;
|
||||
int HFET2state; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int HFET2drainNode;
|
||||
int HFET2gateNode;
|
||||
int HFET2sourceNode;
|
||||
/* } */
|
||||
|
||||
int HFET2drainPrimeNode;
|
||||
int HFET2sourcePrimeNode;
|
||||
double HFET2length;
|
||||
|
|
|
|||
|
|
@ -708,10 +708,10 @@ IFparm HSM2mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *HSM2names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int HSM2nSize = NUMELEMS(HSM2names);
|
||||
|
|
|
|||
|
|
@ -143,10 +143,13 @@ typedef struct sHSM2instance {
|
|||
IFuid HSM2name; /* pointer to character string naming this instance */
|
||||
int HSM2states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int HSM2dNode; /* number of the drain node of the mosfet */
|
||||
int HSM2gNode; /* number of the gate node of the mosfet */
|
||||
int HSM2sNode; /* number of the source node of the mosfet */
|
||||
int HSM2bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int HSM2dNodePrime; /* number od the inner drain node */
|
||||
int HSM2gNodePrime; /* number of the inner gate node */
|
||||
int HSM2sNodePrime; /* number od the inner source node */
|
||||
|
|
|
|||
|
|
@ -730,12 +730,12 @@ IFparm HSMHVmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *HSMHVnames[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk",
|
||||
"Substrate",
|
||||
"Temp"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk", /* 4 */
|
||||
"Substrate", /* 5 */
|
||||
"Temp" /* 6 */
|
||||
};
|
||||
|
||||
int HSMHVnSize = NUMELEMS(HSMHVnames);
|
||||
|
|
|
|||
|
|
@ -219,12 +219,15 @@ typedef struct sHSMHVinstance {
|
|||
IFuid HSMHVname; /* pointer to character string naming this instance */
|
||||
int HSMHVstates; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int HSMHVdNode; /* number of the drain node of the mosfet */
|
||||
int HSMHVgNode; /* number of the gate node of the mosfet */
|
||||
int HSMHVsNode; /* number of the source node of the mosfet */
|
||||
int HSMHVbNode; /* number of the bulk node of the mosfet */
|
||||
int HSMHVsubNode; /* number of the substrate node */
|
||||
int HSMHVtempNode; /* number of the temp node----------SHE--------*/
|
||||
/* } */
|
||||
|
||||
int HSMHVdNodePrime; /* number od the inner drain node */
|
||||
int HSMHVgNodePrime; /* number of the inner gate node */
|
||||
int HSMHVsNodePrime; /* number od the inner source node */
|
||||
|
|
|
|||
|
|
@ -913,12 +913,12 @@ IFparm HSMHV2mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *HSMHV2names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk",
|
||||
"Substrate",
|
||||
"Temp"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk", /* 4 */
|
||||
"Substrate", /* 5 */
|
||||
"Temp" /* 6 */
|
||||
};
|
||||
|
||||
int HSMHV2nSize = NUMELEMS(HSMHV2names);
|
||||
|
|
|
|||
|
|
@ -267,12 +267,15 @@ typedef struct sHSMHV2instance {
|
|||
IFuid HSMHV2name; /* pointer to character string naming this instance */
|
||||
int HSMHV2states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int HSMHV2dNode; /* number of the drain node of the mosfet */
|
||||
int HSMHV2gNode; /* number of the gate node of the mosfet */
|
||||
int HSMHV2sNode; /* number of the source node of the mosfet */
|
||||
int HSMHV2bNode; /* number of the bulk node of the mosfet */
|
||||
int HSMHV2subNode; /* number of the substrate node */
|
||||
int HSMHV2tempNode; /* number of the temp node----------SHE--------*/
|
||||
/* } */
|
||||
|
||||
int HSMHV2dNodePrime; /* number od the inner drain node */
|
||||
int HSMHV2gNodePrime; /* number of the inner gate node */
|
||||
int HSMHV2sNodePrime; /* number od the inner source node */
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ IFparm INDmPTable[] = { /* model parameters */
|
|||
|
||||
|
||||
char *INDnames[] = {
|
||||
"L+",
|
||||
"L-"
|
||||
"L+", /* 1 */
|
||||
"L-" /* 2 */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -32,8 +32,11 @@ struct sINDinstance {
|
|||
* current model */
|
||||
IFuid INDname; /* pointer to character string naming this instance */
|
||||
int INDstate; /* pointer to beginning of state vector for inductor */
|
||||
|
||||
/* GENnode[] { */
|
||||
int INDposNode; /* number of positive node of inductor */
|
||||
int INDnegNode; /* number of negative node of inductor */
|
||||
/* } */
|
||||
|
||||
int INDbrEq; /* number of the branch equation added for current */
|
||||
double INDinduct; /* inductance */
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ IFparm ISRCpTable[] = { /* parameters */
|
|||
};
|
||||
|
||||
char *ISRCnames[] = {
|
||||
"I+",
|
||||
"I-"
|
||||
"I+", /* 1 */
|
||||
"I-" /* 2 */
|
||||
};
|
||||
|
||||
int ISRCnSize = NUMELEMS(ISRCnames);
|
||||
|
|
|
|||
|
|
@ -25,8 +25,10 @@ typedef struct sISRCinstance {
|
|||
IFuid ISRCname; /* pointer to character string naming this instance */
|
||||
int ISRCstate; /* not used */
|
||||
|
||||
/* GENnode[] { */
|
||||
int ISRCnegNode; /* number of negative node of source */
|
||||
int ISRCposNode; /* number of positive node of source */
|
||||
/* } */ /* ouch revers to ISRCnames ! */
|
||||
|
||||
int ISRCfunctionType; /* code number of function type for source */
|
||||
int ISRCfunctionOrder; /* order of the function for the source */
|
||||
|
|
|
|||
|
|
@ -77,9 +77,9 @@ IFparm JFETmPTable[] = { /* model parameters */
|
|||
|
||||
|
||||
char *JFETnames[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source" /* 3 */
|
||||
};
|
||||
|
||||
int JFETnSize = NUMELEMS(JFETnames);
|
||||
|
|
|
|||
|
|
@ -26,9 +26,13 @@ typedef struct sJFETinstance {
|
|||
* current model*/
|
||||
IFuid JFETname; /* pointer to character string naming this instance */
|
||||
int JFETstate; /* pointer to start of state vector for jfet */
|
||||
|
||||
/* GENnode[] { */
|
||||
int JFETdrainNode; /* number of drain node of jfet */
|
||||
int JFETgateNode; /* number of gate node of jfet */
|
||||
int JFETsourceNode; /* number of source node of jfet */
|
||||
/* } */
|
||||
|
||||
int JFETdrainPrimeNode; /* number of internal drain node of jfet */
|
||||
int JFETsourcePrimeNode; /* number of internal source node of jfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -65,9 +65,9 @@ IFparm JFET2mPTable[] = { /* model parameters */
|
|||
|
||||
|
||||
char *JFET2names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source" /* 3 */
|
||||
};
|
||||
|
||||
int JFET2nSize = NUMELEMS(JFET2names);
|
||||
|
|
|
|||
|
|
@ -31,9 +31,13 @@ typedef struct sJFET2instance {
|
|||
* current model*/
|
||||
IFuid JFET2name; /* pointer to character string naming this instance */
|
||||
int JFET2state; /* pointer to start of state vector for jfet */
|
||||
|
||||
/* GENnode[] { */
|
||||
int JFET2drainNode; /* number of drain node of jfet */
|
||||
int JFET2gateNode; /* number of gate node of jfet */
|
||||
int JFET2sourceNode; /* number of source node of jfet */
|
||||
/* } */
|
||||
|
||||
int JFET2drainPrimeNode; /* number of internal drain node of jfet */
|
||||
int JFET2sourcePrimeNode; /* number of internal source node of jfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -57,10 +57,10 @@ IFparm LTRAmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *LTRAnames[] = {
|
||||
"P1+",
|
||||
"P1-",
|
||||
"P2+",
|
||||
"P2-"
|
||||
"P1+", /* 1 */
|
||||
"P1-", /* 2 */
|
||||
"P2+", /* 3 */
|
||||
"P2-" /* 4 */
|
||||
};
|
||||
|
||||
int LTRAnSize = NUMELEMS(LTRAnames);
|
||||
|
|
|
|||
|
|
@ -23,10 +23,13 @@ typedef struct sLTRAinstance {
|
|||
* current model*/
|
||||
IFuid LTRAname; /* pointer to character string naming this instance */
|
||||
int LTRAstate; /* not used */
|
||||
|
||||
/* GENnode[] { */
|
||||
int LTRAposNode1; /* number of positive node of end 1 of t. line */
|
||||
int LTRAnegNode1; /* number of negative node of end 1 of t. line */
|
||||
int LTRAposNode2; /* number of positive node of end 2 of t. line */
|
||||
int LTRAnegNode2; /* number of negative node of end 2 of t. line */
|
||||
/* } */
|
||||
|
||||
int LTRAbrEq1; /* number of branch equation for end 1 of t. line */
|
||||
int LTRAbrEq2; /* number of branch equation for end 2 of t. line */
|
||||
|
|
|
|||
|
|
@ -64,9 +64,9 @@ IFparm MESmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *MESnames[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source" /* 3 */
|
||||
};
|
||||
|
||||
int MESnSize = NUMELEMS(MESnames);
|
||||
|
|
|
|||
|
|
@ -25,9 +25,13 @@ typedef struct sMESinstance {
|
|||
* current model*/
|
||||
IFuid MESname; /* pointer to character string naming this instance */
|
||||
int MESstate; /* pointer to start of state vector for mesfet */
|
||||
|
||||
/* GENnode[] { */
|
||||
int MESdrainNode; /* number of drain node of mesfet */
|
||||
int MESgateNode; /* number of gate node of mesfet */
|
||||
int MESsourceNode; /* number of source node of mesfet */
|
||||
/* } */
|
||||
|
||||
int MESdrainPrimeNode; /* number of internal drain node of mesfet */
|
||||
int MESsourcePrimeNode; /* number of internal source node of mesfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -119,9 +119,9 @@ IFparm MESAmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *MESAnames[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source" /* 3 */
|
||||
};
|
||||
|
||||
int MESAnSize = NUMELEMS(MESAnames);
|
||||
|
|
|
|||
|
|
@ -24,9 +24,12 @@ typedef struct sMESAinstance {
|
|||
IFuid MESAname; /* pointer to character string naming this instance */
|
||||
int MESAstate; /* pointer to start of state vector for MESAfet */
|
||||
|
||||
/* GENnode[] { */
|
||||
int MESAdrainNode; /* number of drain node of MESAfet */
|
||||
int MESAgateNode; /* number of gate node of MESAfet */
|
||||
int MESAsourceNode; /* number of source node of MESAfet */
|
||||
/* } */
|
||||
|
||||
int MESAdrainPrimeNode; /* number of internal drain node of MESAfet */
|
||||
int MESAgatePrimeNode; /* number of internal gate node of MESAfet */
|
||||
int MESAsourcePrimeNode; /* number of internal source node of MESAfet */
|
||||
|
|
|
|||
|
|
@ -152,10 +152,10 @@ IFparm MOS1mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *MOS1names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int MOS1nSize = NUMELEMS(MOS1names);
|
||||
|
|
|
|||
|
|
@ -24,10 +24,13 @@ typedef struct sMOS1instance {
|
|||
IFuid MOS1name; /* pointer to character string naming this instance */
|
||||
int MOS1states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int MOS1dNode; /* number of the gate node of the mosfet */
|
||||
int MOS1gNode; /* number of the gate node of the mosfet */
|
||||
int MOS1sNode; /* number of the source node of the mosfet */
|
||||
int MOS1bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int MOS1dNodePrime; /* number of the internal drain node of the mosfet */
|
||||
int MOS1sNodePrime; /* number of the internal source node of the mosfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -160,10 +160,10 @@ IFparm MOS2mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *MOS2names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int MOS2nSize = NUMELEMS(MOS2names);
|
||||
|
|
|
|||
|
|
@ -23,10 +23,13 @@ typedef struct sMOS2instance {
|
|||
*current model*/
|
||||
IFuid MOS2name; /* pointer to character string naming this instance */
|
||||
int MOS2states; /* index into state table for this device */
|
||||
/* GENnode[] { */
|
||||
int MOS2dNode; /* number of the gate node of the mosfet */
|
||||
int MOS2gNode; /* number of the gate node of the mosfet */
|
||||
int MOS2sNode; /* number of the source node of the mosfet */
|
||||
int MOS2bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int MOS2dNodePrime; /* number of the internal drain node of the mosfet */
|
||||
int MOS2sNodePrime; /* number of the internal source node of the mosfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -160,10 +160,10 @@ IFparm MOS3mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *MOS3names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int MOS3nSize = NUMELEMS(MOS3names);
|
||||
|
|
|
|||
|
|
@ -23,10 +23,14 @@ typedef struct sMOS3instance {
|
|||
*current model*/
|
||||
IFuid MOS3name; /* pointer to character string naming this instance */
|
||||
int MOS3states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int MOS3dNode; /* number of the gate node of the mosfet */
|
||||
int MOS3gNode; /* number of the gate node of the mosfet */
|
||||
int MOS3sNode; /* number of the source node of the mosfet */
|
||||
int MOS3bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int MOS3dNodePrime; /* number of the internal drain node of the mosfet */
|
||||
int MOS3sNodePrime; /* number of the internal source node of the mosfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -156,10 +156,10 @@ IFparm MOS6mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *MOS6names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int MOS6nSize = NUMELEMS(MOS6names);
|
||||
|
|
|
|||
|
|
@ -21,10 +21,14 @@ typedef struct sMOS6instance {
|
|||
*current model*/
|
||||
IFuid MOS6name; /* pointer to character string naming this instance */
|
||||
int MOS6states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int MOS6dNode; /* number of the gate node of the mosfet */
|
||||
int MOS6gNode; /* number of the gate node of the mosfet */
|
||||
int MOS6sNode; /* number of the source node of the mosfet */
|
||||
int MOS6bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int MOS6dNodePrime; /* number of the internal drain node of the mosfet */
|
||||
int MOS6sNodePrime; /* number of the internal source node of the mosfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -161,10 +161,10 @@ IFparm MOS9mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *MOS9names[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Bulk"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Bulk" /* 4 */
|
||||
};
|
||||
|
||||
int MOS9nSize = NUMELEMS(MOS9names);
|
||||
|
|
|
|||
|
|
@ -23,10 +23,14 @@ typedef struct sMOS9instance {
|
|||
*current model*/
|
||||
IFuid MOS9name; /* pointer to character string naming this instance */
|
||||
int MOS9states; /* index into state table for this device */
|
||||
|
||||
/* GENnode[] { */
|
||||
int MOS9dNode; /* number of the gate node of the mosfet */
|
||||
int MOS9gNode; /* number of the gate node of the mosfet */
|
||||
int MOS9sNode; /* number of the source node of the mosfet */
|
||||
int MOS9bNode; /* number of the bulk node of the mosfet */
|
||||
/* } */
|
||||
|
||||
int MOS9dNodePrime; /* number of the internal drain node of the mosfet */
|
||||
int MOS9sNodePrime; /* number of the internal source node of the mosfet */
|
||||
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@ IFparm NDEVmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *NDEVnames[] = {
|
||||
"pin1",
|
||||
"pin2",
|
||||
"pin3",
|
||||
"pin4",
|
||||
"pin5",
|
||||
"pin6",
|
||||
"pin7"
|
||||
"pin1", /* 1 */
|
||||
"pin2", /* 2 */
|
||||
"pin3", /* 3 */
|
||||
"pin4", /* 4 */
|
||||
"pin5", /* 5 */
|
||||
"pin6", /* 6 */
|
||||
"pin7" /* 7 */
|
||||
};
|
||||
|
||||
int NDEVnSize = NUMELEMS(NDEVnames);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,11 @@ typedef struct sNDEVinstance {
|
|||
IFuid NDEVname; /* pointer to character string naming this
|
||||
* instance */
|
||||
int NDEVstate; /* pointer to start of state vector for diode */
|
||||
|
||||
/* GENnode[] { */
|
||||
int pin[7]; /* max 7 terminals are allowed */
|
||||
/* } */
|
||||
|
||||
int term; /* the real number of terminals */
|
||||
CKTnode *node[7]; /* the array of CKT node's node pointer */
|
||||
char *bname[7]; /* the electrode boundary label for numerical solver */
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ IFparm NUMDmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *NUMDnames[] = {
|
||||
"D+",
|
||||
"D-"
|
||||
"D+", /* 1 */
|
||||
"D-" /* 2 */
|
||||
};
|
||||
|
||||
int NUMDnSize = NUMELEMS(NUMDnames);
|
||||
|
|
|
|||
|
|
@ -34,8 +34,11 @@ typedef struct sNUMDinstance {
|
|||
#define NUMDconduct NUMDstate+2
|
||||
#define NUMDnumStates 3
|
||||
|
||||
/* GENnode[] { */
|
||||
int NUMDposNode; /* number of positive node of diode */
|
||||
int NUMDnegNode; /* number of negative node of diode */
|
||||
/* } */
|
||||
|
||||
ONEdevice *NUMDpDevice;
|
||||
GLOBvalues NUMDglobals; /* Temp.-Dep. Global Parameters */
|
||||
int NUMDtype; /* device type pn or np */
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ IFparm NUMD2mPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *NUMD2names[] = {
|
||||
"Anode",
|
||||
"Cathode"
|
||||
"Anode", /* 1 */
|
||||
"Cathode" /* 2 */
|
||||
};
|
||||
|
||||
int NUMD2nSize = NUMELEMS(NUMD2names);
|
||||
|
|
|
|||
|
|
@ -34,8 +34,11 @@ typedef struct sNUMD2instance {
|
|||
#define NUMD2conduct NUMD2state+2
|
||||
#define NUMD2numStates 3
|
||||
|
||||
/* GENnode[] { */
|
||||
int NUMD2posNode; /* number of positive node of diode */
|
||||
int NUMD2negNode; /* number of negative node of diode */
|
||||
/* } */
|
||||
|
||||
TWOdevice *NUMD2pDevice;
|
||||
GLOBvalues NUMD2globals; /* Temp.-Dep. Global Parameters */
|
||||
int NUMD2type; /* device type pn or np */
|
||||
|
|
|
|||
|
|
@ -80,10 +80,10 @@ IFparm NUMOSmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *NUMOSnames[] = {
|
||||
"Drain",
|
||||
"Gate",
|
||||
"Source",
|
||||
"Substrate"
|
||||
"Drain", /* 1 */
|
||||
"Gate", /* 2 */
|
||||
"Source", /* 3 */
|
||||
"Substrate" /* 4 */
|
||||
};
|
||||
|
||||
int NUMOSnSize = NUMELEMS(NUMOSnames);
|
||||
|
|
|
|||
|
|
@ -48,10 +48,13 @@ typedef struct sNUMOSinstance {
|
|||
#define NUMOSdIgDVgb NUMOSstate+14
|
||||
#define NUMOSnumStates 15
|
||||
|
||||
/* GENnode[] { */
|
||||
int NUMOSdrainNode; /* number of drain node of MOSFET */
|
||||
int NUMOSgateNode; /* number of gate node of MOSFET */
|
||||
int NUMOSsourceNode; /* number of source node of MOSFET */
|
||||
int NUMOSbulkNode; /* number of bulk node of MOSFET */
|
||||
/* } */
|
||||
|
||||
double NUMOSarea; /* area factor for the mosfet */
|
||||
double NUMOSwidth; /* width factor for the mosfet */
|
||||
double NUMOSlength; /* length factor for the mosfet */
|
||||
|
|
|
|||
|
|
@ -68,8 +68,8 @@ IFparm RESmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *RESnames[] = {
|
||||
"R+",
|
||||
"R-"
|
||||
"R+", /* 1 */
|
||||
"R-" /* 2 */
|
||||
};
|
||||
|
||||
int RESnSize = NUMELEMS(RESnames);
|
||||
|
|
|
|||
|
|
@ -25,8 +25,11 @@ typedef struct sRESinstance {
|
|||
|
||||
IFuid RESname; /* pointer to character string naming this instance */
|
||||
int RESstate; /* not used but needed for sructure consistency */
|
||||
|
||||
/* GENnode[] { */
|
||||
int RESposNode; /* number of positive node of resistor */
|
||||
int RESnegNode; /* number of negative node of resistor */
|
||||
/* } */
|
||||
|
||||
double REStemp; /* temperature at which this resistor operates */
|
||||
double RESdtemp; /* delta-temperature of a particular instance */
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ IFparm SWmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *SWnames[] = {
|
||||
"S+",
|
||||
"S-",
|
||||
"SC+",
|
||||
"SC-"
|
||||
"S+", /* 1 */
|
||||
"S-", /* 2 */
|
||||
"SC+", /* 3 */
|
||||
"SC-" /* 4 */
|
||||
};
|
||||
|
||||
int SWnSize = NUMELEMS(SWnames);
|
||||
|
|
|
|||
|
|
@ -25,10 +25,12 @@ typedef struct sSWinstance {
|
|||
IFuid SWname; /* pointer to character string naming this instance */
|
||||
int SWstate; /* pointer to start of switch's section of state vector */
|
||||
|
||||
/* GENnode[] { */
|
||||
int SWposNode; /* number of positive node of switch */
|
||||
int SWnegNode; /* number of negative node of switch */
|
||||
int SWposCntrlNode; /* number of positive controlling node of switch */
|
||||
int SWnegCntrlNode; /* number of negative controlling node of switch */
|
||||
/* } */
|
||||
|
||||
double *SWposPosptr; /* pointer to sparse matrix diagonal at
|
||||
(positive,positive) for switch conductance */
|
||||
|
|
|
|||
|
|
@ -30,10 +30,10 @@ IFparm TRApTable[] = { /* parameters */
|
|||
};
|
||||
|
||||
char *TRAnames[] = {
|
||||
"P1+",
|
||||
"P1-",
|
||||
"P2+",
|
||||
"P2-"
|
||||
"P1+", /* 1 */
|
||||
"P1-", /* 2 */
|
||||
"P2+", /* 3 */
|
||||
"P2-" /* 4 */
|
||||
};
|
||||
|
||||
int TRAnSize = NUMELEMS(TRAnames);
|
||||
|
|
|
|||
|
|
@ -23,10 +23,14 @@ typedef struct sTRAinstance {
|
|||
* current model*/
|
||||
IFuid TRAname; /* pointer to character string naming this instance */
|
||||
int TRAstate; /* not used */
|
||||
|
||||
/* GENnode[] { */
|
||||
int TRAposNode1; /* number of positive node of end 1 of t. line */
|
||||
int TRAnegNode1; /* number of negative node of end 1 of t. line */
|
||||
int TRAposNode2; /* number of positive node of end 2 of t. line */
|
||||
int TRAnegNode2; /* number of negative node of end 2 of t. line */
|
||||
/* } */
|
||||
|
||||
int TRAintNode1; /* number of internal node of end 1 of t. line */
|
||||
int TRAintNode2; /* number of internal node of end 2 of t. line */
|
||||
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ IFparm URCmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *URCnames[] = {
|
||||
"P1",
|
||||
"P2",
|
||||
"Ref"
|
||||
"P1", /* 1 */
|
||||
"P2", /* 2 */
|
||||
"Ref" /* 3 */
|
||||
};
|
||||
|
||||
int URCnSize = NUMELEMS(URCnames);
|
||||
|
|
|
|||
|
|
@ -24,9 +24,12 @@ typedef struct sURCinstance {
|
|||
* current model*/
|
||||
IFuid URCname; /* pointer to character string naming this instance */
|
||||
int URCstate; /* not used */
|
||||
|
||||
/* GENnode[] { */
|
||||
int URCposNode; /* number of positive node of URC */
|
||||
int URCnegNode; /* number of negative node of URC */
|
||||
int URCgndNode; /* number of the "ground" node of the URC */
|
||||
/* } */
|
||||
|
||||
double URClength; /* length of line */
|
||||
int URClumps; /* number of lumps in line */
|
||||
|
|
|
|||
|
|
@ -191,10 +191,10 @@ IFparm VBICmPTable[] = { /* model parameters */
|
|||
};
|
||||
|
||||
char *VBICnames[] = {
|
||||
"collector",
|
||||
"base",
|
||||
"emitter",
|
||||
"substrate"
|
||||
"collector", /* 1 */
|
||||
"base", /* 2 */
|
||||
"emitter", /* 3 */
|
||||
"substrate" /* 4 */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -25,10 +25,13 @@ typedef struct sVBICinstance {
|
|||
IFuid VBICname; /* pointer to character string naming this instance */
|
||||
int VBICstate; /* pointer to start of state vector for vbic */
|
||||
|
||||
/* GENnode[] { */
|
||||
int VBICcollNode; /* number of collector node of vbic */
|
||||
int VBICbaseNode; /* number of base node of vbic */
|
||||
int VBICemitNode; /* number of emitter node of vbic */
|
||||
int VBICsubsNode; /* number of substrate node of vbic */
|
||||
/* } */
|
||||
|
||||
int VBICcollCXNode; /* number of internal collector node of vbic */
|
||||
int VBICcollCINode; /* number of internal collector node of vbic */
|
||||
int VBICbaseBXNode; /* number of internal base node of vbic */
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ IFparm VCCSpTable[] = { /* parameters */
|
|||
};
|
||||
|
||||
char *VCCSnames[] = {
|
||||
"V+",
|
||||
"V-",
|
||||
"VC+",
|
||||
"VC-"
|
||||
"V+", /* 1 */
|
||||
"V-", /* 2 */
|
||||
"VC+", /* 3 */
|
||||
"VC-" /* 4 */
|
||||
};
|
||||
|
||||
int VCCSnSize = NUMELEMS(VCCSnames);
|
||||
|
|
|
|||
|
|
@ -24,10 +24,12 @@ typedef struct sVCCSinstance {
|
|||
IFuid VCCSname; /* pointer to character string naming this instance */
|
||||
int VCCSstates; /* state info */
|
||||
|
||||
/* GENnode[] { */
|
||||
int VCCSposNode; /* number of positive node of source */
|
||||
int VCCSnegNode; /* number of negative node of source */
|
||||
int VCCScontPosNode; /* number of positive node of controlling source */
|
||||
int VCCScontNegNode; /* number of negative node of controlling source */
|
||||
/* } */
|
||||
|
||||
double VCCSinitCond; /* initial condition (of controlling source) */
|
||||
double VCCScoeff; /* coefficient */
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ IFparm VCVSpTable[] = { /* parameters */
|
|||
};
|
||||
|
||||
char *VCVSnames[] = {
|
||||
"V+",
|
||||
"V-",
|
||||
"VC+",
|
||||
"VC-"
|
||||
"V+", /* 1 */
|
||||
"V-", /* 2 */
|
||||
"VC+", /* 3 */
|
||||
"VC-" /* 4 */
|
||||
};
|
||||
|
||||
int VCVSnSize = NUMELEMS(VCVSnames);
|
||||
|
|
|
|||
|
|
@ -25,10 +25,13 @@ typedef struct sVCVSinstance {
|
|||
IFuid VCVSname; /* pointer to character string naming this instance */
|
||||
int VCVSstates; /* state info */
|
||||
|
||||
/* GENnode[] { */
|
||||
int VCVSposNode; /* number of positive node of source */
|
||||
int VCVSnegNode; /* number of negative node of source */
|
||||
int VCVScontPosNode; /* number of positive node of controlling source */
|
||||
int VCVScontNegNode; /* number of negative node of controlling source */
|
||||
/* } */
|
||||
|
||||
int VCVSbranch; /* equation number of branch equation added for v source */
|
||||
|
||||
double VCVSinitCond; /* initial condition (of controlling source) */
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ IFparm VSRCpTable[] = { /* parameters */
|
|||
};
|
||||
|
||||
char *VSRCnames[] = {
|
||||
"V+",
|
||||
"V-"
|
||||
"V+", /* 1 */
|
||||
"V-" /* 2 */
|
||||
};
|
||||
|
||||
int VSRCnSize = NUMELEMS(VSRCnames);
|
||||
|
|
|
|||
|
|
@ -27,8 +27,10 @@ typedef struct sVSRCinstance {
|
|||
IFuid VSRCname; /* pointer to character string naming this instance */
|
||||
int VSRCstate; /* not used */
|
||||
|
||||
/* GENnode[] { */
|
||||
int VSRCposNode; /* number of positive node of source */
|
||||
int VSRCnegNode; /* number of negative node of source */
|
||||
/* } */
|
||||
|
||||
int VSRCbranch; /* equation number of branch equation added for source */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue