📄 b3v0temp.c
字号:
pParam->BSIM3v0vth0 = model->BSIM3v0vth0 + model->BSIM3v0lvth0 * Inv_L + model->BSIM3v0wvth0 * Inv_W + model->BSIM3v0pvth0 * Inv_LW; pParam->BSIM3v0ua = model->BSIM3v0ua + model->BSIM3v0lua * Inv_L + model->BSIM3v0wua * Inv_W + model->BSIM3v0pua * Inv_LW; pParam->BSIM3v0ua1 = model->BSIM3v0ua1 + model->BSIM3v0lua1 * Inv_L + model->BSIM3v0wua1 * Inv_W + model->BSIM3v0pua1 * Inv_LW; pParam->BSIM3v0ub = model->BSIM3v0ub + model->BSIM3v0lub * Inv_L + model->BSIM3v0wub * Inv_W + model->BSIM3v0pub * Inv_LW; pParam->BSIM3v0ub1 = model->BSIM3v0ub1 + model->BSIM3v0lub1 * Inv_L + model->BSIM3v0wub1 * Inv_W + model->BSIM3v0pub1 * Inv_LW; pParam->BSIM3v0uc = model->BSIM3v0uc + model->BSIM3v0luc * Inv_L + model->BSIM3v0wuc * Inv_W + model->BSIM3v0puc * Inv_LW; pParam->BSIM3v0uc1 = model->BSIM3v0uc1 + model->BSIM3v0luc1 * Inv_L + model->BSIM3v0wuc1 * Inv_W + model->BSIM3v0puc1 * Inv_LW; pParam->BSIM3v0u0 = model->BSIM3v0u0 + model->BSIM3v0lu0 * Inv_L + model->BSIM3v0wu0 * Inv_W + model->BSIM3v0pu0 * Inv_LW; pParam->BSIM3v0ute = model->BSIM3v0ute + model->BSIM3v0lute * Inv_L + model->BSIM3v0wute * Inv_W + model->BSIM3v0pute * Inv_LW; pParam->BSIM3v0voff = model->BSIM3v0voff + model->BSIM3v0lvoff * Inv_L + model->BSIM3v0wvoff * Inv_W + model->BSIM3v0pvoff * Inv_LW; pParam->BSIM3v0delta = model->BSIM3v0delta + model->BSIM3v0ldelta * Inv_L + model->BSIM3v0wdelta * Inv_W + model->BSIM3v0pdelta * Inv_LW; pParam->BSIM3v0rdsw = model->BSIM3v0rdsw + model->BSIM3v0lrdsw * Inv_L + model->BSIM3v0wrdsw * Inv_W + model->BSIM3v0prdsw * Inv_LW; pParam->BSIM3v0prwg = model->BSIM3v0prwg + model->BSIM3v0lprwg * Inv_L + model->BSIM3v0wprwg * Inv_W + model->BSIM3v0pprwg * Inv_LW; pParam->BSIM3v0prwb = model->BSIM3v0prwb + model->BSIM3v0lprwb * Inv_L + model->BSIM3v0wprwb * Inv_W + model->BSIM3v0pprwb * Inv_LW; pParam->BSIM3v0prt = model->BSIM3v0prt + model->BSIM3v0lprt * Inv_L + model->BSIM3v0wprt * Inv_W + model->BSIM3v0pprt * Inv_LW; pParam->BSIM3v0eta0 = model->BSIM3v0eta0 + model->BSIM3v0leta0 * Inv_L + model->BSIM3v0weta0 * Inv_W + model->BSIM3v0peta0 * Inv_LW; pParam->BSIM3v0etab = model->BSIM3v0etab + model->BSIM3v0letab * Inv_L + model->BSIM3v0wetab * Inv_W + model->BSIM3v0petab * Inv_LW; pParam->BSIM3v0pclm = model->BSIM3v0pclm + model->BSIM3v0lpclm * Inv_L + model->BSIM3v0wpclm * Inv_W + model->BSIM3v0ppclm * Inv_LW; pParam->BSIM3v0pdibl1 = model->BSIM3v0pdibl1 + model->BSIM3v0lpdibl1 * Inv_L + model->BSIM3v0wpdibl1 * Inv_W + model->BSIM3v0ppdibl1 * Inv_LW; pParam->BSIM3v0pdibl2 = model->BSIM3v0pdibl2 + model->BSIM3v0lpdibl2 * Inv_L + model->BSIM3v0wpdibl2 * Inv_W + model->BSIM3v0ppdibl2 * Inv_LW; pParam->BSIM3v0pdiblb = model->BSIM3v0pdiblb + model->BSIM3v0lpdiblb * Inv_L + model->BSIM3v0wpdiblb * Inv_W + model->BSIM3v0ppdiblb * Inv_LW; pParam->BSIM3v0pscbe1 = model->BSIM3v0pscbe1 + model->BSIM3v0lpscbe1 * Inv_L + model->BSIM3v0wpscbe1 * Inv_W + model->BSIM3v0ppscbe1 * Inv_LW; pParam->BSIM3v0pscbe2 = model->BSIM3v0pscbe2 + model->BSIM3v0lpscbe2 * Inv_L + model->BSIM3v0wpscbe2 * Inv_W + model->BSIM3v0ppscbe2 * Inv_LW; pParam->BSIM3v0pvag = model->BSIM3v0pvag + model->BSIM3v0lpvag * Inv_L + model->BSIM3v0wpvag * Inv_W + model->BSIM3v0ppvag * Inv_LW; pParam->BSIM3v0wr = model->BSIM3v0wr + model->BSIM3v0lwr * Inv_L + model->BSIM3v0wwr * Inv_W + model->BSIM3v0pwr * Inv_LW; pParam->BSIM3v0dwg = model->BSIM3v0dwg + model->BSIM3v0ldwg * Inv_L + model->BSIM3v0wdwg * Inv_W + model->BSIM3v0pdwg * Inv_LW; pParam->BSIM3v0dwb = model->BSIM3v0dwb + model->BSIM3v0ldwb * Inv_L + model->BSIM3v0wdwb * Inv_W + model->BSIM3v0pdwb * Inv_LW; pParam->BSIM3v0b0 = model->BSIM3v0b0 + model->BSIM3v0lb0 * Inv_L + model->BSIM3v0wb0 * Inv_W + model->BSIM3v0pb0 * Inv_LW; pParam->BSIM3v0b1 = model->BSIM3v0b1 + model->BSIM3v0lb1 * Inv_L + model->BSIM3v0wb1 * Inv_W + model->BSIM3v0pb1 * Inv_LW; pParam->BSIM3v0alpha0 = model->BSIM3v0alpha0 + model->BSIM3v0lalpha0 * Inv_L + model->BSIM3v0walpha0 * Inv_W + model->BSIM3v0palpha0 * Inv_LW; pParam->BSIM3v0beta0 = model->BSIM3v0beta0 + model->BSIM3v0lbeta0 * Inv_L + model->BSIM3v0wbeta0 * Inv_W + model->BSIM3v0pbeta0 * Inv_LW; /* CV model */ pParam->BSIM3v0elm = model->BSIM3v0elm + model->BSIM3v0lelm * Inv_L + model->BSIM3v0welm * Inv_W + model->BSIM3v0pelm * Inv_LW; pParam->BSIM3v0cgsl = model->BSIM3v0cgsl + model->BSIM3v0lcgsl * Inv_L + model->BSIM3v0wcgsl * Inv_W + model->BSIM3v0pcgsl * Inv_LW; pParam->BSIM3v0cgdl = model->BSIM3v0cgdl + model->BSIM3v0lcgdl * Inv_L + model->BSIM3v0wcgdl * Inv_W + model->BSIM3v0pcgdl * Inv_LW; pParam->BSIM3v0ckappa = model->BSIM3v0ckappa + model->BSIM3v0lckappa * Inv_L + model->BSIM3v0wckappa * Inv_W + model->BSIM3v0pckappa * Inv_LW; pParam->BSIM3v0cf = model->BSIM3v0cf + model->BSIM3v0lcf * Inv_L + model->BSIM3v0wcf * Inv_W + model->BSIM3v0pcf * Inv_LW; pParam->BSIM3v0clc = model->BSIM3v0clc + model->BSIM3v0lclc * Inv_L + model->BSIM3v0wclc * Inv_W + model->BSIM3v0pclc * Inv_LW; pParam->BSIM3v0cle = model->BSIM3v0cle + model->BSIM3v0lcle * Inv_L + model->BSIM3v0wcle * Inv_W + model->BSIM3v0pcle * Inv_LW; pParam->BSIM3v0abulkCVfactor = 1.0 + pow((pParam->BSIM3v0clc / pParam->BSIM3v0leff), pParam->BSIM3v0cle); pParam->BSIM3v0cgdo = (model->BSIM3v0cgdo + pParam->BSIM3v0cf) * pParam->BSIM3v0weffCV; pParam->BSIM3v0cgso = (model->BSIM3v0cgso + pParam->BSIM3v0cf) * pParam->BSIM3v0weffCV; pParam->BSIM3v0cgbo = model->BSIM3v0cgbo * pParam->BSIM3v0leffCV; T0 = (TRatio - 1.0); pParam->BSIM3v0ua = pParam->BSIM3v0ua + pParam->BSIM3v0ua1 * T0; pParam->BSIM3v0ub = pParam->BSIM3v0ub + pParam->BSIM3v0ub1 * T0; pParam->BSIM3v0uc = pParam->BSIM3v0uc + pParam->BSIM3v0uc1 * T0; pParam->BSIM3v0u0temp = pParam->BSIM3v0u0 * pow(TRatio, pParam->BSIM3v0ute); pParam->BSIM3v0vsattemp = pParam->BSIM3v0vsat - pParam->BSIM3v0at * T0; pParam->BSIM3v0rds0 = (pParam->BSIM3v0rdsw + pParam->BSIM3v0prt * T0) / pow(pParam->BSIM3v0weff * 1E6, pParam->BSIM3v0wr); if (!model->BSIM3v0npeakGiven && model->BSIM3v0gamma1Given) { T0 = pParam->BSIM3v0gamma1 * model->BSIM3v0cox; pParam->BSIM3v0npeak = 3.021E22 * T0 * T0; } Vtm0 = KboQ * Tnom; Eg = 1.16 - 7.02e-4 * Tnom * Tnom / (Tnom + 1108.0); ni = 1.45e10 * (Tnom / 300.15) * sqrt(Tnom / 300.15) * exp(21.5565981 - Eg / (2.0 * Vtm0)); pParam->BSIM3v0phi = 2.0 * Vtm0 * log(pParam->BSIM3v0npeak / ni); pParam->BSIM3v0sqrtPhi = sqrt(pParam->BSIM3v0phi); pParam->BSIM3v0phis3 = pParam->BSIM3v0sqrtPhi * pParam->BSIM3v0phi; pParam->BSIM3v0Xdep0 = sqrt(2.0 * EPSSI / (Charge_q * pParam->BSIM3v0npeak * 1.0e6)) * pParam->BSIM3v0sqrtPhi; pParam->BSIM3v0sqrtXdep0 = sqrt(pParam->BSIM3v0Xdep0); pParam->BSIM3v0litl = sqrt(3.0 * pParam->BSIM3v0xj * model->BSIM3v0tox); pParam->BSIM3v0vbi = Vtm0 * log(1.0e20 * pParam->BSIM3v0npeak / (ni * ni)); pParam->BSIM3v0cdep0 = sqrt(Charge_q * EPSSI * pParam->BSIM3v0npeak * 1.0e6 / 2.0 / pParam->BSIM3v0phi); if (model->BSIM3v0k1Given || model->BSIM3v0k2Given) { if (!model->BSIM3v0k1Given) { fprintf(stdout, "Warning: k1 should be specified with k2.\n"); pParam->BSIM3v0k1 = 0.53; } if (!model->BSIM3v0k2Given) { fprintf(stdout, "Warning: k2 should be specified with k1.\n"); pParam->BSIM3v0k2 = -0.0186; } if (model->BSIM3v0nsubGiven) fprintf(stdout, "Warning: nsub is ignored because k1 or k2 is given.\n"); if (model->BSIM3v0xtGiven) fprintf(stdout, "Warning: xt is ignored because k1 or k2 is given.\n"); if (model->BSIM3v0vbxGiven) fprintf(stdout, "Warning: vbx is ignored because k1 or k2 is given.\n"); if (model->BSIM3v0vbmGiven) fprintf(stdout, "Warning: vbm is ignored because k1 or k2 is given.\n"); if (model->BSIM3v0gamma1Given) fprintf(stdout, "Warning: gamma1 is ignored because k1 or k2 is given.\n"); if (model->BSIM3v0gamma2Given) fprintf(stdout, "Warning: gamma2 is ignored because k1 or k2 is given.\n"); } else { if (!model->BSIM3v0vbxGiven) pParam->BSIM3v0vbx = pParam->BSIM3v0phi - 7.7348e-4 * pParam->BSIM3v0npeak * pParam->BSIM3v0xt * pParam->BSIM3v0xt; if (pParam->BSIM3v0vbx > 0.0) pParam->BSIM3v0vbx = -pParam->BSIM3v0vbx; if (pParam->BSIM3v0vbm > 0.0) pParam->BSIM3v0vbm = -pParam->BSIM3v0vbm; if (!model->BSIM3v0gamma1Given) pParam->BSIM3v0gamma1 = 5.753e-12 * sqrt(pParam->BSIM3v0npeak) / model->BSIM3v0cox; if (!model->BSIM3v0gamma2Given) pParam->BSIM3v0gamma2 = 5.753e-12 * sqrt(pParam->BSIM3v0nsub) / model->BSIM3v0cox; T0 = pParam->BSIM3v0gamma1 - pParam->BSIM3v0gamma2; T1 = sqrt(pParam->BSIM3v0phi - pParam->BSIM3v0vbx) - pParam->BSIM3v0sqrtPhi; T2 = sqrt(pParam->BSIM3v0phi * (pParam->BSIM3v0phi - pParam->BSIM3v0vbm)) - pParam->BSIM3v0phi; pParam->BSIM3v0k2 = T0 * T1 / (2.0 * T2 + pParam->BSIM3v0vbm); pParam->BSIM3v0k1 = pParam->BSIM3v0gamma2 - 2.0 * pParam->BSIM3v0k2 * sqrt(pParam->BSIM3v0phi - pParam->BSIM3v0vbm); } if (pParam->BSIM3v0k2 > 0.0) { T0 = 0.5 * pParam->BSIM3v0k1 / pParam->BSIM3v0k2; pParam->BSIM3v0vbsc = 0.9 * (pParam->BSIM3v0phi - T0 * T0); if (pParam->BSIM3v0vbsc > -3.0) pParam->BSIM3v0vbsc = -3.0; else if (pParam->BSIM3v0vbsc < -30.0) pParam->BSIM3v0vbsc = -30.0; } else { pParam->BSIM3v0vbsc = -10.0; } model->BSIM3v0vtm = KboQ * Temp; if (model->BSIM3v0vth0Given) pParam->BSIM3v0vfb = model->BSIM3v0type * pParam->BSIM3v0vth0 - pParam->BSIM3v0phi - pParam->BSIM3v0k1 * pParam->BSIM3v0sqrtPhi; else pParam->BSIM3v0vth0 = model->BSIM3v0type * (-1.0 + pParam->BSIM3v0phi + pParam->BSIM3v0k1 * pParam->BSIM3v0sqrtPhi); T1 = sqrt(EPSSI / EPSOX * model->BSIM3v0tox * pParam->BSIM3v0Xdep0); T0 = exp(-0.5 * pParam->BSIM3v0dsub * pParam->BSIM3v0leff / T1); pParam->BSIM3v0theta0vb0 = (T0 + 2.0 * T0 * T0); T0 = exp(-0.5 * pParam->BSIM3v0drout * pParam->BSIM3v0leff / T1); T2 = (T0 + 2.0 * T0 * T0); pParam->BSIM3v0thetaRout = pParam->BSIM3v0pdibl1 * T2 + pParam->BSIM3v0pdibl2; /* process source/drain series resistance */ here->BSIM3v0drainConductance = model->BSIM3v0sheetResistance * here->BSIM3v0drainSquares; if (here->BSIM3v0drainConductance > 0.0) here->BSIM3v0drainConductance = 1.0 / here->BSIM3v0drainConductance; else here->BSIM3v0drainConductance = 0.0; here->BSIM3v0sourceConductance = model->BSIM3v0sheetResistance * here->BSIM3v0sourceSquares; if (here->BSIM3v0sourceConductance > 0.0) here->BSIM3v0sourceConductance = 1.0 / here->BSIM3v0sourceConductance; else here->BSIM3v0sourceConductance = 0.0; } here->BSIM3v0cgso = pParam->BSIM3v0cgso; here->BSIM3v0cgdo = pParam->BSIM3v0cgdo; } } return(OK);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -