Prepare for instance parameter 'dtemp', required by commercial PDKs.
Not yet support in the model, silently ignored.
This commit is contained in:
parent
3d5d2390a2
commit
98b84695bf
|
|
@ -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( "mulu0", BSIM4v6_MULU0, IF_REAL, "Low field mobility multiplier"),
|
||||||
IOP( "xgw", BSIM4v6_XGW, IF_REAL, "Distance from gate contact center to device edge"),
|
IOP( "xgw", BSIM4v6_XGW, IF_REAL, "Distance from gate contact center to device edge"),
|
||||||
IOP( "ngcon", BSIM4v6_NGCON, IF_REAL, "Number of gate contacts"),
|
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( "trnqsmod", BSIM4v6_TRNQSMOD, IF_INTEGER, "Transient NQS model selector"),
|
||||||
IOP( "acnqsmod", BSIM4v6_ACNQSMOD, IF_INTEGER, "AC NQS model selector"),
|
IOP( "acnqsmod", BSIM4v6_ACNQSMOD, IF_INTEGER, "AC NQS model selector"),
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,9 @@ BSIM4v6instance *here = (BSIM4v6instance*)inst;
|
||||||
case BSIM4v6_MULU0:
|
case BSIM4v6_MULU0:
|
||||||
value->rValue = here->BSIM4v6mulu0;
|
value->rValue = here->BSIM4v6mulu0;
|
||||||
return(OK);
|
return(OK);
|
||||||
|
case BSIM4v6_DTEMP:
|
||||||
|
value->rValue = here->BSIM4v6dtemp;
|
||||||
|
return(OK);
|
||||||
case BSIM4v6_XGW:
|
case BSIM4v6_XGW:
|
||||||
value->rValue = here->BSIM4v6xgw;
|
value->rValue = here->BSIM4v6xgw;
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,10 @@ IFvalue *select)
|
||||||
here->BSIM4v6mulu0 = value->rValue;
|
here->BSIM4v6mulu0 = value->rValue;
|
||||||
here->BSIM4v6mulu0Given = TRUE;
|
here->BSIM4v6mulu0Given = TRUE;
|
||||||
break;
|
break;
|
||||||
|
case BSIM4v6_DTEMP:
|
||||||
|
here->BSIM4v6dtemp = value->rValue;
|
||||||
|
here->BSIM4v6dtempGiven = TRUE;
|
||||||
|
return(OK);
|
||||||
case BSIM4v6_XGW:
|
case BSIM4v6_XGW:
|
||||||
here->BSIM4v6xgw = value->rValue;
|
here->BSIM4v6xgw = value->rValue;
|
||||||
here->BSIM4v6xgwGiven = TRUE;
|
here->BSIM4v6xgwGiven = TRUE;
|
||||||
|
|
|
||||||
|
|
@ -2105,8 +2105,9 @@ BSIM4v6instance **InstArray;
|
||||||
here->BSIM4v6xgw = model->BSIM4v6xgw;
|
here->BSIM4v6xgw = model->BSIM4v6xgw;
|
||||||
if (!here->BSIM4v6ngconGiven)
|
if (!here->BSIM4v6ngconGiven)
|
||||||
here->BSIM4v6ngcon = model->BSIM4v6ngcon;
|
here->BSIM4v6ngcon = model->BSIM4v6ngcon;
|
||||||
|
if (!here->BSIM4v6dtempGiven)
|
||||||
|
here->BSIM4v6dtemp = 0;
|
||||||
|
|
||||||
|
|
||||||
/* Process instance model selectors, some
|
/* Process instance model selectors, some
|
||||||
* may override their global counterparts
|
* may override their global counterparts
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,7 @@ typedef struct sBSIM4v6instance
|
||||||
double BSIM4v6mulu0;
|
double BSIM4v6mulu0;
|
||||||
double BSIM4v6xgw;
|
double BSIM4v6xgw;
|
||||||
double BSIM4v6ngcon;
|
double BSIM4v6ngcon;
|
||||||
|
double BSIM4v6dtemp;
|
||||||
|
|
||||||
/* added here to account stress effect instance dependence */
|
/* added here to account stress effect instance dependence */
|
||||||
double BSIM4v6u0temp;
|
double BSIM4v6u0temp;
|
||||||
|
|
@ -297,6 +298,7 @@ typedef struct sBSIM4v6instance
|
||||||
unsigned BSIM4v6mulu0Given :1;
|
unsigned BSIM4v6mulu0Given :1;
|
||||||
unsigned BSIM4v6xgwGiven :1;
|
unsigned BSIM4v6xgwGiven :1;
|
||||||
unsigned BSIM4v6ngconGiven :1;
|
unsigned BSIM4v6ngconGiven :1;
|
||||||
|
unsigned BSIM4v6dtempGiven : 1;
|
||||||
unsigned BSIM4v6icVDSGiven :1;
|
unsigned BSIM4v6icVDSGiven :1;
|
||||||
unsigned BSIM4v6icVGSGiven :1;
|
unsigned BSIM4v6icVGSGiven :1;
|
||||||
unsigned BSIM4v6icVBSGiven :1;
|
unsigned BSIM4v6icVBSGiven :1;
|
||||||
|
|
@ -2713,6 +2715,7 @@ typedef struct sBSIM4v6model
|
||||||
#define BSIM4v6_SC 37
|
#define BSIM4v6_SC 37
|
||||||
#define BSIM4v6_M 38
|
#define BSIM4v6_M 38
|
||||||
#define BSIM4v6_MULU0 39
|
#define BSIM4v6_MULU0 39
|
||||||
|
#define BSIM4v6_DTEMP 40
|
||||||
|
|
||||||
/* Global parameters */
|
/* Global parameters */
|
||||||
#define BSIM4v6_MOD_TEMPEOT 65
|
#define BSIM4v6_MOD_TEMPEOT 65
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue