Update to version 4.6.4
This commit is contained in:
parent
ca8bbd2695
commit
87e5559088
12
DEVICES
12
DEVICES
|
|
@ -650,7 +650,7 @@ will be updated every time the device specific code is altered or changed to ref
|
||||||
Dir: devices/bsim3
|
Dir: devices/bsim3
|
||||||
Status: TO BE TESTED
|
Status: TO BE TESTED
|
||||||
|
|
||||||
This is the BSIM3v3.2.4 model from Berkeley device group.
|
This is the actual BSIM3 model from Berkeley Device Group.
|
||||||
You can find some test netlists with results for this model
|
You can find some test netlists with results for this model
|
||||||
on its web site.
|
on its web site.
|
||||||
|
|
||||||
|
|
@ -665,17 +665,21 @@ will be updated every time the device specific code is altered or changed to ref
|
||||||
|
|
||||||
11.13 BSIM4 - BSIM model level 4
|
11.13 BSIM4 - BSIM model level 4
|
||||||
|
|
||||||
Ver: 4.2.0 - 4.6.3
|
Ver: 4.2.0 - 4.6.4
|
||||||
Class: M
|
Class: M
|
||||||
Level: 14 & 54, version = 4.2, 4.3, 4.4, 4.5, 4.6.3
|
Level: 14 & 54, version = 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6
|
||||||
Dir: devices/bsim4
|
Dir: devices/bsim4
|
||||||
Status:
|
Status:
|
||||||
|
|
||||||
This is the BSIM4 device model from Berkeley Device Group.
|
This is the actual BSIM4 model from Berkeley Device Group.
|
||||||
Test are available on its web site.
|
Test are available on its web site.
|
||||||
|
|
||||||
Web site: http://www-device.eecs.berkeley.edu/~bsim3/bsim4.html
|
Web site: http://www-device.eecs.berkeley.edu/~bsim3/bsim4.html
|
||||||
|
|
||||||
|
Enhancements over the original model:
|
||||||
|
- Parallel Multiplier
|
||||||
|
- NodesetFix
|
||||||
|
|
||||||
|
|
||||||
11.14 HiSIM - Hiroshima-university STARC IGFET Model
|
11.14 HiSIM - Hiroshima-university STARC IGFET Model
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**** BSIM4.6.2 Released by Wenwei Yang 07/31/2008****/
|
/**** BSIM4.6.2 Released by Wenwei Yang 07/31/2008****/
|
||||||
|
/**** BSIM4.6.4 Update ngspice 08/22/2009 ****/
|
||||||
/**********
|
/**********
|
||||||
* Copyright 2006 Regents of the University of California. All rights reserved.
|
* Copyright 2006 Regents of the University of California. All rights reserved.
|
||||||
* File: b4ld.c of BSIM4.6.2.
|
* File: b4ld.c of BSIM4.6.2.
|
||||||
|
|
@ -1651,6 +1651,7 @@ for (; model != NULL; model = model->BSIM4nextModel)
|
||||||
dEsatL_dVb *= T10;
|
dEsatL_dVb *= T10;
|
||||||
dEsatL_dVb += EsatL * dT10_dVb;
|
dEsatL_dVb += EsatL * dT10_dVb;
|
||||||
EsatL *= T10;
|
EsatL *= T10;
|
||||||
|
Esat = EsatL / Leff; /* bugfix by Wenwei Yang (4.6.4) */
|
||||||
here->BSIM4EsatL = EsatL;
|
here->BSIM4EsatL = EsatL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**** BSIM4.6.2 Released by Wenwei Yang 07/31/2008 ****/
|
/**** BSIM4.6.2 Released by Wenwei Yang 07/31/2008 ****/
|
||||||
|
/**** BSIM4.6.4 Update ngspice 08/22/2009 ****/
|
||||||
/**********
|
/**********
|
||||||
* Copyright 2006 Regents of the University of California. All rights reserved.
|
* Copyright 2006 Regents of the University of California. All rights reserved.
|
||||||
* File: b4noi.c of BSIM4.6.2.
|
* File: b4noi.c of BSIM4.6.2.
|
||||||
|
|
@ -222,10 +222,10 @@ int i;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((*(ckt->CKTstates[0] + here->BSIM4vds)) >= 0.0)
|
if ((*(ckt->CKTstates[0] + here->BSIM4vds)) >= 0.0)
|
||||||
gspr = gspr / (1.0 + npart_theta * npart_theta * gspr
|
gspr = gspr * (1.0 + npart_theta * npart_theta * gspr
|
||||||
/ here->BSIM4IdovVds); /* bugfix */
|
/ here->BSIM4IdovVds); /* bugfix */
|
||||||
else
|
else
|
||||||
gdpr = gdpr / (1.0 + npart_theta * npart_theta * gdpr
|
gdpr = gdpr * (1.0 + npart_theta * npart_theta * gdpr
|
||||||
/ here->BSIM4IdovVds);
|
/ here->BSIM4IdovVds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**** BSIM4.6.2 Released by Wenwei Yang 07/31/2008 ****/
|
/**** BSIM4.6.2 Released by Wenwei Yang 07/31/2008 ****/
|
||||||
|
/**** BSIM4.6.4 Update ngspice 08/22/2009 ****/
|
||||||
/**********
|
/**********
|
||||||
* Copyright 2006 Regents of the University of California. All rights reserved.
|
* Copyright 2006 Regents of the University of California. All rights reserved.
|
||||||
* File: b4set.c of BSIM4.6.2.
|
* File: b4set.c of BSIM4.6.2.
|
||||||
|
|
@ -175,13 +175,13 @@ JOB *job;
|
||||||
if (!model->BSIM4tempModGiven)
|
if (!model->BSIM4tempModGiven)
|
||||||
model->BSIM4tempMod = 0;
|
model->BSIM4tempMod = 0;
|
||||||
else if ((model->BSIM4tempMod != 0) && (model->BSIM4tempMod != 1)
|
else if ((model->BSIM4tempMod != 0) && (model->BSIM4tempMod != 1)
|
||||||
&& (model->BSIM4tempMod != 2))
|
&& (model->BSIM4tempMod != 2) && (model->BSIM4tempMod != 3))
|
||||||
{ model->BSIM4tempMod = 0;
|
{ model->BSIM4tempMod = 0;
|
||||||
printf("Warning: tempMod has been set to its default value: 0.\n");
|
printf("Warning: tempMod has been set to its default value: 0.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!model->BSIM4versionGiven)
|
if (!model->BSIM4versionGiven)
|
||||||
model->BSIM4version = "4.6.3";
|
model->BSIM4version = "4.6.4";
|
||||||
if (!model->BSIM4toxrefGiven)
|
if (!model->BSIM4toxrefGiven)
|
||||||
model->BSIM4toxref = 30.0e-10;
|
model->BSIM4toxref = 30.0e-10;
|
||||||
if (!model->BSIM4eotGiven)
|
if (!model->BSIM4eotGiven)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**** BSIM4.6.3 Released by Wenwei Yang 07/31/2008 ****/
|
/**** BSIM4.6.2 Released by Wenwei Yang 07/31/2008 ****/
|
||||||
|
/**** BSIM4.6.4 Update ngspice 08/22/2009 ****/
|
||||||
/**********
|
/**********
|
||||||
* Copyright 2006 Regents of the University of California. All rights reserved.
|
* Copyright 2006 Regents of the University of California. All rights reserved.
|
||||||
* File: b4temp.c of BSIM4.6.3.
|
* File: b4temp.c of BSIM4.6.3.
|
||||||
|
|
@ -76,18 +76,18 @@ BSIM4model *model = (BSIM4model*) inModel;
|
||||||
BSIM4instance *here;
|
BSIM4instance *here;
|
||||||
struct bsim4SizeDependParam *pSizeDependParamKnot, *pLastKnot, *pParam=NULL;
|
struct bsim4SizeDependParam *pSizeDependParamKnot, *pLastKnot, *pParam=NULL;
|
||||||
double tmp, tmp1, tmp2, tmp3, Eg, Eg0, ni, epssub;
|
double tmp, tmp1, tmp2, tmp3, Eg, Eg0, ni, epssub;
|
||||||
double T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T11, Lnew=0.0, Wnew;
|
double T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, Lnew=0.0, Wnew;
|
||||||
double delTemp, Temp, TRatio, Inv_L, Inv_W, Inv_LW, Vtm0, Tnom;
|
double delTemp, Temp, TRatio, Inv_L, Inv_W, Inv_LW, Vtm0, Tnom;
|
||||||
double dumPs, dumPd, dumAs, dumAd, PowWeffWr;
|
double dumPs, dumPd, dumAs, dumAd, PowWeffWr;
|
||||||
double DMCGeff, DMCIeff, DMDGeff;
|
double DMCGeff, DMCIeff, DMDGeff;
|
||||||
double Nvtms, Nvtmd, SourceSatCurrent, DrainSatCurrent;
|
double Nvtms, Nvtmd, SourceSatCurrent, DrainSatCurrent;
|
||||||
double T10;
|
double T10, T11;
|
||||||
double Inv_saref, Inv_sbref, Inv_sa, Inv_sb, rho, Ldrn, dvth0_lod;
|
double Inv_saref, Inv_sbref, Inv_sa, Inv_sb, rho, Ldrn, dvth0_lod;
|
||||||
double W_tmp, Inv_ODeff, OD_offset, dk2_lod, deta0_lod;
|
double W_tmp, Inv_ODeff, OD_offset, dk2_lod, deta0_lod;
|
||||||
double lnl, lnw, lnnf, rbpbx, rbpby, rbsbx, rbsby, rbdbx, rbdby,bodymode;
|
double lnl, lnw, lnnf, rbpbx, rbpby, rbsbx, rbsby, rbdbx, rbdby,bodymode;
|
||||||
double kvsat, wlod, sceff, Wdrn;
|
double kvsat, wlod, sceff, Wdrn;
|
||||||
double V0, lt1, ltw, Theta0, Delt_vth, Vth_NarrowW, Lpe_Vb, Vth;
|
double V0, lt1, ltw, Theta0, Delt_vth, Vth_NarrowW, Lpe_Vb, Vth;
|
||||||
double n, n0, Vtm=0.0, Vgsteff, Vgs_eff, niter, toxpf, toxpi, Tcen, toxe, epsrox, vddeot;
|
double n, n0, Vgsteff, Vgs_eff, niter, toxpf, toxpi, Tcen, toxe, epsrox, vddeot;
|
||||||
double vtfbphi2eot, phieot, TempRatioeot, Vtm0eot, Vtmeot,vbieot;
|
double vtfbphi2eot, phieot, TempRatioeot, Vtm0eot, Vtmeot,vbieot;
|
||||||
|
|
||||||
int Size_Not_Found, i;
|
int Size_Not_Found, i;
|
||||||
|
|
@ -722,16 +722,6 @@ int Size_Not_Found, i;
|
||||||
+ model->BSIM4luc1 * Inv_L
|
+ model->BSIM4luc1 * Inv_L
|
||||||
+ model->BSIM4wuc1 * Inv_W
|
+ model->BSIM4wuc1 * Inv_W
|
||||||
+ model->BSIM4puc1 * Inv_LW;
|
+ model->BSIM4puc1 * Inv_LW;
|
||||||
|
|
||||||
/*high k mobility*/
|
|
||||||
pParam->BSIM4ucs = model->BSIM4ucs
|
|
||||||
+ model->BSIM4lucs * Inv_L
|
|
||||||
+ model->BSIM4wucs * Inv_W
|
|
||||||
+ model->BSIM4pucs * Inv_LW;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pParam->BSIM4ud = model->BSIM4ud
|
pParam->BSIM4ud = model->BSIM4ud
|
||||||
+ model->BSIM4lud * Inv_L
|
+ model->BSIM4lud * Inv_L
|
||||||
+ model->BSIM4wud * Inv_W
|
+ model->BSIM4wud * Inv_W
|
||||||
|
|
@ -1160,13 +1150,6 @@ int Size_Not_Found, i;
|
||||||
/* Internal Rds(V) in IV */
|
/* Internal Rds(V) in IV */
|
||||||
pParam->BSIM4rds0 = pParam->BSIM4rdsw * T10 * here->BSIM4nf / PowWeffWr;
|
pParam->BSIM4rds0 = pParam->BSIM4rdsw * T10 * here->BSIM4nf / PowWeffWr;
|
||||||
pParam->BSIM4rdswmin = model->BSIM4rdswmin * T10 * here->BSIM4nf / PowWeffWr;
|
pParam->BSIM4rdswmin = model->BSIM4rdswmin * T10 * here->BSIM4nf / PowWeffWr;
|
||||||
}
|
|
||||||
/*high k mobility*/
|
|
||||||
if (model->BSIM4mobMod == 3)
|
|
||||||
{
|
|
||||||
pParam->BSIM4ua = pParam->BSIM4ua * pow(TRatio, pParam->BSIM4ua1) ;
|
|
||||||
pParam->BSIM4uc = pParam->BSIM4uc * pow(TRatio, pParam->BSIM4uc1) ;
|
|
||||||
pParam->BSIM4ud = pParam->BSIM4ud * pow(TRatio, pParam->BSIM4ud1) ;
|
|
||||||
}
|
}
|
||||||
if (T1 < 0.0)
|
if (T1 < 0.0)
|
||||||
{ T1 = 0.0;
|
{ T1 = 0.0;
|
||||||
|
|
@ -2041,7 +2024,7 @@ int Size_Not_Found, i;
|
||||||
n0 = (1.0 + 3.0 * tmp3) * T0;
|
n0 = (1.0 + 3.0 * tmp3) * T0;
|
||||||
}
|
}
|
||||||
|
|
||||||
T0 = n0 * Vtm;
|
T0 = n0 * model->BSIM4vtm;
|
||||||
T1 = pParam->BSIM4voffcbn;
|
T1 = pParam->BSIM4voffcbn;
|
||||||
T2 = T1/T0;
|
T2 = T1/T0;
|
||||||
if (T2 < -EXP_THRESHOLD)
|
if (T2 < -EXP_THRESHOLD)
|
||||||
|
|
@ -2186,7 +2169,7 @@ int Size_Not_Found, i;
|
||||||
{ IFuid namarray[2];
|
{ IFuid namarray[2];
|
||||||
namarray[0] = model->BSIM4modName;
|
namarray[0] = model->BSIM4modName;
|
||||||
namarray[1] = here->BSIM4name;
|
namarray[1] = here->BSIM4name;
|
||||||
(*(SPfrontEnd->IFerror)) (ERR_FATAL, "Fatal error(s) detected during BSIM4.6.3 parameter checking for %s in model %s", namarray);
|
(*(SPfrontEnd->IFerror)) (ERR_FATAL, "Fatal error(s) detected during BSIM4.6.4 parameter checking for %s in model %s", namarray);
|
||||||
return(E_BADPARM);
|
return(E_BADPARM);
|
||||||
}
|
}
|
||||||
} /* End instance */
|
} /* End instance */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue