trap tunnel currents for bsim3

This commit is contained in:
dwarning 2022-12-27 10:33:28 +01:00
parent ab3993faa0
commit f7abd2a061
7 changed files with 518 additions and 0 deletions

View File

@ -512,6 +512,43 @@ IOP("vgbr_max", BSIM3_MOD_VGBR_MAX, IF_REAL, "maximum voltage G-B branch"),
IOP("vbsr_max", BSIM3_MOD_VBSR_MAX, IF_REAL, "maximum voltage B-S branch"),
IOP("vbdr_max", BSIM3_MOD_VBDR_MAX, IF_REAL, "maximum voltage B-D branch"),
/* trap-assisted tunneling current enhancement */
IOP("bsim4diode", BSIM3_MOD_BSIM4DIODE, IF_INTEGER, "flag invoking trap-assisted diode model"),
IOP("jtss", BSIM3_MOD_JTSS, IF_REAL, "Bottom trap-assisted saturation current density"),
IOP("jtsd", BSIM3_MOD_JTSD, IF_REAL, "Bottom trap-assisted saturation current density"),
IOP("jtssws", BSIM3_MOD_JTSSWS, IF_REAL, "STI sidewall trap-assisted saturation current density"),
IOP("jtsswd", BSIM3_MOD_JTSSWD, IF_REAL, "STI sidewall trap-assisted saturation current density"),
IOP("jtsswgs", BSIM3_MOD_JTSSWGS, IF_REAL, "Gate-edge sidewall trap-assisted saturation current density"),
IOP("jtsswgd", BSIM3_MOD_JTSSWGD, IF_REAL, "Gate-edge sidewall trap-assisted saturation current density"),
IOP("njts", BSIM3_MOD_NJTS, IF_REAL, "Non-ideality factor for JTSS and JTSD"),
IOP("njtsd", BSIM3_MOD_NJTSD, IF_REAL, "Non-ideality factor for JTSD"),
IOP("njtssw", BSIM3_MOD_NJTSSW, IF_REAL, "Non-ideality factor for JTSSWS and JTSSWD"),
IOP("njtsswd", BSIM3_MOD_NJTSSWD, IF_REAL, "Non-ideality factor for JTSSWS"),
IOP("njtsswg", BSIM3_MOD_NJTSSWG, IF_REAL, "Non-ideality factor for JTSSWGS"),
IOP("njtsswgd", BSIM3_MOD_NJTSSWGD, IF_REAL, "Non-ideality factor for JTSSWGD"),
IOP("vtss", BSIM3_MOD_VTSS, IF_REAL, "Bottom source junction trap-assisted current voltage dependent parameter"),
IOP("vtsd", BSIM3_MOD_VTSD, IF_REAL, "Bottom drain junction trap-assisted current voltage dependent parameter"),
IOP("vtssws", BSIM3_MOD_VTSSWS, IF_REAL, "Unit length trap-assisted current voltage dependent parameter for sidewall source junctio"),
IOP("vtsswd", BSIM3_MOD_VTSSWD, IF_REAL, "Unit length trap-assisted current voltage dependent parameter for sidewall drain junction"),
IOP("vtsswgs", BSIM3_MOD_VTSSWGS, IF_REAL, "Unit length trap-assisted current voltage dependent parameter for gate-edge sidewall source junction"),
IOP("vtsswgd", BSIM3_MOD_VTSSWGD, IF_REAL, "Unit length trap-assisted current voltage dependent parameter for gate-edge sidewall drain junction"),
IOP("xtss", BSIM3_MOD_XTSS, IF_REAL, "Power dependence of JTSS, JTSD on temperature"),
IOP("xtsd", BSIM3_MOD_XTSD, IF_REAL, "Power dependence of JTSS, JTSD on temperature"),
IOP("xtssws", BSIM3_MOD_XTSSWS, IF_REAL, "Power dependence of JTSSWS, JTSSWD on temperature"),
IOP("xtsswd", BSIM3_MOD_XTSSWD, IF_REAL, "Power dependence of JTSSWS, JTSSWD on temperature"),
IOP("xtsswgs", BSIM3_MOD_XTSSWGS, IF_REAL, "Power dependence of JTSSWGS, JTSSWGD on temperature"),
IOP("xtsswgd", BSIM3_MOD_XTSSWGD, IF_REAL, "Power dependence of JTSSWGS, JTSSWGD on temperature"),
IOP("tnjts", BSIM3_MOD_TNJTS, IF_REAL, "Temperature coefficient for NJTS"),
IOP("tnjtssw", BSIM3_MOD_TNJTSSW, IF_REAL, "Temperature coefficient for NJTSD"),
IOP("tnjtsswg", BSIM3_MOD_TNJTSSWG, IF_REAL, "Temperature coefficient for NJTSSW"),
IOP("tnjtsd", BSIM3_MOD_TNJTSD, IF_REAL, "Temperature coefficient for NJTSSWD"),
IOP("tnjtsswd", BSIM3_MOD_TNJTSSWD, IF_REAL, "Temperature coefficient for NJTSSWG"),
IOP("tnjtsswgd", BSIM3_MOD_TNJTSSWGD, IF_REAL, "Temperature coefficient for NJTSSWGD"),
IP( "nmos", BSIM3_MOD_NMOS, IF_FLAG, "Flag to indicate NMOS"),
IP( "pmos", BSIM3_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
};

View File

@ -479,6 +479,44 @@ for (; model != NULL; model = BSIM3nextModel(model))
}
}
}
/* trap-assisted tunneling current enhancement */
if ((model->BSIM3acmMod == 12) && (model->BSIM3bsim4diodeGiven))
{
double t1 = 0.0;
if (model->BSIM3jtss > 0.0)
{
t1 = exp(-vbs/(model->BSIM3tNjts*model->BSIM3vtm)*(model->BSIM3vtss/(model->BSIM3vtss-vbs)))-1;
here->BSIM3cbs -= here->BSIM3sourceArea * model->BSIM3tJtss * t1;
}
if (model->BSIM3jtssws > 0.0)
{
t1 = exp(-vbs/(model->BSIM3tNjtssw*model->BSIM3vtm)*(model->BSIM3vtssws/(model->BSIM3vtssws-vbs)))-1;
here->BSIM3cbs -= here->BSIM3sourcePerimeter * model->BSIM3tJtssws * t1;
}
if (model->BSIM3jtsswgs > 0.0)
{
t1 = exp(-vbs/(model->BSIM3tNjtsswg*model->BSIM3vtm)*(model->BSIM3vtsswgs/(model->BSIM3vtsswgs-vbs)))-1;
here->BSIM3cbs -= pParam->BSIM3weff * model->BSIM3tJtsswgs * t1;
}
if (model->BSIM3jtsd > 0.0)
{
t1 = exp(-vbd/(model->BSIM3tNjtsd*model->BSIM3vtm)*(model->BSIM3vtsd/(model->BSIM3vtsd-vbd)))-1;
here->BSIM3cbd -= here->BSIM3drainArea * model->BSIM3tJtsd * t1;
}
if (model->BSIM3jtsswd > 0.0)
{
t1 = exp(-vbd/(model->BSIM3tNjtsswd*model->BSIM3vtm)*(model->BSIM3vtsswd/(model->BSIM3vtsswd-vbd)))-1;
here->BSIM3cbd -= here->BSIM3drainPerimeter * model->BSIM3tJtsswd * t1;
}
if (model->BSIM3jtsswgd > 0.0)
{
t1 = exp(-vbd/(model->BSIM3tNjtsswgd*model->BSIM3vtm)*(model->BSIM3vtsswgd/(model->BSIM3vtsswgd-vbd)))-1;
here->BSIM3cbd -= pParam->BSIM3weff * model->BSIM3tJtsswgd * t1;
}
}
/* End of diode DC model */
if (vds >= 0.0)

View File

@ -1318,6 +1318,102 @@ IFvalue *value)
value->rValue = model->BSIM3vbdrMax;
return(OK);
/* trap-assisted tunneling current enhancement */
case BSIM3_MOD_BSIM4DIODE:
value->iValue = model->BSIM3bsim4diode;
return(OK);
case BSIM3_MOD_JTSS:
value->rValue = model->BSIM3jtss;
return(OK);
case BSIM3_MOD_JTSD:
value->rValue = model->BSIM3jtsd;
return(OK);
case BSIM3_MOD_JTSSWS:
value->rValue = model->BSIM3jtssws;
return(OK);
case BSIM3_MOD_JTSSWD:
value->rValue = model->BSIM3jtsswd;
return(OK);
case BSIM3_MOD_JTSSWGS:
value->rValue = model->BSIM3jtsswgs;
return(OK);
case BSIM3_MOD_JTSSWGD:
value->rValue = model->BSIM3jtsswgd;
return(OK);
case BSIM3_MOD_NJTS:
value->rValue = model->BSIM3njts;
return(OK);
case BSIM3_MOD_NJTSSW:
value->rValue = model->BSIM3njtssw;
return(OK);
case BSIM3_MOD_NJTSSWG:
value->rValue = model->BSIM3njtsswg;
return(OK);
case BSIM3_MOD_NJTSD:
value->rValue = model->BSIM3njtsd;
return(OK);
case BSIM3_MOD_NJTSSWD:
value->rValue = model->BSIM3njtsswd;
return(OK);
case BSIM3_MOD_NJTSSWGD:
value->rValue = model->BSIM3njtsswgd;
return(OK);
case BSIM3_MOD_VTSS:
value->rValue = model->BSIM3vtss;
return(OK);
case BSIM3_MOD_VTSD:
value->rValue = model->BSIM3vtsd;
return(OK);
case BSIM3_MOD_VTSSWS:
value->rValue = model->BSIM3vtssws;
return(OK);
case BSIM3_MOD_VTSSWD:
value->rValue = model->BSIM3vtsswd;
return(OK);
case BSIM3_MOD_VTSSWGS:
value->rValue = model->BSIM3vtsswgs;
return(OK);
case BSIM3_MOD_VTSSWGD:
value->rValue = model->BSIM3vtsswgd;
return(OK);
case BSIM3_MOD_XTSS:
value->rValue = model->BSIM3xtss;
return(OK);
case BSIM3_MOD_XTSD:
value->rValue = model->BSIM3xtsd;
return(OK);
case BSIM3_MOD_XTSSWS:
value->rValue = model->BSIM3xtssws;
return(OK);
case BSIM3_MOD_XTSSWD:
value->rValue = model->BSIM3xtsswd;
return(OK);
case BSIM3_MOD_TNJTS:
value->rValue = model->BSIM3tnjts;
return(OK);
case BSIM3_MOD_TNJTSSW:
value->rValue = model->BSIM3tnjtssw;
return(OK);
case BSIM3_MOD_TNJTSSWG:
value->rValue = model->BSIM3tnjtsswg;
return(OK);
case BSIM3_MOD_TNJTSD:
value->rValue = model->BSIM3tnjtsd;
return(OK);
case BSIM3_MOD_TNJTSSWD:
value->rValue = model->BSIM3tnjtsswd;
return(OK);
case BSIM3_MOD_TNJTSSWGD:
value->rValue = model->BSIM3tnjtsswgd;
return(OK);
default:
return(E_BADPARM);
}

View File

@ -1765,6 +1765,127 @@ GENmodel *inMod)
mod->BSIM3vbdrMaxGiven = TRUE;
break;
/* trap-assisted tunneling current enhancement */
case BSIM3_MOD_BSIM4DIODE:
mod->BSIM3bsim4diode = value->iValue;
mod->BSIM3bsim4diodeGiven = TRUE;
break;
case BSIM3_MOD_JTSS:
mod->BSIM3jtss = value->rValue;
mod->BSIM3jtssGiven = TRUE;
break;
case BSIM3_MOD_JTSD:
mod->BSIM3jtsd = value->rValue;
mod->BSIM3jtsdGiven = TRUE;
break;
case BSIM3_MOD_JTSSWS:
mod->BSIM3jtssws = value->rValue;
mod->BSIM3jtsswsGiven = TRUE;
break;
case BSIM3_MOD_JTSSWD:
mod->BSIM3jtsswd = value->rValue;
mod->BSIM3jtsswdGiven = TRUE;
break;
case BSIM3_MOD_JTSSWGS:
mod->BSIM3jtsswgs = value->rValue;
mod->BSIM3jtsswgsGiven = TRUE;
break;
case BSIM3_MOD_JTSSWGD:
mod->BSIM3jtsswgd = value->rValue;
mod->BSIM3jtsswgdGiven = TRUE;
break;
case BSIM3_MOD_NJTS:
mod->BSIM3njts = value->rValue;
mod->BSIM3njtsGiven = TRUE;
break;
case BSIM3_MOD_NJTSSW:
mod->BSIM3njtssw = value->rValue;
mod->BSIM3njtsswGiven = TRUE;
break;
case BSIM3_MOD_NJTSSWG:
mod->BSIM3njtsswg = value->rValue;
mod->BSIM3njtsswgGiven = TRUE;
break;
case BSIM3_MOD_NJTSD:
mod->BSIM3njtsd = value->rValue;
mod->BSIM3njtsdGiven = TRUE;
break;
case BSIM3_MOD_NJTSSWD:
mod->BSIM3njtsswd = value->rValue;
mod->BSIM3njtsswdGiven = TRUE;
break;
case BSIM3_MOD_NJTSSWGD:
mod->BSIM3njtsswgd = value->rValue;
mod->BSIM3njtsswgdGiven = TRUE;
break;
case BSIM3_MOD_VTSS:
mod->BSIM3vtss = value->rValue;
mod->BSIM3vtssGiven = TRUE;
break;
case BSIM3_MOD_VTSD:
mod->BSIM3vtsd = value->rValue;
mod->BSIM3vtsdGiven = TRUE;
break;
case BSIM3_MOD_VTSSWS:
mod->BSIM3vtssws = value->rValue;
mod->BSIM3vtsswsGiven = TRUE;
break;
case BSIM3_MOD_VTSSWD:
mod->BSIM3vtsswd = value->rValue;
mod->BSIM3vtsswdGiven = TRUE;
break;
case BSIM3_MOD_VTSSWGS:
mod->BSIM3vtsswgs = value->rValue;
mod->BSIM3vtsswgsGiven = TRUE;
break;
case BSIM3_MOD_VTSSWGD:
mod->BSIM3vtsswgd = value->rValue;
mod->BSIM3vtsswgdGiven = TRUE;
break;
case BSIM3_MOD_XTSS:
mod->BSIM3xtss = value->rValue;
mod->BSIM3xtssGiven = TRUE;
break;
case BSIM3_MOD_XTSD:
mod->BSIM3xtsd = value->rValue;
mod->BSIM3xtsdGiven = TRUE;
break;
case BSIM3_MOD_XTSSWS:
mod->BSIM3xtssws = value->rValue;
mod->BSIM3xtsswsGiven = TRUE;
break;
case BSIM3_MOD_XTSSWD:
mod->BSIM3xtsswd = value->rValue;
mod->BSIM3xtsswdGiven = TRUE;
break;
case BSIM3_MOD_TNJTS:
mod->BSIM3tnjts = value->rValue;
mod->BSIM3tnjtsGiven = TRUE;
break;
case BSIM3_MOD_TNJTSSW:
mod->BSIM3tnjtssw = value->rValue;
mod->BSIM3tnjtsswGiven = TRUE;
break;
case BSIM3_MOD_TNJTSSWG:
mod->BSIM3tnjtsswg = value->rValue;
mod->BSIM3tnjtsswgGiven = TRUE;
break;
case BSIM3_MOD_TNJTSD:
mod->BSIM3tnjtsd = value->rValue;
mod->BSIM3tnjtsdGiven = TRUE;
break;
case BSIM3_MOD_TNJTSSWD:
mod->BSIM3tnjtsswd = value->rValue;
mod->BSIM3tnjtsswdGiven = TRUE;
break;
case BSIM3_MOD_TNJTSSWGD:
mod->BSIM3tnjtsswgd = value->rValue;
mod->BSIM3tnjtsswgdGiven = TRUE;
break;
case BSIM3_MOD_NMOS :
if(value->iValue) {
mod->BSIM3type = 1;

View File

@ -919,6 +919,74 @@ BSIM3instance **InstArray;
if (!model->BSIM3vbdrMaxGiven)
model->BSIM3vbdrMax = 1e99;
/* trap-assisted tunneling current enhancement */
if (!model->BSIM3bsim4diodeGiven)
model->BSIM3bsim4diode = 0;
if (!model->BSIM3jtssGiven)
model->BSIM3jtss = 0.0;
if (!model->BSIM3jtsdGiven)
model->BSIM3jtsd = model->BSIM3jtss;
if (!model->BSIM3jtsswsGiven)
model->BSIM3jtssws = 0.0;
if (!model->BSIM3jtsswdGiven)
model->BSIM3jtsswd = model->BSIM3jtssws;
if (!model->BSIM3jtsswgsGiven)
model->BSIM3jtsswgs = 0.0;
if (!model->BSIM3jtsswgdGiven)
model->BSIM3jtsswgd = model->BSIM3jtsswgs;
if (!model->BSIM3njtsGiven)
model->BSIM3njts = 20.0;
if (!model->BSIM3njtsswGiven)
model->BSIM3njtssw = 20.0;
if (!model->BSIM3njtsswgGiven)
model->BSIM3njtsswg = 20.0;
if (!model->BSIM3njtsdGiven)
model->BSIM3njtsd = model->BSIM3njts;
if (!model->BSIM3njtsswdGiven)
model->BSIM3njtsswd = model->BSIM3njtssw;
if (!model->BSIM3njtsswgdGiven)
model->BSIM3njtsswgd = model->BSIM3njtsswg;
if (!model->BSIM3vtssGiven)
model->BSIM3vtss = 10.0;
if (!model->BSIM3vtsdGiven)
model->BSIM3vtsd = model->BSIM3vtss;
if (!model->BSIM3vtsswsGiven)
model->BSIM3vtssws = 10.0;
if (!model->BSIM3vtsswdGiven)
model->BSIM3vtsswd = model->BSIM3vtssws;
if (!model->BSIM3vtsswgsGiven)
model->BSIM3vtsswgs = 10.0;
if (!model->BSIM3vtsswgdGiven)
model->BSIM3vtsswgd = model->BSIM3vtsswgs;
if (!model->BSIM3xtssGiven)
model->BSIM3xtss = 0.02;
if (!model->BSIM3xtsdGiven)
model->BSIM3xtsd = 0.02;
if (!model->BSIM3xtsswsGiven)
model->BSIM3xtssws = 0.02;
if (!model->BSIM3xtsswdGiven)
model->BSIM3xtsswd = 0.02;
if (!model->BSIM3xtsswgsGiven)
model->BSIM3xtsswgs = 0.02;
if (!model->BSIM3xtsswgdGiven)
model->BSIM3xtsswgd = 0.02;
if (!model->BSIM3tnjtsGiven)
model->BSIM3tnjts = 0.0;
if (!model->BSIM3tnjtsswGiven)
model->BSIM3tnjtssw = 0.0;
if (!model->BSIM3tnjtsswgGiven)
model->BSIM3tnjtsswg = 0.0;
if (!model->BSIM3tnjtsdGiven)
model->BSIM3tnjtsd = 0.0;
if (!model->BSIM3tnjtsswdGiven)
model->BSIM3tnjtsswd = 0.0;
if (!model->BSIM3tnjtsswgdGiven)
model->BSIM3tnjtsswgd = 0.0;
/* loop through all the instances of the model */
for (here = BSIM3instances(model); here != NULL ;
here=BSIM3nextInstance(here))

View File

@ -148,6 +148,40 @@ int Size_Not_Found, error;
}
/* End of junction capacitance */
/* trap-assisted tunneling current enhancement */
if ((model->BSIM3acmMod == 12) && (model->BSIM3bsim4diodeGiven))
{
model->BSIM3tJtss = model->BSIM3jtss
* exp(model->BSIM3xtss * Eg0 / ((model->BSIM3vtm * TRatio) - 1));
model->BSIM3tJtssws = model->BSIM3jtssws
* exp(model->BSIM3xtssws * Eg0 / ((model->BSIM3vtm * TRatio) - 1));
model->BSIM3tJtsswgs = model->BSIM3jtsswgs
* exp(model->BSIM3xtsswgs * Eg0 / ((model->BSIM3vtm * TRatio) - 1));
model->BSIM3tJtsd = model->BSIM3jtsd
* exp(model->BSIM3xtsd * Eg0 / ((model->BSIM3vtm * TRatio) - 1));
model->BSIM3tJtsswd = model->BSIM3jtsswd
* exp(model->BSIM3xtsswd * Eg0 / ((model->BSIM3vtm * TRatio) - 1));
model->BSIM3tJtsswgd = model->BSIM3jtsswgd
* exp(model->BSIM3xtsswgd * Eg0 / ((model->BSIM3vtm * TRatio) - 1));
model->BSIM3tNjts = model->BSIM3njts * (1 + model->BSIM3tnjts * (TRatio - 1));
model->BSIM3tNjtsd = model->BSIM3njtsd * (1 + model->BSIM3tnjtsd * (TRatio - 1));
model->BSIM3tNjtssw = model->BSIM3njtssw * (1 + model->BSIM3tnjtssw * (TRatio - 1));
model->BSIM3tNjtsswd = model->BSIM3njtsswd * (1 + model->BSIM3tnjtsswd * (TRatio - 1));
model->BSIM3tNjtsswg = model->BSIM3njtsswg * (1 + model->BSIM3tnjtsswg * (TRatio - 1));
model->BSIM3tNjtsswgd = model->BSIM3njtsswgd * (1 + model->BSIM3tnjtsswgd * (TRatio - 1));
}
/* loop through all the instances of the model */
/* MCJ: Length and Width not initialized */
for (here = BSIM3instances(model); here != NULL;

View File

@ -881,6 +881,56 @@ typedef struct sBSIM3model
double BSIM3vbsrMax;
double BSIM3vbdrMax;
/* trap-assisted tunneling current enhancement */
int BSIM3bsim4diode;
double BSIM3jtss;
double BSIM3jtsd;
double BSIM3jtssws;
double BSIM3jtsswd;
double BSIM3jtsswgs;
double BSIM3jtsswgd;
double BSIM3njts;
double BSIM3njtssw;
double BSIM3njtsswg;
double BSIM3njtsd;
double BSIM3njtsswd;
double BSIM3njtsswgd;
double BSIM3vtss;
double BSIM3vtsd;
double BSIM3vtssws;
double BSIM3vtsswd;
double BSIM3vtsswgs;
double BSIM3vtsswgd;
double BSIM3xtss;
double BSIM3xtsd;
double BSIM3xtssws;
double BSIM3xtsswd;
double BSIM3xtsswgs;
double BSIM3xtsswgd;
double BSIM3tnjts;
double BSIM3tnjtssw;
double BSIM3tnjtsswg;
double BSIM3tnjtsd;
double BSIM3tnjtsswd;
double BSIM3tnjtsswgd;
double BSIM3tJtss;
double BSIM3tJtsd;
double BSIM3tJtssws;
double BSIM3tJtsswd;
double BSIM3tJtsswgs;
double BSIM3tJtsswgd;
double BSIM3tNjts;
double BSIM3tNjtssw;
double BSIM3tNjtsswg;
double BSIM3tNjtsd;
double BSIM3tNjtsswd;
double BSIM3tNjtsswgd;
struct bsim3SizeDependParam *pSizeDependParamKnot;
@ -1338,6 +1388,43 @@ typedef struct sBSIM3model
unsigned BSIM3WminGiven :1;
unsigned BSIM3WmaxGiven :1;
/* trap-assisted tunneling current enhancement */
unsigned BSIM3bsim4diodeGiven :1;
unsigned BSIM3jtssGiven :1;
unsigned BSIM3jtsdGiven :1;
unsigned BSIM3jtsswsGiven :1;
unsigned BSIM3jtsswdGiven :1;
unsigned BSIM3jtsswgsGiven :1;
unsigned BSIM3jtsswgdGiven :1;
unsigned BSIM3njtsGiven :1;
unsigned BSIM3njtsswGiven :1;
unsigned BSIM3njtsswgGiven :1;
unsigned BSIM3njtsdGiven :1;
unsigned BSIM3njtsswdGiven :1;
unsigned BSIM3njtsswgdGiven :1;
unsigned BSIM3vtssGiven :1;
unsigned BSIM3vtsdGiven :1;
unsigned BSIM3vtsswsGiven :1;
unsigned BSIM3vtsswdGiven :1;
unsigned BSIM3vtsswgsGiven :1;
unsigned BSIM3vtsswgdGiven :1;
unsigned BSIM3xtssGiven :1;
unsigned BSIM3xtsdGiven :1;
unsigned BSIM3xtsswsGiven :1;
unsigned BSIM3xtsswdGiven :1;
unsigned BSIM3xtsswgsGiven :1;
unsigned BSIM3xtsswgdGiven :1;
unsigned BSIM3tnjtsGiven :1;
unsigned BSIM3tnjtsswGiven :1;
unsigned BSIM3tnjtsswgGiven :1;
unsigned BSIM3tnjtsdGiven :1;
unsigned BSIM3tnjtsswdGiven :1;
unsigned BSIM3tnjtsswgdGiven :1;
} BSIM3model;
@ -1908,6 +1995,43 @@ typedef struct sBSIM3model
#define BSIM3_MOD_VBSR_MAX 810
#define BSIM3_MOD_VBDR_MAX 811
/* trap-assisted tunneling current enhancement */
#define BSIM3_MOD_BSIM4DIODE 820
#define BSIM3_MOD_JTSS 821
#define BSIM3_MOD_JTSD 822
#define BSIM3_MOD_JTSSWS 823
#define BSIM3_MOD_JTSSWD 824
#define BSIM3_MOD_JTSSWGS 825
#define BSIM3_MOD_JTSSWGD 826
#define BSIM3_MOD_NJTS 827
#define BSIM3_MOD_NJTSSW 828
#define BSIM3_MOD_NJTSSWG 829
#define BSIM3_MOD_NJTSD 830
#define BSIM3_MOD_NJTSSWD 831
#define BSIM3_MOD_NJTSSWGD 832
#define BSIM3_MOD_VTSS 833
#define BSIM3_MOD_VTSD 834
#define BSIM3_MOD_VTSSWS 835
#define BSIM3_MOD_VTSSWD 836
#define BSIM3_MOD_VTSSWGS 837
#define BSIM3_MOD_VTSSWGD 838
#define BSIM3_MOD_XTSS 839
#define BSIM3_MOD_XTSD 840
#define BSIM3_MOD_XTSSWS 841
#define BSIM3_MOD_XTSSWD 842
#define BSIM3_MOD_XTSSWGS 843
#define BSIM3_MOD_XTSSWGD 844
#define BSIM3_MOD_TNJTS 845
#define BSIM3_MOD_TNJTSSW 846
#define BSIM3_MOD_TNJTSSWG 847
#define BSIM3_MOD_TNJTSD 848
#define BSIM3_MOD_TNJTSSWD 849
#define BSIM3_MOD_TNJTSSWGD 850
#include "bsim3ext.h"
extern void BSIM3evaluate(double,double,double,BSIM3instance*,BSIM3model*,