📄 b3soicheck.c
字号:
if (model->B3SOIntun < 0.0) { fprintf(fplog, "Warning: Ntun = %g is negative.\n", model->B3SOIntun); printf("Warning: Ntun = %g is negative.\n", model->B3SOIntun); } if (model->B3SOIndiode < 0.0) { fprintf(fplog, "Warning: Ndiode = %g is negative.\n", model->B3SOIndiode); printf("Warning: Ndiode = %g is negative.\n", model->B3SOIndiode); } if (model->B3SOIisbjt < 0.0) { fprintf(fplog, "Warning: Isbjt = %g is negative.\n", model->B3SOIisbjt); printf("Warning: Isbjt = %g is negative.\n", model->B3SOIisbjt); } if (model->B3SOIisdif < 0.0) { fprintf(fplog, "Warning: Isdif = %g is negative.\n", model->B3SOIisdif); printf("Warning: Isdif = %g is negative.\n", model->B3SOIisdif); } if (model->B3SOIisrec < 0.0) { fprintf(fplog, "Warning: Isrec = %g is negative.\n", model->B3SOIisrec); printf("Warning: Isrec = %g is negative.\n", model->B3SOIisrec); } if (model->B3SOIistun < 0.0) { fprintf(fplog, "Warning: Istun = %g is negative.\n", model->B3SOIistun); printf("Warning: Istun = %g is negative.\n", model->B3SOIistun); } if (model->B3SOItt < 0.0) { fprintf(fplog, "Warning: Tt = %g is negative.\n", model->B3SOItt); printf("Warning: Tt = %g is negative.\n", model->B3SOItt); } if (model->B3SOIcsdmin < 0.0) { fprintf(fplog, "Warning: Csdmin = %g is negative.\n", model->B3SOIcsdmin); printf("Warning: Csdmin = %g is negative.\n", model->B3SOIcsdmin); } if (model->B3SOIcsdesw < 0.0) { fprintf(fplog, "Warning: Csdesw = %g is negative.\n", model->B3SOIcsdesw); printf("Warning: Csdesw = %g is negative.\n", model->B3SOIcsdesw); } if (model->B3SOIasd < 0.0) { fprintf(fplog, "Warning: Asd = %g should be within (0, 1).\n", model->B3SOIasd); printf("Warning: Asd = %g should be within (0, 1).\n", model->B3SOIasd); } if (model->B3SOIrth0 < 0.0) { fprintf(fplog, "Warning: Rth0 = %g is negative.\n", model->B3SOIrth0); printf("Warning: Rth0 = %g is negative.\n", model->B3SOIrth0); } if (model->B3SOIcth0 < 0.0) { fprintf(fplog, "Warning: Cth0 = %g is negative.\n", model->B3SOIcth0); printf("Warning: Cth0 = %g is negative.\n", model->B3SOIcth0); } if (model->B3SOIrbody < 0.0) { fprintf(fplog, "Warning: Rbody = %g is negative.\n", model->B3SOIrbody); printf("Warning: Rbody = %g is negative.\n", model->B3SOIrbody); } if (model->B3SOIrbsh < 0.0) { fprintf(fplog, "Warning: Rbsh = %g is negative.\n", model->B3SOIrbsh); printf("Warning: Rbsh = %g is negative.\n", model->B3SOIrbsh); }/* v3.0 */ if (pParam->B3SOInigc <= 0.0) { fprintf(fplog, "Fatal: nigc = %g is non-positive.\n", pParam->B3SOInigc); printf("Fatal: nigc = %g is non-positive.\n", pParam->B3SOInigc); Fatal_Flag = 1; } if (pParam->B3SOIpoxedge <= 0.0) { fprintf(fplog, "Fatal: poxedge = %g is non-positive.\n", pParam->B3SOIpoxedge); printf("Fatal: poxedge = %g is non-positive.\n", pParam->B3SOIpoxedge); Fatal_Flag = 1; } if (pParam->B3SOIpigcd <= 0.0) { fprintf(fplog, "Fatal: pigcd = %g is non-positive.\n", pParam->B3SOIpigcd); printf("Fatal: pigcd = %g is non-positive.\n", pParam->B3SOIpigcd); Fatal_Flag = 1; }/* v2.2 release */ if (model->B3SOIwth0 < 0.0) { fprintf(fplog, "Warning: WTH0 = %g is negative.\n", model->B3SOIwth0); printf("Warning: Wth0 = %g is negative.\n", model->B3SOIwth0); } if (model->B3SOIrhalo < 0.0) { fprintf(fplog, "Warning: RHALO = %g is negative.\n", model->B3SOIrhalo); printf("Warning: Rhalo = %g is negative.\n", model->B3SOIrhalo); } if (model->B3SOIntox < 0.0) { fprintf(fplog, "Warning: NTOX = %g is negative.\n", model->B3SOIntox); printf("Warning: Ntox = %g is negative.\n", model->B3SOIntox); } if (model->B3SOItoxref < 0.0) { fprintf(fplog, "Warning: TOXREF = %g is negative.\n", model->B3SOItoxref); printf("Warning: Toxref = %g is negative.\n", model->B3SOItoxref); Fatal_Flag = 1; } if (model->B3SOIebg < 0.0) { fprintf(fplog, "Warning: EBG = %g is negative.\n", model->B3SOIebg); printf("Warning: Ebg = %g is negative.\n", model->B3SOIebg); } if (model->B3SOIvevb < 0.0) { fprintf(fplog, "Warning: VEVB = %g is negative.\n", model->B3SOIvevb); printf("Warning: Vevb = %g is negative.\n", model->B3SOIvevb); } if (model->B3SOIalphaGB1 < 0.0) { fprintf(fplog, "Warning: ALPHAGB1 = %g is negative.\n", model->B3SOIalphaGB1); printf("Warning: AlphaGB1 = %g is negative.\n", model->B3SOIalphaGB1); } if (model->B3SOIbetaGB1 < 0.0) { fprintf(fplog, "Warning: BETAGB1 = %g is negative.\n", model->B3SOIbetaGB1); printf("Warning: BetaGB1 = %g is negative.\n", model->B3SOIbetaGB1); } if (model->B3SOIvgb1 < 0.0) { fprintf(fplog, "Warning: VGB1 = %g is negative.\n", model->B3SOIvgb1); printf("Warning: Vgb1 = %g is negative.\n", model->B3SOIvgb1); } if (model->B3SOIvecb < 0.0) { fprintf(fplog, "Warning: VECB = %g is negative.\n", model->B3SOIvecb); printf("Warning: Vecb = %g is negative.\n", model->B3SOIvecb); } if (model->B3SOIalphaGB2 < 0.0) { fprintf(fplog, "Warning: ALPHAGB2 = %g is negative.\n", model->B3SOIalphaGB2); printf("Warning: AlphaGB2 = %g is negative.\n", model->B3SOIalphaGB2); } if (model->B3SOIbetaGB2 < 0.0) { fprintf(fplog, "Warning: BETAGB2 = %g is negative.\n", model->B3SOIbetaGB2); printf("Warning: BetaGB2 = %g is negative.\n", model->B3SOIbetaGB2); } if (model->B3SOIvgb2 < 0.0) { fprintf(fplog, "Warning: VGB2 = %g is negative.\n", model->B3SOIvgb2); printf("Warning: Vgb2 = %g is negative.\n", model->B3SOIvgb2); } if (model->B3SOItoxqm <= 0.0) { fprintf(fplog, "Fatal: Toxqm = %g is not positive.\n", model->B3SOItoxqm); printf("Fatal: Toxqm = %g is not positive.\n", model->B3SOItoxqm); Fatal_Flag = 1; } if (model->B3SOIvoxh < 0.0) { fprintf(fplog, "Warning: Voxh = %g is negative.\n", model->B3SOIvoxh); printf("Warning: Voxh = %g is negative.\n", model->B3SOIvoxh); } if (model->B3SOIdeltavox <= 0.0) { fprintf(fplog, "Fatal: Deltavox = %g is not positive.\n", model->B3SOIdeltavox); printf("Fatal: Deltavox = %g is not positive.\n", model->B3SOIdeltavox); }/* v2.0 release */ if (model->B3SOIk1w1 < 0.0) { fprintf(fplog, "Warning: K1W1 = %g is negative.\n", model->B3SOIk1w1); printf("Warning: K1w1 = %g is negative.\n", model->B3SOIk1w1); } if (model->B3SOIk1w2 < 0.0) { fprintf(fplog, "Warning: K1W2 = %g is negative.\n", model->B3SOIk1w2); printf("Warning: K1w2 = %g is negative.\n", model->B3SOIk1w2); } if (model->B3SOIketas < 0.0) { fprintf(fplog, "Warning: KETAS = %g is negative.\n", model->B3SOIketas); printf("Warning: Ketas = %g is negative.\n", model->B3SOIketas); } if (model->B3SOIdwbc < 0.0) { fprintf(fplog, "Warning: DWBC = %g is negative.\n", model->B3SOIdwbc); printf("Warning: Dwbc = %g is negative.\n", model->B3SOIdwbc); } if (model->B3SOIbeta0 < 0.0) { fprintf(fplog, "Warning: BETA0 = %g is negative.\n", model->B3SOIbeta0); printf("Warning: Beta0 = %g is negative.\n", model->B3SOIbeta0); } if (model->B3SOIbeta1 < 0.0) { fprintf(fplog, "Warning: BETA1 = %g is negative.\n", model->B3SOIbeta1); printf("Warning: Beta1 = %g is negative.\n", model->B3SOIbeta1); } if (model->B3SOIbeta2 < 0.0) { fprintf(fplog, "Warning: BETA2 = %g is negative.\n", model->B3SOIbeta2); printf("Warning: Beta2 = %g is negative.\n", model->B3SOIbeta2); } if (model->B3SOItii < 0.0) { fprintf(fplog, "Warning: TII = %g is negative.\n", model->B3SOItii); printf("Warning: Tii = %g is negative.\n", model->B3SOItii); } if (model->B3SOIlii < 0.0) { fprintf(fplog, "Warning: LII = %g is negative.\n", model->B3SOIlii); printf("Warning: Lii = %g is negative.\n", model->B3SOIlii); } if (model->B3SOIsii1 < 0.0) { fprintf(fplog, "Warning: SII1 = %g is negative.\n", model->B3SOIsii1); printf("Warning: Sii1 = %g is negative.\n", model->B3SOIsii1); } if (model->B3SOIsii2 < 0.0) { fprintf(fplog, "Warning: SII2 = %g is negative.\n", model->B3SOIsii2); printf("Warning: Sii2 = %g is negative.\n", model->B3SOIsii1); } if (model->B3SOIsiid < 0.0) { fprintf(fplog, "Warning: SIID = %g is negative.\n", model->B3SOIsiid); printf("Warning: Siid = %g is negative.\n", model->B3SOIsiid); } if (model->B3SOIfbjtii < 0.0) { fprintf(fplog, "Warning: FBJTII = %g is negative.\n", model->B3SOIfbjtii); printf("Warning: fbjtii = %g is negative.\n", model->B3SOIfbjtii); } if (model->B3SOIvrec0 < 0.0) { fprintf(fplog, "Warning: VREC0 = %g is negative.\n", model->B3SOIvrec0); printf("Warning: Vrec0 = %g is negative.\n", model->B3SOIvrec0); } if (model->B3SOIvtun0 < 0.0) { fprintf(fplog, "Warning: VTUN0 = %g is negative.\n", model->B3SOIvtun0); printf("Warning: Vtun0 = %g is negative.\n", model->B3SOIvtun0); } if (model->B3SOInbjt < 0.0) { fprintf(fplog, "Warning: NBJT = %g is negative.\n", model->B3SOInbjt); printf("Warning: Nbjt = %g is negative.\n", model->B3SOInbjt); } if (model->B3SOIaely < 0.0) { fprintf(fplog, "Warning: AELY = %g is negative.\n", model->B3SOIaely); printf("Warning: Aely = %g is negative.\n", model->B3SOIaely); } if (model->B3SOIahli < 0.0) { fprintf(fplog, "Warning: AHLI = %g is negative.\n", model->B3SOIahli); printf("Warning: Ahli = %g is negative.\n", model->B3SOIahli); } if (model->B3SOIrbody < 0.0) { fprintf(fplog, "Warning: RBODY = %g is negative.\n", model->B3SOIrbody); printf("Warning: Rbody = %g is negative.\n", model->B3SOIrbody); } if (model->B3SOIrbsh < 0.0) { fprintf(fplog, "Warning: RBSH = %g is negative.\n", model->B3SOIrbsh); printf("Warning: Rbsh = %g is negative.\n", model->B3SOIrbsh); } if (model->B3SOIntrecf < 0.0) { fprintf(fplog, "Warning: NTRECF = %g is negative.\n", model->B3SOIntrecf); printf("Warning: Ntrecf = %g is negative.\n", model->B3SOIntrecf); } if (model->B3SOIntrecr < 0.0) { fprintf(fplog, "Warning: NTRECR = %g is negative.\n", model->B3SOIntrecr); printf("Warning: Ntrecr = %g is negative.\n", model->B3SOIntrecr); }/* v3.0 bug fix *//* if (model->B3SOIndif < 0.0) { fprintf(fplog, "Warning: NDIF = %g is negative.\n", model->B3SOIndif); printf("Warning: Ndif = %g is negative.\n", model->B3SOIndif); }*/ if (model->B3SOItcjswg < 0.0) { fprintf(fplog, "Warning: TCJSWG = %g is negative.\n", model->B3SOItcjswg); printf("Warning: Tcjswg = %g is negative.\n", model->B3SOItcjswg); } if (model->B3SOItpbswg < 0.0) { fprintf(fplog, "Warning: TPBSWG = %g is negative.\n", model->B3SOItpbswg); printf("Warning: Tpbswg = %g is negative.\n", model->B3SOItpbswg); } if ((model->B3SOIacde < 0.4) || (model->B3SOIacde > 1.6)) { fprintf(fplog, "Warning: ACDE = %g is out of range.\n", model->B3SOIacde); printf("Warning: Acde = %g is out of range.\n", model->B3SOIacde); } if ((model->B3SOImoin < 5.0)||(model->B3SOImoin > 25.0)) { fprintf(fplog, "Warning: MOIN = %g is out of range.\n", model->B3SOImoin); printf("Warning: Moin = %g is out of range.\n", model->B3SOImoin); } if (model->B3SOIdlbg < 0.0) { fprintf(fplog, "Warning: DLBG = %g is negative.\n", model->B3SOIdlbg); printf("Warning: dlbg = %g is negative.\n", model->B3SOIdlbg); } if (model->B3SOIagidl < 0.0) { fprintf(fplog, "Warning: AGIDL = %g is negative.\n", model->B3SOIagidl); printf("Warning: Agidl = %g is negative.\n", model->B3SOIagidl); } if (model->B3SOIbgidl < 0.0) { fprintf(fplog, "Warning: BGIDL = %g is negative.\n", model->B3SOIbgidl); printf("Warning: Bgidl = %g is negative.\n", model->B3SOIbgidl); } if (model->B3SOIngidl < 0.0) { fprintf(fplog, "Warning: NGIDL = %g is negative.\n", model->B3SOIngidl); printf("Warning: Ngidl = %g is negative.\n", model->B3SOIngidl); } if (model->B3SOIesatii < 0.0) { fprintf(fplog, "Warning: Esatii = %g should be within positive.\n", model->B3SOIesatii); printf("Warning: Esatii = %g should be within (0, 1).\n", model->B3SOIesatii); } if (model->B3SOIxj > model->B3SOItsi) { fprintf(fplog, "Warning: Xj = %g is thicker than Tsi = %g.\n", model->B3SOIxj, model->B3SOItsi); printf("Warning: Xj = %g is thicker than Tsi = %g.\n", model->B3SOIxj, model->B3SOItsi); } if (model->B3SOIcapMod < 2) { fprintf(fplog, "Warning: capMod < 2 is not supported by BSIM3SOI.\n"); printf("Warning: Warning: capMod < 2 is not supported by BSIM3SOI.\n"); } }/* loop for the parameter check for warning messages */ fclose(fplog); } else { fprintf(stderr, "Warning: Can't open log file. Parameter checking skipped.\n"); } return(Fatal_Flag);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -