📄 b3soipdcheck.c
字号:
} if (model->B3SOIPDcgso < 0.0) { fprintf(fplog, "Warning: cgso = %g is negative. Set to zero.\n", model->B3SOIPDcgso); printf("Warning: cgso = %g is negative. Set to zero.\n", model->B3SOIPDcgso); model->B3SOIPDcgso = 0.0; } if (model->B3SOIPDcgeo < 0.0) { fprintf(fplog, "Warning: cgeo = %g is negative. Set to zero.\n", model->B3SOIPDcgeo); printf("Warning: cgeo = %g is negative. Set to zero.\n", model->B3SOIPDcgeo); model->B3SOIPDcgeo = 0.0; } if (model->B3SOIPDntun < 0.0) { fprintf(fplog, "Warning: Ntun = %g is negative.\n", model->B3SOIPDntun); printf("Warning: Ntun = %g is negative.\n", model->B3SOIPDntun); } if (model->B3SOIPDndiode < 0.0) { fprintf(fplog, "Warning: Ndiode = %g is negative.\n", model->B3SOIPDndiode); printf("Warning: Ndiode = %g is negative.\n", model->B3SOIPDndiode); } if (model->B3SOIPDisbjt < 0.0) { fprintf(fplog, "Warning: Isbjt = %g is negative.\n", model->B3SOIPDisbjt); printf("Warning: Isbjt = %g is negative.\n", model->B3SOIPDisbjt); } if (model->B3SOIPDisdif < 0.0) { fprintf(fplog, "Warning: Isdif = %g is negative.\n", model->B3SOIPDisdif); printf("Warning: Isdif = %g is negative.\n", model->B3SOIPDisdif); } if (model->B3SOIPDisrec < 0.0) { fprintf(fplog, "Warning: Isrec = %g is negative.\n", model->B3SOIPDisrec); printf("Warning: Isrec = %g is negative.\n", model->B3SOIPDisrec); } if (model->B3SOIPDistun < 0.0) { fprintf(fplog, "Warning: Istun = %g is negative.\n", model->B3SOIPDistun); printf("Warning: Istun = %g is negative.\n", model->B3SOIPDistun); } if (model->B3SOIPDtt < 0.0) { fprintf(fplog, "Warning: Tt = %g is negative.\n", model->B3SOIPDtt); printf("Warning: Tt = %g is negative.\n", model->B3SOIPDtt); } if (model->B3SOIPDcsdmin < 0.0) { fprintf(fplog, "Warning: Csdmin = %g is negative.\n", model->B3SOIPDcsdmin); printf("Warning: Csdmin = %g is negative.\n", model->B3SOIPDcsdmin); } if (model->B3SOIPDcsdesw < 0.0) { fprintf(fplog, "Warning: Csdesw = %g is negative.\n", model->B3SOIPDcsdesw); printf("Warning: Csdesw = %g is negative.\n", model->B3SOIPDcsdesw); } if (model->B3SOIPDasd < 0.0) { fprintf(fplog, "Warning: Asd = %g should be within (0, 1).\n", model->B3SOIPDasd); printf("Warning: Asd = %g should be within (0, 1).\n", model->B3SOIPDasd); } if (model->B3SOIPDrth0 < 0.0) { fprintf(fplog, "Warning: Rth0 = %g is negative.\n", model->B3SOIPDrth0); printf("Warning: Rth0 = %g is negative.\n", model->B3SOIPDrth0); } if (model->B3SOIPDcth0 < 0.0) { fprintf(fplog, "Warning: Cth0 = %g is negative.\n", model->B3SOIPDcth0); printf("Warning: Cth0 = %g is negative.\n", model->B3SOIPDcth0); } if (model->B3SOIPDrbody < 0.0) { fprintf(fplog, "Warning: Rbody = %g is negative.\n", model->B3SOIPDrbody); printf("Warning: Rbody = %g is negative.\n", model->B3SOIPDrbody); } if (model->B3SOIPDrbsh < 0.0) { fprintf(fplog, "Warning: Rbsh = %g is negative.\n", model->B3SOIPDrbsh); printf("Warning: Rbsh = %g is negative.\n", model->B3SOIPDrbsh); }/* v2.2 release */ if (model->B3SOIPDwth0 < 0.0) { fprintf(fplog, "Warning: WTH0 = %g is negative.\n", model->B3SOIPDwth0); printf("Warning: Wth0 = %g is negative.\n", model->B3SOIPDwth0); } if (model->B3SOIPDrhalo < 0.0) { fprintf(fplog, "Warning: RHALO = %g is negative.\n", model->B3SOIPDrhalo); printf("Warning: Rhalo = %g is negative.\n", model->B3SOIPDrhalo); } if (model->B3SOIPDntox < 0.0) { fprintf(fplog, "Warning: NTOX = %g is negative.\n", model->B3SOIPDntox); printf("Warning: Ntox = %g is negative.\n", model->B3SOIPDntox); } if (model->B3SOIPDtoxref < 0.0) { fprintf(fplog, "Warning: TOXREF = %g is negative.\n", model->B3SOIPDtoxref); printf("Warning: Toxref = %g is negative.\n", model->B3SOIPDtoxref); Fatal_Flag = 1; } if (model->B3SOIPDebg < 0.0) { fprintf(fplog, "Warning: EBG = %g is negative.\n", model->B3SOIPDebg); printf("Warning: Ebg = %g is negative.\n", model->B3SOIPDebg); } if (model->B3SOIPDvevb < 0.0) { fprintf(fplog, "Warning: VEVB = %g is negative.\n", model->B3SOIPDvevb); printf("Warning: Vevb = %g is negative.\n", model->B3SOIPDvevb); } if (model->B3SOIPDalphaGB1 < 0.0) { fprintf(fplog, "Warning: ALPHAGB1 = %g is negative.\n", model->B3SOIPDalphaGB1); printf("Warning: AlphaGB1 = %g is negative.\n", model->B3SOIPDalphaGB1); } if (model->B3SOIPDbetaGB1 < 0.0) { fprintf(fplog, "Warning: BETAGB1 = %g is negative.\n", model->B3SOIPDbetaGB1); printf("Warning: BetaGB1 = %g is negative.\n", model->B3SOIPDbetaGB1); } if (model->B3SOIPDvgb1 < 0.0) { fprintf(fplog, "Warning: VGB1 = %g is negative.\n", model->B3SOIPDvgb1); printf("Warning: Vgb1 = %g is negative.\n", model->B3SOIPDvgb1); } if (model->B3SOIPDvecb < 0.0) { fprintf(fplog, "Warning: VECB = %g is negative.\n", model->B3SOIPDvecb); printf("Warning: Vecb = %g is negative.\n", model->B3SOIPDvecb); } if (model->B3SOIPDalphaGB2 < 0.0) { fprintf(fplog, "Warning: ALPHAGB2 = %g is negative.\n", model->B3SOIPDalphaGB2); printf("Warning: AlphaGB2 = %g is negative.\n", model->B3SOIPDalphaGB2); } if (model->B3SOIPDbetaGB2 < 0.0) { fprintf(fplog, "Warning: BETAGB2 = %g is negative.\n", model->B3SOIPDbetaGB2); printf("Warning: BetaGB2 = %g is negative.\n", model->B3SOIPDbetaGB2); } if (model->B3SOIPDvgb2 < 0.0) { fprintf(fplog, "Warning: VGB2 = %g is negative.\n", model->B3SOIPDvgb2); printf("Warning: Vgb2 = %g is negative.\n", model->B3SOIPDvgb2); } if (model->B3SOIPDtoxqm <= 0.0) { fprintf(fplog, "Fatal: Toxqm = %g is not positive.\n", model->B3SOIPDtoxqm); printf("Fatal: Toxqm = %g is not positive.\n", model->B3SOIPDtoxqm); Fatal_Flag = 1; } if (model->B3SOIPDvoxh < 0.0) { fprintf(fplog, "Warning: Voxh = %g is negative.\n", model->B3SOIPDvoxh); printf("Warning: Voxh = %g is negative.\n", model->B3SOIPDvoxh); } if (model->B3SOIPDdeltavox <= 0.0) { fprintf(fplog, "Fatal: Deltavox = %g is not positive.\n", model->B3SOIPDdeltavox); printf("Fatal: Deltavox = %g is not positive.\n", model->B3SOIPDdeltavox); }/* v2.0 release */ if (model->B3SOIPDk1w1 < 0.0) { fprintf(fplog, "Warning: K1W1 = %g is negative.\n", model->B3SOIPDk1w1); printf("Warning: K1w1 = %g is negative.\n", model->B3SOIPDk1w1); } if (model->B3SOIPDk1w2 < 0.0) { fprintf(fplog, "Warning: K1W2 = %g is negative.\n", model->B3SOIPDk1w2); printf("Warning: K1w2 = %g is negative.\n", model->B3SOIPDk1w2); } if (model->B3SOIPDketas < 0.0) { fprintf(fplog, "Warning: KETAS = %g is negative.\n", model->B3SOIPDketas); printf("Warning: Ketas = %g is negative.\n", model->B3SOIPDketas); } if (model->B3SOIPDdwbc < 0.0) { fprintf(fplog, "Warning: DWBC = %g is negative.\n", model->B3SOIPDdwbc); printf("Warning: Dwbc = %g is negative.\n", model->B3SOIPDdwbc); } if (model->B3SOIPDbeta0 < 0.0) { fprintf(fplog, "Warning: BETA0 = %g is negative.\n", model->B3SOIPDbeta0); printf("Warning: Beta0 = %g is negative.\n", model->B3SOIPDbeta0); } if (model->B3SOIPDbeta1 < 0.0) { fprintf(fplog, "Warning: BETA1 = %g is negative.\n", model->B3SOIPDbeta1); printf("Warning: Beta1 = %g is negative.\n", model->B3SOIPDbeta1); } if (model->B3SOIPDbeta2 < 0.0) { fprintf(fplog, "Warning: BETA2 = %g is negative.\n", model->B3SOIPDbeta2); printf("Warning: Beta2 = %g is negative.\n", model->B3SOIPDbeta2); } if (model->B3SOIPDtii < 0.0) { fprintf(fplog, "Warning: TII = %g is negative.\n", model->B3SOIPDtii); printf("Warning: Tii = %g is negative.\n", model->B3SOIPDtii); } if (model->B3SOIPDlii < 0.0) { fprintf(fplog, "Warning: LII = %g is negative.\n", model->B3SOIPDlii); printf("Warning: Lii = %g is negative.\n", model->B3SOIPDlii); } if (model->B3SOIPDsii1 < 0.0) { fprintf(fplog, "Warning: SII1 = %g is negative.\n", model->B3SOIPDsii1); printf("Warning: Sii1 = %g is negative.\n", model->B3SOIPDsii1); } if (model->B3SOIPDsii2 < 0.0) { fprintf(fplog, "Warning: SII2 = %g is negative.\n", model->B3SOIPDsii2); printf("Warning: Sii2 = %g is negative.\n", model->B3SOIPDsii1); } if (model->B3SOIPDsiid < 0.0) { fprintf(fplog, "Warning: SIID = %g is negative.\n", model->B3SOIPDsiid); printf("Warning: Siid = %g is negative.\n", model->B3SOIPDsiid); } if (model->B3SOIPDfbjtii < 0.0) { fprintf(fplog, "Warning: FBJTII = %g is negative.\n", model->B3SOIPDfbjtii); printf("Warning: fbjtii = %g is negative.\n", model->B3SOIPDfbjtii); } if (model->B3SOIPDvrec0 < 0.0) { fprintf(fplog, "Warning: VREC0 = %g is negative.\n", model->B3SOIPDvrec0); printf("Warning: Vrec0 = %g is negative.\n", model->B3SOIPDvrec0); } if (model->B3SOIPDvtun0 < 0.0) { fprintf(fplog, "Warning: VTUN0 = %g is negative.\n", model->B3SOIPDvtun0); printf("Warning: Vtun0 = %g is negative.\n", model->B3SOIPDvtun0); } if (model->B3SOIPDnbjt < 0.0) { fprintf(fplog, "Warning: NBJT = %g is negative.\n", model->B3SOIPDnbjt); printf("Warning: Nbjt = %g is negative.\n", model->B3SOIPDnbjt); } if (model->B3SOIPDaely < 0.0) { fprintf(fplog, "Warning: AELY = %g is negative.\n", model->B3SOIPDaely); printf("Warning: Aely = %g is negative.\n", model->B3SOIPDaely); } if (model->B3SOIPDahli < 0.0) { fprintf(fplog, "Warning: AHLI = %g is negative.\n", model->B3SOIPDahli); printf("Warning: Ahli = %g is negative.\n", model->B3SOIPDahli); } if (model->B3SOIPDrbody < 0.0) { fprintf(fplog, "Warning: RBODY = %g is negative.\n", model->B3SOIPDrbody); printf("Warning: Rbody = %g is negative.\n", model->B3SOIPDrbody); } if (model->B3SOIPDrbsh < 0.0) { fprintf(fplog, "Warning: RBSH = %g is negative.\n", model->B3SOIPDrbsh); printf("Warning: Rbsh = %g is negative.\n", model->B3SOIPDrbsh); } if (model->B3SOIPDntrecf < 0.0) { fprintf(fplog, "Warning: NTRECF = %g is negative.\n", model->B3SOIPDntrecf); printf("Warning: Ntrecf = %g is negative.\n", model->B3SOIPDntrecf); } if (model->B3SOIPDntrecr < 0.0) { fprintf(fplog, "Warning: NTRECR = %g is negative.\n", model->B3SOIPDntrecr); printf("Warning: Ntrecr = %g is negative.\n", model->B3SOIPDntrecr); } if (model->B3SOIPDndif < 0.0) { fprintf(fplog, "Warning: NDIF = %g is negative.\n", model->B3SOIPDndif); printf("Warning: Ndif = %g is negative.\n", model->B3SOIPDndif); } if (model->B3SOIPDtcjswg < 0.0) { fprintf(fplog, "Warning: TCJSWG = %g is negative.\n", model->B3SOIPDtcjswg); printf("Warning: Tcjswg = %g is negative.\n", model->B3SOIPDtcjswg); } if (model->B3SOIPDtpbswg < 0.0) { fprintf(fplog, "Warning: TPBSWG = %g is negative.\n", model->B3SOIPDtpbswg); printf("Warning: Tpbswg = %g is negative.\n", model->B3SOIPDtpbswg); } if ((model->B3SOIPDacde < 0.4) || (model->B3SOIPDacde > 1.6)) { fprintf(fplog, "Warning: ACDE = %g is out of range.\n", model->B3SOIPDacde); printf("Warning: Acde = %g is out of range.\n", model->B3SOIPDacde); } if ((model->B3SOIPDmoin < 5.0)||(model->B3SOIPDmoin > 25.0)) { fprintf(fplog, "Warning: MOIN = %g is out of range.\n", model->B3SOIPDmoin); printf("Warning: Moin = %g is out of range.\n", model->B3SOIPDmoin); } if (model->B3SOIPDdlbg < 0.0) { fprintf(fplog, "Warning: DLBG = %g is negative.\n", model->B3SOIPDdlbg); printf("Warning: dlbg = %g is negative.\n", model->B3SOIPDdlbg); } if (model->B3SOIPDagidl < 0.0) { fprintf(fplog, "Warning: AGIDL = %g is negative.\n", model->B3SOIPDagidl); printf("Warning: Agidl = %g is negative.\n", model->B3SOIPDagidl); } if (model->B3SOIPDbgidl < 0.0) { fprintf(fplog, "Warning: BGIDL = %g is negative.\n", model->B3SOIPDbgidl); printf("Warning: Bgidl = %g is negative.\n", model->B3SOIPDbgidl); } if (model->B3SOIPDngidl < 0.0) { fprintf(fplog, "Warning: NGIDL = %g is negative.\n", model->B3SOIPDngidl); printf("Warning: Ngidl = %g is negative.\n", model->B3SOIPDngidl); } if (model->B3SOIPDesatii < 0.0) { fprintf(fplog, "Warning: Esatii = %g should be within positive.\n", model->B3SOIPDesatii); printf("Warning: Esatii = %g should be within (0, 1).\n", model->B3SOIPDesatii); } if (model->B3SOIPDxj > model->B3SOIPDtsi) { fprintf(fplog, "Warning: Xj = %g is thicker than Tsi = %g.\n", model->B3SOIPDxj, model->B3SOIPDtsi); printf("Warning: Xj = %g is thicker than Tsi = %g.\n", model->B3SOIPDxj, model->B3SOIPDtsi); } if (model->B3SOIPDcapMod < 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 + -