bsimcmg, adms workaround, split T1 into two
This commit is contained in:
parent
1aa57e7966
commit
3dafbcdb52
|
|
@ -853,7 +853,7 @@ real ni, epssub, epssp, epsratio, Eg, Eg0, Nc;
|
||||||
real Lg, deltaL, deltaL1, deltaLCV, Leff, Leff1, LeffCV, LeffCV_acc, Weff0, WeffCV0;
|
real Lg, deltaL, deltaL1, deltaLCV, Leff, Leff1, LeffCV, LeffCV_acc, Weff0, WeffCV0;
|
||||||
real cox, cdsc, cbox;
|
real cox, cdsc, cbox;
|
||||||
real nbody, phib, deltaPhi;
|
real nbody, phib, deltaPhi;
|
||||||
real T0, T1, T2, T2y, T3, T3y, T4, T4a, T5, T6, T7, T8, T9;
|
real T0, T1, T1y, T2, T2y, T3, T3y, T4, T4a, T5, T6, T7, T8, T9;
|
||||||
real Vtm, Vtm0, nVtm;
|
real Vtm, Vtm0, nVtm;
|
||||||
real beta, beta0 ;
|
real beta, beta0 ;
|
||||||
real wf, wr;
|
real wf, wr;
|
||||||
|
|
@ -2137,16 +2137,16 @@ analog begin
|
||||||
// Self-Heating
|
// Self-Heating
|
||||||
`ifdef __SHMOD__
|
`ifdef __SHMOD__
|
||||||
if (SHMOD != 0 && RTH0 > 0.0) begin
|
if (SHMOD != 0 && RTH0 > 0.0) begin
|
||||||
T1 = WTH0;
|
T1y = WTH0;
|
||||||
if (BSHEXP != 0.0) begin
|
if (BSHEXP != 0.0) begin
|
||||||
T1 = WTH0 * pow(NF, BSHEXP);
|
T1y = WTH0 * pow(NF, BSHEXP);
|
||||||
end
|
end
|
||||||
T2y = FPITCH;
|
T2y = FPITCH;
|
||||||
if (ASHEXP != 0.0) begin
|
if (ASHEXP != 0.0) begin
|
||||||
T2y = FPITCH * pow(NFINtotal, ASHEXP);
|
T2y = FPITCH * pow(NFINtotal, ASHEXP);
|
||||||
end
|
end
|
||||||
gth = (T1 + T2y)/ RTH0;
|
gth = (T1y + T2y)/ RTH0;
|
||||||
cth = CTH0 * (T1 + T2y);
|
cth = CTH0 * (T1y + T2y);
|
||||||
end else begin
|
end else begin
|
||||||
gth = 1.0;
|
gth = 1.0;
|
||||||
cth = 0.0;
|
cth = 0.0;
|
||||||
|
|
@ -2197,8 +2197,8 @@ analog begin
|
||||||
// Component: Spreading Resistance (extension -> hdd)
|
// Component: Spreading Resistance (extension -> hdd)
|
||||||
thetarsp = 55.0 * `M_PI / 180.0;
|
thetarsp = 55.0 * `M_PI / 180.0;
|
||||||
afin = min(Arsd, max(1.0e-18, TFIN * (HFIN + min(0.0, HEPI))));
|
afin = min(Arsd, max(1.0e-18, TFIN * (HFIN + min(0.0, HEPI))));
|
||||||
T1 = `COT(thetarsp);
|
T1y = `COT(thetarsp);
|
||||||
Rsp = rhorsd * T1 / (sqrt(`M_PI) * NFIN) * (1.0 / sqrt(afin) - 2.0 / sqrt(Arsd) + sqrt(afin / (Arsd*Arsd)));
|
Rsp = rhorsd * T1y / (sqrt(`M_PI) * NFIN) * (1.0 / sqrt(afin) - 2.0 / sqrt(Arsd) + sqrt(afin / (Arsd*Arsd)));
|
||||||
|
|
||||||
// Component: Contact Resistance
|
// Component: Contact Resistance
|
||||||
arsd_total = Arsd * NFIN + ARSDEND;
|
arsd_total = Arsd * NFIN + ARSDEND;
|
||||||
|
|
@ -2209,9 +2209,9 @@ analog begin
|
||||||
|
|
||||||
if (SDTERM == 1.0) begin
|
if (SDTERM == 1.0) begin
|
||||||
eta = rhorsd * lt / RHOC;
|
eta = rhorsd * lt / RHOC;
|
||||||
T1 = T0 * (1.0 + eta);
|
T1y = T0 * (1.0 + eta);
|
||||||
T2y = T1 + 1.0 - eta;
|
T2y = T1y + 1.0 - eta;
|
||||||
T3y = T1 - 1.0 + eta;
|
T3y = T1y - 1.0 + eta;
|
||||||
end else begin
|
end else begin
|
||||||
T2y = T0 + 1.0;
|
T2y = T0 + 1.0;
|
||||||
T3y = T0 - 1.0;
|
T3y = T0 - 1.0;
|
||||||
|
|
@ -2293,8 +2293,8 @@ analog begin
|
||||||
if (TMASK > 0.0) begin
|
if (TMASK > 0.0) begin
|
||||||
// Capacitance Model by Chung-Hsun Lin (IBM)
|
// Capacitance Model by Chung-Hsun Lin (IBM)
|
||||||
T0 = 3.467e-11 * lln(1.0e-7 * EPSRSP / (3.9 * LSP));
|
T0 = 3.467e-11 * lln(1.0e-7 * EPSRSP / (3.9 * LSP));
|
||||||
T1 = 0.942 * Hrsd * epssp / LSP;
|
T1y = 0.942 * Hrsd * epssp / LSP;
|
||||||
Cgg_top = (T0 + T1) * (TFIN + (FPITCH - TFIN) * CRATIO);
|
Cgg_top = (T0 + T1y) * (TFIN + (FPITCH - TFIN) * CRATIO);
|
||||||
end else begin
|
end else begin
|
||||||
`Cfringe_2d(cfr_top_trigate, Hg, Hrsd, LSP, TFIN, LRSD, Lg, TOXP, 0.85, Cgg_top)
|
`Cfringe_2d(cfr_top_trigate, Hg, Hrsd, LSP, TFIN, LRSD, Lg, TOXP, 0.85, Cgg_top)
|
||||||
end
|
end
|
||||||
|
|
@ -2388,10 +2388,10 @@ analog begin
|
||||||
end
|
end
|
||||||
|
|
||||||
T0 = TOXG * TOXG;
|
T0 = TOXG * TOXG;
|
||||||
T1 = TOXG * POXEDGE_i;
|
T1y = TOXG * POXEDGE_i;
|
||||||
T2y = T1 * T1;
|
T2y = T1y * T1y;
|
||||||
Toxratio = lexp(NTOX_i * lln(TOXREF / TOXG)) / T0;
|
Toxratio = lexp(NTOX_i * lln(TOXREF / TOXG)) / T0;
|
||||||
Toxratioedge = lexp(NTOX_i * lln(TOXREF / T1)) / T2y;
|
Toxratioedge = lexp(NTOX_i * lln(TOXREF / T1y)) / T2y;
|
||||||
igsd_mult0 = Weff0 * Aechvb * Toxratioedge;
|
igsd_mult0 = Weff0 * Aechvb * Toxratioedge;
|
||||||
|
|
||||||
if (TNOM < -`P_CELSIUS0) begin
|
if (TNOM < -`P_CELSIUS0) begin
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue