30 double EffectiveLength;
31 double EffectiveWidth;
32 double CoxWoverL, Inv_L, Inv_W, tmp;
47 model->
B2Cox = 3.453e-13/(model->
B2tox * 1.0e-4);
62 while ((pSizeDependParamKnot !=
NULL) && Size_Not_Found)
63 {
if ((here->
B2l == pSizeDependParamKnot->
Length)
64 && (here->
B2w == pSizeDependParamKnot->
Width))
66 here->
pParam = pSizeDependParamKnot;
69 { pLastKnot = pSizeDependParamKnot;
70 pSizeDependParamKnot = pSizeDependParamKnot->
pNext;
77 if (pLastKnot ==
NULL)
83 EffectiveLength = here->
B2l - model->
B2deltaL * 1.0e-6;
84 EffectiveWidth = here->
B2w - model->
B2deltaW * 1.0e-6;
86 if(EffectiveLength<=0)
89 namarray[1] = here->
B2name;
91 "B2: mosfet %s, model %s: Effective channel length <=0",
96 if(EffectiveWidth <= 0)
99 namarray[1] = here->
B2name;
101 "B2: mosfet %s, model %s: Effective channel width <=0",
106 Inv_L = 1.0e-6 / EffectiveLength;
107 Inv_W = 1.0e-6 / EffectiveWidth;
115 + model->
B2k1L * Inv_L;
117 + model->
B2k2L * Inv_L;
122 * Inv_W + model->
B2etaBL * Inv_L;
167 CoxWoverL = model->
B2Cox * EffectiveWidth / EffectiveLength;
195 + model->
B2n0L * Inv_L;
197 + model->
B2nBL * Inv_L;
199 + model->
B2nDL * Inv_L;
228 * EffectiveWidth * 1.0e4;
int B2temp(GENmodel *inModel, CKTcircuit *ckt)
struct sBSIM2instance * B2nextInstance
struct bsim2SizeDependParam * pSizeDependParamKnot
double B2bulkJctPotential
struct bsim2SizeDependParam * pNext
double B2sourceConductance
struct sBSIM2model * B2nextModel
struct bsim2SizeDependParam * pParam
double B2gateDrainOverlapCap
double B2drainConductance
double B2gateSourceOverlapCap
double B2gateBulkOverlapCap
double B2sidewallJctPotential