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:18:47 +01:00
parent 3d5d2390a2
commit 98b84695bf
5 changed files with 13 additions and 2 deletions

View File

@ -55,7 +55,7 @@ IOPR( "delvt0", BSIM4v6_DELVTO, IF_REAL , "Zero bias threshold voltage variat
IOP( "mulu0", BSIM4v6_MULU0, IF_REAL, "Low field mobility multiplier"),
IOP( "xgw", BSIM4v6_XGW, IF_REAL, "Distance from gate contact center to device edge"),
IOP( "ngcon", BSIM4v6_NGCON, IF_REAL, "Number of gate contacts"),
IOPU("dtemp", BSIM4v6_DTEMP, IF_REAL, "Instance temperature difference"),
IOP( "trnqsmod", BSIM4v6_TRNQSMOD, IF_INTEGER, "Transient NQS model selector"),
IOP( "acnqsmod", BSIM4v6_ACNQSMOD, IF_INTEGER, "AC NQS model selector"),

View File

@ -114,6 +114,9 @@ BSIM4v6instance *here = (BSIM4v6instance*)inst;
case BSIM4v6_MULU0:
value->rValue = here->BSIM4v6mulu0;
return(OK);
case BSIM4v6_DTEMP:
value->rValue = here->BSIM4v6dtemp;
return(OK);
case BSIM4v6_XGW:
value->rValue = here->BSIM4v6xgw;
return(OK);

View File

@ -141,6 +141,10 @@ IFvalue *select)
here->BSIM4v6mulu0 = value->rValue;
here->BSIM4v6mulu0Given = TRUE;
break;
case BSIM4v6_DTEMP:
here->BSIM4v6dtemp = value->rValue;
here->BSIM4v6dtempGiven = TRUE;
return(OK);
case BSIM4v6_XGW:
here->BSIM4v6xgw = value->rValue;
here->BSIM4v6xgwGiven = TRUE;

View File

@ -2105,8 +2105,9 @@ BSIM4v6instance **InstArray;
here->BSIM4v6xgw = model->BSIM4v6xgw;
if (!here->BSIM4v6ngconGiven)
here->BSIM4v6ngcon = model->BSIM4v6ngcon;
if (!here->BSIM4v6dtempGiven)
here->BSIM4v6dtemp = 0;
/* Process instance model selectors, some
* may override their global counterparts
*/

View File

@ -114,6 +114,7 @@ typedef struct sBSIM4v6instance
double BSIM4v6mulu0;
double BSIM4v6xgw;
double BSIM4v6ngcon;
double BSIM4v6dtemp;
/* added here to account stress effect instance dependence */
double BSIM4v6u0temp;
@ -297,6 +298,7 @@ typedef struct sBSIM4v6instance
unsigned BSIM4v6mulu0Given :1;
unsigned BSIM4v6xgwGiven :1;
unsigned BSIM4v6ngconGiven :1;
unsigned BSIM4v6dtempGiven : 1;
unsigned BSIM4v6icVDSGiven :1;
unsigned BSIM4v6icVGSGiven :1;
unsigned BSIM4v6icVBSGiven :1;
@ -2713,6 +2715,7 @@ typedef struct sBSIM4v6model
#define BSIM4v6_SC 37
#define BSIM4v6_M 38
#define BSIM4v6_MULU0 39
#define BSIM4v6_DTEMP 40
/* Global parameters */
#define BSIM4v6_MOD_TEMPEOT 65