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 14:50:18 +01:00
parent 1b81f19557
commit f885d45e15
5 changed files with 13 additions and 2 deletions

View File

@ -49,7 +49,7 @@ IOPR( "delvt0", BSIM4v5_DELVTO, IF_REAL , "Zero bias threshold voltage variat
IOP( "mulu0", BSIM4v5_MULU0, IF_REAL, "Low field mobility multiplier"),
IOP( "xgw", BSIM4v5_XGW, IF_REAL, "Distance from gate contact center to device edge"),
IOP( "ngcon", BSIM4v5_NGCON, IF_REAL, "Number of gate contacts"),
IOPU("dtemp", BSIM4v5_DTEMP, IF_REAL, "Instance temperature difference"),
IOP( "trnqsmod", BSIM4v5_TRNQSMOD, IF_INTEGER, "Transient NQS model selector"),
IOP( "acnqsmod", BSIM4v5_ACNQSMOD, IF_INTEGER, "AC NQS model selector"),

View File

@ -112,6 +112,9 @@ BSIM4v5instance *here = (BSIM4v5instance*)inst;
case BSIM4v5_MULU0:
value->rValue = here->BSIM4v5mulu0;
return(OK);
case BSIM4v5_DTEMP:
value->rValue = here->BSIM4v5dtemp;
return(OK);
case BSIM4v5_XGW:
value->rValue = here->BSIM4v5xgw;
return(OK);

View File

@ -139,6 +139,10 @@ IFvalue *select)
here->BSIM4v5mulu0 = value->rValue;
here->BSIM4v5mulu0Given = TRUE;
break;
case BSIM4v5_DTEMP:
here->BSIM4v5dtemp = value->rValue;
here->BSIM4v5dtempGiven = TRUE;
return(OK);
case BSIM4v5_XGW:
here->BSIM4v5xgw = value->rValue;
here->BSIM4v5xgwGiven = TRUE;

View File

@ -1751,8 +1751,9 @@ BSIM4v5instance **InstArray;
here->BSIM4v5xgw = model->BSIM4v5xgw;
if (!here->BSIM4v5ngconGiven)
here->BSIM4v5ngcon = model->BSIM4v5ngcon;
if (!here->BSIM4v5dtempGiven)
here->BSIM4v5dtemp = 0;
/* Process instance model selectors, some
* may override their global counterparts
*/

View File

@ -105,6 +105,7 @@ typedef struct sBSIM4v5instance
double BSIM4v5mulu0;
double BSIM4v5xgw;
double BSIM4v5ngcon;
double BSIM4v5dtemp;
/* added here to account stress effect instance dependence */
double BSIM4v5u0temp;
@ -288,6 +289,7 @@ typedef struct sBSIM4v5instance
unsigned BSIM4v5mulu0Given :1;
unsigned BSIM4v5xgwGiven :1;
unsigned BSIM4v5ngconGiven :1;
unsigned BSIM4v5dtempGiven : 1;
unsigned BSIM4v5icVDSGiven :1;
unsigned BSIM4v5icVGSGiven :1;
unsigned BSIM4v5icVBSGiven :1;
@ -2536,6 +2538,7 @@ typedef struct sBSIM4v5model
#define BSIM4v5_SC 37
#define BSIM4v5_M 38
#define BSIM4v5_MULU0 39
#define BSIM4v5_DTEMP 40
/* Global parameters */
#define BSIM4v5_MOD_TEMPMOD 89