Prepare for instance parameter 'dtemp', required by commercial PDKs.

Not yet support in the model, silently ignored.
This commit is contained in:
Holger Vogt 2026-02-20 15:06:30 +01:00
parent f885d45e15
commit 3d5d2390a2
5 changed files with 14 additions and 0 deletions

View File

@ -59,6 +59,7 @@ IOP( "mulu0", BSIM4_MULU0, IF_REAL, "Low field mobility multiplier"),
IOP( "xgw", BSIM4_XGW, IF_REAL, "Distance from gate contact center to device edge"),
IOP( "ngcon", BSIM4_NGCON, IF_REAL, "Number of gate contacts"),
IOP( "wnflag", BSIM4_WNFLAG, IF_INTEGER, "W/NF device flag for bin selection"),
IOPU("dtemp", BSIM4_DTEMP, IF_REAL, "Instance temperature difference"),
IOP( "trnqsmod", BSIM4_TRNQSMOD, IF_INTEGER, "Transient NQS model selector"),
IOP( "acnqsmod", BSIM4_ACNQSMOD, IF_INTEGER, "AC NQS model selector"),

View File

@ -135,6 +135,9 @@ BSIM4instance *here = (BSIM4instance*)inst;
case BSIM4_WNFLAG:
value->iValue = here->BSIM4wnflag;
return(OK);
case BSIM4_DTEMP:
value->rValue = here->BSIM4dtemp;
return(OK);
case BSIM4_XGW:
value->rValue = here->BSIM4xgw;
return(OK);

View File

@ -165,6 +165,10 @@ IFvalue *select)
here->BSIM4wnflag = value->iValue;
here->BSIM4wnflagGiven = TRUE;
break;
case BSIM4_DTEMP:
here->BSIM4dtemp = value->rValue;
here->BSIM4dtempGiven = TRUE;
return(OK);
case BSIM4_XGW:
here->BSIM4xgw = value->rValue;
here->BSIM4xgwGiven = TRUE;

View File

@ -2371,6 +2371,8 @@ BSIM4instance **InstArray;
here->BSIM4xgw = model->BSIM4xgw;
if (!here->BSIM4ngconGiven)
here->BSIM4ngcon = model->BSIM4ngcon;
if (!here->BSIM4dtempGiven)
here->BSIM4dtemp = 0;
/* Process instance model selectors, some
* may override their global counterparts

View File

@ -121,6 +121,7 @@ typedef struct sBSIM4instance
int BSIM4wnflag;
double BSIM4xgw;
double BSIM4ngcon;
double BSIM4dtemp;
/* added here to account stress effect instance dependence */
@ -316,6 +317,7 @@ typedef struct sBSIM4instance
unsigned BSIM4wnflagGiven :1;
unsigned BSIM4xgwGiven :1;
unsigned BSIM4ngconGiven :1;
unsigned BSIM4dtempGiven : 1;
unsigned BSIM4icVDSGiven :1;
unsigned BSIM4icVGSGiven :1;
unsigned BSIM4icVBSGiven :1;
@ -2884,6 +2886,8 @@ typedef struct sBSIM4model
#define BSIM4_WEFF 46
#define BSIM4_LEFF 47
#define BSIM4_DTEMP 48
/* Global parameters */
#define BSIM4_MOD_TEMPEOT 66
#define BSIM4_MOD_LEFFEOT 67