add instance parameter mulu0 for mobility reduction bsim4.5 and 4.6
This commit is contained in:
parent
3e27e640b5
commit
26e73c09b3
|
|
@ -46,6 +46,7 @@ IOP( "rbps", BSIM4v5_RBPS, IF_REAL , "Body resistance"),
|
|||
IOP( "rbpd", BSIM4v5_RBPD, IF_REAL , "Body resistance"),
|
||||
IOP( "delvto", BSIM4v5_DELVTO, IF_REAL , "Zero bias threshold voltage variation"),
|
||||
IOPR( "delvt0", BSIM4v5_DELVTO, IF_REAL , "Zero bias threshold voltage variation"),
|
||||
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"),
|
||||
|
||||
|
|
|
|||
|
|
@ -109,6 +109,9 @@ BSIM4v5instance *here = (BSIM4v5instance*)inst;
|
|||
case BSIM4v5_DELVTO:
|
||||
value->rValue = here->BSIM4v5delvto;
|
||||
return(OK);
|
||||
case BSIM4v5_MULU0:
|
||||
value->rValue = here->BSIM4v5mulu0;
|
||||
return(OK);
|
||||
case BSIM4v5_XGW:
|
||||
value->rValue = here->BSIM4v5xgw;
|
||||
return(OK);
|
||||
|
|
|
|||
|
|
@ -135,6 +135,10 @@ IFvalue *select)
|
|||
here->BSIM4v5delvto = value->rValue;
|
||||
here->BSIM4v5delvtoGiven = TRUE;
|
||||
break;
|
||||
case BSIM4v5_MULU0:
|
||||
here->BSIM4v5mulu0 = value->rValue;
|
||||
here->BSIM4v5mulu0Given = TRUE;
|
||||
break;
|
||||
case BSIM4v5_XGW:
|
||||
here->BSIM4v5xgw = value->rValue;
|
||||
here->BSIM4v5xgwGiven = TRUE;
|
||||
|
|
|
|||
|
|
@ -1745,6 +1745,8 @@ BSIM4v5instance **InstArray;
|
|||
here->BSIM4v5rbpd = model->BSIM4v5rbpd;
|
||||
if (!here->BSIM4v5delvtoGiven)
|
||||
here->BSIM4v5delvto = 0.0;
|
||||
if (!here->BSIM4v5mulu0Given)
|
||||
here->BSIM4v5mulu0 = 1.0;
|
||||
if (!here->BSIM4v5xgwGiven)
|
||||
here->BSIM4v5xgw = model->BSIM4v5xgw;
|
||||
if (!here->BSIM4v5ngconGiven)
|
||||
|
|
|
|||
|
|
@ -1416,6 +1416,9 @@ int Size_Not_Found, i;
|
|||
here->BSIM4v5vth0 += here->BSIM4v5delvto;
|
||||
here->BSIM4v5vfb = pParam->BSIM4v5vfb + model->BSIM4v5type * here->BSIM4v5delvto;
|
||||
|
||||
/* low field mobility multiplier */
|
||||
here->BSIM4v5u0temp = pParam->BSIM4v5u0temp * here->BSIM4v5mulu0;
|
||||
|
||||
/* Instance variables calculation */
|
||||
T3 = model->BSIM4v5type * here->BSIM4v5vth0
|
||||
- here->BSIM4v5vfb - pParam->BSIM4v5phi;
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@ typedef struct sBSIM4v5instance
|
|||
double BSIM4v5rbpd;
|
||||
|
||||
double BSIM4v5delvto;
|
||||
double BSIM4v5mulu0;
|
||||
double BSIM4v5xgw;
|
||||
double BSIM4v5ngcon;
|
||||
|
||||
|
|
@ -284,6 +285,7 @@ typedef struct sBSIM4v5instance
|
|||
unsigned BSIM4v5rbpdGiven :1;
|
||||
unsigned BSIM4v5rbpsGiven :1;
|
||||
unsigned BSIM4v5delvtoGiven :1;
|
||||
unsigned BSIM4v5mulu0Given :1;
|
||||
unsigned BSIM4v5xgwGiven :1;
|
||||
unsigned BSIM4v5ngconGiven :1;
|
||||
unsigned BSIM4v5icVDSGiven :1;
|
||||
|
|
@ -2460,6 +2462,7 @@ typedef struct sBSIM4v5model
|
|||
#define BSIM4v5_SCC 36
|
||||
#define BSIM4v5_SC 37
|
||||
#define BSIM4v5_M 38
|
||||
#define BSIM4v5_MULU0 39
|
||||
|
||||
/* Global parameters */
|
||||
#define BSIM4v5_MOD_TEMPMOD 89
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ IOP( "rbps", BSIM4v6_RBPS, IF_REAL , "Body resistance"),
|
|||
IOP( "rbpd", BSIM4v6_RBPD, IF_REAL , "Body resistance"),
|
||||
IOP( "delvto", BSIM4v6_DELVTO, IF_REAL , "Zero bias threshold voltage variation"),
|
||||
IOPR( "delvt0", BSIM4v6_DELVTO, IF_REAL , "Zero bias threshold voltage variation"),
|
||||
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"),
|
||||
|
||||
|
|
|
|||
|
|
@ -80,16 +80,16 @@ BSIM4v6instance *here = (BSIM4v6instance*)inst;
|
|||
case BSIM4v6_SD:
|
||||
value->rValue = here->BSIM4v6sd ;
|
||||
return(OK);
|
||||
case BSIM4v6_SCA:
|
||||
case BSIM4v6_SCA:
|
||||
value->rValue = here->BSIM4v6sca ;
|
||||
return(OK);
|
||||
case BSIM4v6_SCB:
|
||||
case BSIM4v6_SCB:
|
||||
value->rValue = here->BSIM4v6scb ;
|
||||
return(OK);
|
||||
case BSIM4v6_SCC:
|
||||
case BSIM4v6_SCC:
|
||||
value->rValue = here->BSIM4v6scc ;
|
||||
return(OK);
|
||||
case BSIM4v6_SC:
|
||||
case BSIM4v6_SC:
|
||||
value->rValue = here->BSIM4v6sc ;
|
||||
return(OK);
|
||||
|
||||
|
|
@ -111,6 +111,9 @@ BSIM4v6instance *here = (BSIM4v6instance*)inst;
|
|||
case BSIM4v6_DELVTO:
|
||||
value->rValue = here->BSIM4v6delvto;
|
||||
return(OK);
|
||||
case BSIM4v6_MULU0:
|
||||
value->rValue = here->BSIM4v6mulu0;
|
||||
return(OK);
|
||||
case BSIM4v6_XGW:
|
||||
value->rValue = here->BSIM4v6xgw;
|
||||
return(OK);
|
||||
|
|
|
|||
|
|
@ -137,6 +137,10 @@ IFvalue *select)
|
|||
here->BSIM4v6delvto = value->rValue;
|
||||
here->BSIM4v6delvtoGiven = TRUE;
|
||||
break;
|
||||
case BSIM4v6_MULU0:
|
||||
here->BSIM4v6mulu0 = value->rValue;
|
||||
here->BSIM4v6mulu0Given = TRUE;
|
||||
break;
|
||||
case BSIM4v6_XGW:
|
||||
here->BSIM4v6xgw = value->rValue;
|
||||
here->BSIM4v6xgwGiven = TRUE;
|
||||
|
|
|
|||
|
|
@ -2099,6 +2099,8 @@ BSIM4v6instance **InstArray;
|
|||
here->BSIM4v6rbpd = model->BSIM4v6rbpd;
|
||||
if (!here->BSIM4v6delvtoGiven)
|
||||
here->BSIM4v6delvto = 0.0;
|
||||
if (!here->BSIM4v6mulu0Given)
|
||||
here->BSIM4v6mulu0 = 1.0;
|
||||
if (!here->BSIM4v6xgwGiven)
|
||||
here->BSIM4v6xgw = model->BSIM4v6xgw;
|
||||
if (!here->BSIM4v6ngconGiven)
|
||||
|
|
|
|||
|
|
@ -1574,6 +1574,9 @@ int Size_Not_Found, i;
|
|||
here->BSIM4v6vth0 += here->BSIM4v6delvto;
|
||||
here->BSIM4v6vfb = pParam->BSIM4v6vfb + model->BSIM4v6type * here->BSIM4v6delvto;
|
||||
|
||||
/* low field mobility multiplier */
|
||||
here->BSIM4v6u0temp = pParam->BSIM4v6u0temp * here->BSIM4v6mulu0;
|
||||
|
||||
/* Instance variables calculation */
|
||||
T3 = model->BSIM4v6type * here->BSIM4v6vth0
|
||||
- here->BSIM4v6vfb - pParam->BSIM4v6phi;
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ typedef struct sBSIM4v6instance
|
|||
double BSIM4v6rbpd;
|
||||
|
||||
double BSIM4v6delvto;
|
||||
double BSIM4v6mulu0;
|
||||
double BSIM4v6xgw;
|
||||
double BSIM4v6ngcon;
|
||||
|
||||
|
|
@ -293,6 +294,7 @@ typedef struct sBSIM4v6instance
|
|||
unsigned BSIM4v6rbpdGiven :1;
|
||||
unsigned BSIM4v6rbpsGiven :1;
|
||||
unsigned BSIM4v6delvtoGiven :1;
|
||||
unsigned BSIM4v6mulu0Given :1;
|
||||
unsigned BSIM4v6xgwGiven :1;
|
||||
unsigned BSIM4v6ngconGiven :1;
|
||||
unsigned BSIM4v6icVDSGiven :1;
|
||||
|
|
@ -2637,6 +2639,7 @@ typedef struct sBSIM4v6model
|
|||
#define BSIM4v6_SCC 36
|
||||
#define BSIM4v6_SC 37
|
||||
#define BSIM4v6_M 38
|
||||
#define BSIM4v6_MULU0 39
|
||||
|
||||
/* Global parameters */
|
||||
#define BSIM4v6_MOD_TEMPEOT 65
|
||||
|
|
|
|||
Loading…
Reference in New Issue