From 51d732a7ba937680e3394e21f42ed10a964ac8ab Mon Sep 17 00:00:00 2001 From: dwarning Date: Thu, 12 Jan 2023 15:07:11 +0100 Subject: [PATCH] white spaces and format --- examples/osdi/EKV2.6/vacode/ekv26_mod.va | 108 +++++++++--------- examples/osdi/bsimbulk/vacode/bsimbulk.va | 74 ++++++------ examples/osdi/bsimcmg/vacode/bsimcmg.va | 4 +- .../osdi/bsimcmg/vacode/bsimcmg_body.include | 32 +++--- .../bsimcmg/vacode/bsimcmg_checking.include | 4 +- .../vacode/bsimcmg_initialization.include | 4 +- .../bsimcmg/vacode/bsimcmg_macros.include | 4 +- .../osdi/bsimcmg/vacode/bsimcmg_noise.include | 4 +- .../bsimcmg/vacode/bsimcmg_parameters.include | 4 +- .../bsimcmg/vacode/bsimcmg_variables.include | 4 +- 10 files changed, 121 insertions(+), 121 deletions(-) diff --git a/examples/osdi/EKV2.6/vacode/ekv26_mod.va b/examples/osdi/EKV2.6/vacode/ekv26_mod.va index e386a9608..8fe075855 100644 --- a/examples/osdi/EKV2.6/vacode/ekv26_mod.va +++ b/examples/osdi/EKV2.6/vacode/ekv26_mod.va @@ -1,20 +1,20 @@ /* -EKV MOS model version 2.6 rev.15 with documentation at: http://ekv.epfl.ch +EKV MOS model version 2.6 rev.15 with documentation at: http://ekv.epfl.ch Matthias Bucher, Christophe Lallement, Christian Enz, Fabien Theodoloz, Francois Krummenacher Electronics Laboratories, Swiss Federal Institute of Technology Lausanne, Switzerland This Verilog-A was developed by Wladek Grabinski with modifications by Tiburon Design Automation (www.tiburon-da.com). This software has been provided pursuant to a License Agreement containing restrictions on its use. It may not be copied or distributed in any form or medium, disclosed to third parties, -reverse engineered or used in any manner not provided for in said License Agreement +reverse engineered or used in any manner not provided for in said License Agreement except with the prior written authorization. -Licensed under the Educational Community License, Version 2.0 (the "License"); +Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under -the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +Unless required by applicable law or agreed to in writing, software distributed under +the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -102,68 +102,68 @@ $RCSfile: ekv.va,v $ $Revision: 2.6.15 $ $Date: 2020/05/29 11:50:10 $ // Electrical // Current in amperes nature Current - units = "A"; - access = I; - idt_nature = Charge; + units = "A"; + access = I; + idt_nature = Charge; `ifdef CURRENT_ABSTOL - abstol = `CURRENT_ABSTOL; + abstol = `CURRENT_ABSTOL; `else - abstol = 1e-12; + abstol = 1e-12; `endif endnature // Charge in coulombs nature Charge - units = "coul"; - access = Q; - ddt_nature = Current; + units = "coul"; + access = Q; + ddt_nature = Current; `ifdef CHARGE_ABSTOL - abstol = `CHARGE_ABSTOL; + abstol = `CHARGE_ABSTOL; `else - abstol = 1e-14; + abstol = 1e-14; `endif endnature // Potential in volts nature Voltage - units = "V"; - access = V; - idt_nature = Flux; + units = "V"; + access = V; + idt_nature = Flux; `ifdef VOLTAGE_ABSTOL - abstol = `VOLTAGE_ABSTOL; + abstol = `VOLTAGE_ABSTOL; `else - abstol = 1e-6; + abstol = 1e-6; `endif endnature // Flux in Webers nature Flux - units = "Wb"; - access = Phi; - ddt_nature = Voltage; + units = "Wb"; + access = Phi; + ddt_nature = Voltage; `ifdef FLUX_ABSTOL - abstol = `FLUX_ABSTOL; + abstol = `FLUX_ABSTOL; `else - abstol = 1e-9; + abstol = 1e-9; `endif endnature // Conservative discipline discipline electrical - potential Voltage; - flow Current; + potential Voltage; + flow Current; enddiscipline // Signal flow disciplines discipline voltage - potential Voltage; + potential Voltage; enddiscipline discipline current - potential Current; + potential Current; enddiscipline //from constants.h we need `define C_EPSSIL 1.03594314e-10 `define C_EPSOX 34.5e-12 `define C_QE 1.602e-19 `define C_K 1.3807e-23 -`define P_K 1.3806226e-23 -`define P_EPS0 8.85418792394420013968e-12 -`define P_CELSIUS0 273.15 +`define P_K 1.3806226e-23 +`define P_EPS0 8.85418792394420013968e-12 +`define P_CELSIUS0 273.15 `define POS_MIN 1.0E-6 `define SQRT2 1.4142135623730950488016887242097 `define ONE3RD 0.33333333333333333333333333333333 @@ -271,7 +271,7 @@ module ekv_va(d,g,s,b); real csb_d, cssw_d, csswg_d; real csb_s, cssw_s, csswg_s; real qjd, qjs; - + // parameter definitions parameter integer TYPE = 1 from [-1:1] exclude 0; // NMOS=1, PMOS=-1 parameter integer Noise = 1 from [0:1]; // Set to zero to prevent noise calculation @@ -399,10 +399,10 @@ module ekv_va(d,g,s,b); */ /* If Temp is explicitly specified, use that value otherwise use Tckt+Trise */ - if (TEMP == -`NOT_GIVEN) //AB: 040902 Temp -> TEMP + if (TEMP == -`NOT_GIVEN) //AB: 040902 Temp -> TEMP T = $temperature + Trise; else - T = TEMP + `P_CELSIUS0; //AB: 040902 Temp -> TEMP + T = TEMP + `P_CELSIUS0; //AB: 040902 Temp -> TEMP if (TNOM == -`NOT_GIVEN) Tnom = `DEFAULT_TNOM + `P_CELSIUS0; else @@ -415,7 +415,7 @@ module ekv_va(d,g,s,b); Vt_Vt = Vt * Vt; Vt_Vt_2 = Vt_Vt + Vt_Vt; Vt_Vt_16 = 16.0 * Vt_Vt; - + Eg = 1.16 - 7.02e-4 * T * T / (T + 1108.0); refEg = 1.16 - (7.02e-4*Tnom*Tnom) / (Tnom + 1108.0); deltaT = T - Tnom; @@ -460,8 +460,8 @@ module ekv_va(d,g,s,b); // VGprime: if (V0 == 0.0) deltaVFB = 0.0; -// else begin : VGprime //AB: 040902 VGPrime is also a variable and - else begin : VGprime_block //AB: 040902 VGPrime -> VGprime_block +// else begin : VGprime //AB: 040902 VGPrime is also a variable and + else begin : VGprime_block //AB: 040902 VGPrime -> VGprime_block real sqv; // mb 99/03/26 corrected for multiple device number vL = 0.28 * (Leff/(LK*NS) - 0.1); @@ -824,8 +824,8 @@ module ekv_va(d,g,s,b); I(sb) <+ TYPE * Isub; end I(gb) <+ TYPE * ddt(QG); // wg 22/04/08 corrected for device TYPE -// if (Noise) begin : Noise //AB: 040902 Noise is also a variable and - if (Noise) begin : Noise_block //AB: 040902 Noise -> Noise_block +// if (Noise) begin : Noise //AB: 040902 Noise is also a variable and + if (Noise) begin : Noise_block //AB: 040902 Noise -> Noise_block real S_flicker, S_thermal; S_thermal = 4 * `P_K * T * Gn; S_flicker = KF * gm * gm / (Weff * NS * Leff * COX); @@ -835,7 +835,7 @@ module ekv_va(d,g,s,b); /////////////////////////////////// //EXTRINSIC PART: JUNCTION DIODES// /////////////////////////////////// - //diode area and perimeter computation + //diode area and perimeter computation if ((AS == 0.0) && (HDIF>0.0)) as_i = 2.0*HDIF*Weff; else as_i = AS; if ((PS == 0.0) && (HDIF>0.0)) ps_i = 4.0*HDIF+1.0*Weff; @@ -844,7 +844,7 @@ module ekv_va(d,g,s,b); else ad_i = AD; if ((PD == 0.0) && (HDIF>0.0)) pd_i = 4.0*HDIF+1.0*Weff; else pd_i = PD; - //temperature update for diodes + //temperature update for diodes temp_arg = exp((refEg/$vt(Tnom) - Eg/Vt + tp_xti*ln(ratioT))/xd_n); js_t = xd_js*temp_arg; jsw_t = xd_jsw*temp_arg; @@ -865,10 +865,10 @@ module ekv_va(d,g,s,b); is_d = js_t*ad_i+jsw_t*pd_i+jswg_t*Weff; arg_d = -v_di_b*ratioT/(Vt*xd_n); if (arg_d < -40.0) arg_d = -40.0; - tmp0 = (-v_di_b+xd_bv)*ratioT/(Vt*xd_n); - if (tmp0>70) f_breakdown_d = 1.0; - else f_breakdown_d = 1.0 + xd_xjbv*exp(-tmp0); - // TRAP-ASSISTED TUNNELING CURRENT + tmp0 = (-v_di_b+xd_bv)*ratioT/(Vt*xd_n); + if (tmp0>70) f_breakdown_d = 1.0; + else f_breakdown_d = 1.0 + xd_xjbv*exp(-tmp0); + // TRAP-ASSISTED TUNNELING CURRENT idb_tun = -Weff*jswg_t*(exp(v_di_b*ratioT/(Vt*njtsswg_t) * xd_vtsswg/max(xd_vtsswg+v_di_b,1.0e-3))-1.0); idb_tun = idb_tun - pd_i*jsw_t*(exp(v_di_b*ratioT/(Vt*njtssw_t) * xd_vtssw/max(xd_vtssw+v_di_b,1.0e-3))-1.0); idb_tun = idb_tun - ad_i*js_t*(exp(v_di_b*ratioT/(Vt*njts_t) * xd_vts/max(xd_vts+v_di_b,1.0e-3))-1.0); @@ -877,17 +877,17 @@ module ekv_va(d,g,s,b); is_s = js_t*as_i+jsw_t*ps_i+jswg_t*Weff; arg_s = -v_si_b*ratioT/(Vt*xd_n); if (arg_s < -40.0) arg_s = -40.0; - tmp0 = (-v_si_b+xd_bv)*ratioT/(Vt*xd_n); - if (tmp0>70) f_breakdown_s = 1.0; - else f_breakdown_s = 1.0 + xd_xjbv*exp(-tmp0); - // TRAP-ASSISTED TUNNELING CURRENT + tmp0 = (-v_si_b+xd_bv)*ratioT/(Vt*xd_n); + if (tmp0>70) f_breakdown_s = 1.0; + else f_breakdown_s = 1.0 + xd_xjbv*exp(-tmp0); + // TRAP-ASSISTED TUNNELING CURRENT isb_tun = -Weff*jswg_t*(exp(v_si_b*ratioT/(Vt*njtsswg_t) * xd_vtsswg/max(xd_vtsswg+v_si_b,1.0e-3))-1.0); isb_tun = isb_tun - ps_i*jsw_t*(exp(v_si_b*ratioT/(Vt*njtssw_t) * xd_vtssw/max(xd_vtssw+v_si_b,1.0e-3))-1.0); isb_tun = isb_tun - as_i*js_t*(exp(v_si_b*ratioT/(Vt*njts_t) * xd_vts/max(xd_vts+v_si_b,1.0e-3))-1.0); I(s,b) <+ (is_s * (1.0 - exp(arg_s))*f_breakdown_s+v_si_b*xd_gmin + isb_tun)*TYPE*M; - //AC - - //DRAIN - BULK + //AC + + //DRAIN - BULK if (v_di_b>0.0) begin csb_d = cj_t * ad_i * exp(-xd_mj*ln(1.0+v_di_b/pb_t)); @@ -917,6 +917,6 @@ module ekv_va(d,g,s,b); end qjs = (csb_s+cssw_s+csswg_s) * v_si_b; I(s,b) <+ ddt(qjs)*TYPE*M; - //END OF DIODES + //END OF DIODES end endmodule diff --git a/examples/osdi/bsimbulk/vacode/bsimbulk.va b/examples/osdi/bsimbulk/vacode/bsimbulk.va index eef833cf8..075095c7f 100644 --- a/examples/osdi/bsimbulk/vacode/bsimbulk.va +++ b/examples/osdi/bsimbulk/vacode/bsimbulk.va @@ -23,12 +23,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. The BSIM-BULK standard has been supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this standard can be found at: -http://www.si2.org/cmc +http://www.si2.org/cmc */ `include "constants.vams" @@ -1737,9 +1737,9 @@ endfunction // High Voltage Model Parameters // --- Mod selectors ----- -`MPIcc( HVMOD ,0 ,"" ,0 ,1 ,"High Voltage series resistance model, 0: Turn Off 1: Turn On") -`MPIcc( HVCAP ,0 ,"" ,0 ,1 ,"High Voltage capacitance model. 0: Turn Off 1: Turn On") -`MPIcc( HVCAPS ,0 ,"" ,0 ,1 ,"High Voltage capacitance model at source side. 0: Turn Off 1: Turn On") +`MPIcc( HVMOD ,0 ,"" ,0 ,1 ,"High Voltage series resistance model, 0: Turn Off 1: Turn On") +`MPIcc( HVCAP ,0 ,"" ,0 ,1 ,"High Voltage capacitance model. 0: Turn Off 1: Turn On") +`MPIcc( HVCAPS ,0 ,"" ,0 ,1 ,"High Voltage capacitance model at source side. 0: Turn Off 1: Turn On") `MPIcc( IIMOD ,0 ,"" ,0 ,1 ,"Flag for impact ionization in the drift region 0: Turn-Off, 1: Turn On" ) // --- Other parameters ----- @@ -1754,7 +1754,7 @@ endfunction `MPRnb( VFBOV ,-1 ,"V" ,"Flat-band voltage of the overlap region" ) `MPRnb( LOVER ,500n ,"m" ,"Overlap region length" ) `MPRnb( LOVERACC ,LOVER ,"m" ,"Drift region length" ) -`MPRnb( NDR ,NDEP ,"m^3" ,"Drift region doping" ) +`MPRnb( NDR ,NDEP ,"1/m^3" ,"Drift region doping" ) `MPRcz( SLHV ,0 ,"" ,"Parameter and Flag for controlling slope of accumulation region capacitance. 0: Turn-Off, 1: Turn On" ) `MPRoz( SLHV1 ,1.0 ,"" ,"Parameter for slope of the accumulation capacitance " ) `MPRnb( ALPHADR ,ALPHA0 ,"" ,"First parameter of Iii in the drift region" ) @@ -1938,7 +1938,7 @@ real vth0_well, k2_well, mu_well, Wdrn, local_sca, local_scb, local_scc; real ids_edge, ETA0EDGE_t, NFACTOREDGE_t, Vbi_edge, theta_sce_edge, dvth_dibl, dvth_sce, litl_edge, DGAMMAEDGE_i, vdsatedge, Vdsatedge, Vdssate, phib_edge, phib_n_edge, NDEPEDGE_i, gam_edge; real vth0_stress_EDGE, k2_stress_EDGE, eta_stress_EDGE; -// 1/f noise model for Edge FET +// 1/f noise model for Edge FET real nq_edge, qdeff_edge, qs_edge, Leffnoi_edge, Leffnoisq_edge, noia_edge, noib_edge, noic_edge, FNPowerAtedge; // Below are used by macros by GEOMOD and RGEOMOD @@ -2632,7 +2632,7 @@ analog begin end else begin RDrainGeo = 0.0; end - // Clamping of S/D resistances + // Clamping of S/D resistances if (RDSMOD == 0) begin if (RSourceGeo < minr) begin @@ -3204,10 +3204,10 @@ analog begin // Vth shift for DIBL dVth_dibl = -(ETA0_a + ETAB_i * Vbsx) * Vdsx; `Smooth2(dVth_dibl, 0.0, 5.0e-5, dVth_dibl) - + // Vth shift with temperature dvth_temp = (KT1_i + KT1L / Leff + KT2_i * Vbsx) * (pow(TRatio, KT1EXP) - 1.0); - + // Vth correction for pocket implants if (DVTP0_i > 0.0) begin @@ -3615,8 +3615,8 @@ analog begin end end - Rdrain = Rdrain + rdrift_d; - Rsource = Rsource + rdrift_s; + Rdrain = Rdrain + rdrift_d; + Rsource = Rsource + rdrift_s; end QIOV = 0; @@ -3660,7 +3660,7 @@ analog begin vgfbdrift = -devsign * V(gm,si) - VFBOV ; vgfbdrift = vgfbdrift/Vt; `PO_psip(vgfbdrift,gamhv,0,phibHV,psip_k) - `BSIM_q(psip_k, phibHV, devsign * V(si,bi)/Vt, gamhv, q_k) + `BSIM_q(psip_k, phibHV, devsign * V(si,bi)/Vt, gamhv, q_k) `Smooth(psip_k, 1.0, 2.0, psipclamp_hv) sqrtpsip_k = sqrt(psipclamp_hv); @@ -3681,7 +3681,7 @@ analog begin QIOVS = NF * Wact * LOVERACC * 2 * nq_hv * Vt * T0 * q_k ; end - end + end Gcrg = 0.0; @@ -3708,14 +3708,14 @@ analog begin // Secondary impact ionization in the drift region if (HVMOD == 1 && IIMOD == 1) begin - Ntot = DRII1 * ids/(NF * Weff * `q * VDRIFT_t ); + Ntot = DRII1 * ids/(NF * Weff * `q * VDRIFT_t ); Nextra = Ntot/NDRIFTD - 1; `Smooth(Nextra, 0, DELTAII, Nextra) Nextra = NDRIFTD * Nextra; `Smooth(devsign * V(d,bi) - Vdseff - DRII2, 0, 0.05, T2) T3 = 2.0 * `q /(EPSRSUB * `EPS0) * Nextra; - T3 = T3 * T2; + T3 = T3 * T2; if (T3 > BETADR / `EXPL_THRESHOLD) begin T1 = -BETADR/T3; @@ -4008,7 +4008,7 @@ analog begin if (SSLMOD != 0) begin T1 = pow(NDEP_i / 1.0e23, SSLEXP1); T2 = pow(300.0 / DevTemp, SSLEXP2); - T3 = (devsign*SSL5 * V(bi,si)) / Vt; + T3 = (devsign*SSL5 * V(bi,si)) / Vt; SSL0_NT = SSL0 * lexp(-T1 * T2); SSL1_NT = SSL1 * T2 * T1; PHIB_SSL = SSL3 * tanh(lexp(devsign * SSL4 * (V(gi, bi) - VTH - V(si,bi)))); @@ -4042,7 +4042,7 @@ analog begin end else begin LH1 = Leff; T0 = LH1; - end + end if(LINTNOI >= T0 / 2.0) begin $strobe("Warning: LINTNOI = %e is too large - Leff for noise is negative. Re-setting LINTNOI = 0.", LINTNOI); LINTNOI_i = 0.0; @@ -4158,7 +4158,7 @@ analog begin end I(di, si) <+ flicker_noise(sigvds*FNPowerAt1Hz, EF, "1overf"); end - + T0 = qia / Esatnoi / Leff; T1 = T0 * T0; T3 = RNOIA * (1.0 + TNOIA * Leff * T1); @@ -4233,7 +4233,7 @@ analog begin if (IGBMOD != 0) begin I(gi, bi) <+ white_noise(2.0 * `q * abs(igb), "igb"); end - + // C-V model vgfbCV = vgfb; gamg2 = (2.0 * `q * epssi * NGATE_i) / (Cox * Cox * Vt); @@ -4281,7 +4281,7 @@ analog begin qdsat = LambdaC_by2 * (qs * qs + qs) / (1.0 + LambdaC_by2 * (1.0 + qs)); vdsatcv = psip - 2.0 * phibCV - (2.0 * qdsat + lln((qdsat * 2.0 * nq * inv_gam) * ((qdsat * 2.0 * nq * inv_gam) + (gam / (nq - 1.0))))); VdsatCV = vdsatcv * Vt; - + // Normalized charge qdeff at drain end of channel `Smooth(VdsatCV - Vs, 0.0, 1e-3, VdssatCV) VdssatCV = VdssatCV / ABULK; @@ -4397,7 +4397,7 @@ analog begin end Qovb = -devsign * NF * Lact * CGBO * V(gm, bi); Qovg = -(Qovs + Qovd + Qovb); - + // Edge FET model if (EDGEFET == 1) begin phib_edge = lln(NDEPEDGE_i / ni); @@ -4436,12 +4436,12 @@ analog begin gam_edge = sqrt(2.0 * `q * epssi * NDEPEDGE_i * inv_nVt) / Cox; gam_edge = gam_edge * (1.0 + DGAMMAEDGE_i); inv_gam = 1.0 / gam_edge; - + // psip: pinch-off voltage phib_n_edge = phib_edge / n; `PO_psip(vgfb, gam_edge, 0.0, phib_n_edge, psip) - - + + `BSIM_q(psip, phib_n_edge, vs, gam_edge, qs_edge) // Approximate pinch-off voltage @@ -4466,7 +4466,7 @@ analog begin nq_edge = 1.0 + gam_edge / (sqrtpsip + T2); ids_edge = 2.0 * NF * nq_edge * ueff * WEDGE / Leff * Cox * nVt * nVt * ((qs_edge - qdeff_edge) * (1.0 + qs_edge + qdeff_edge)) * Moc; ids = ids_edge + ids; - + // Flickernoise calculation for Edge FET noia_edge = NOIA * NEDGE; noib_edge = NOIB * NEDGE; @@ -4500,7 +4500,7 @@ analog begin end // End of Edge FET parasitic device drain current model - + // Charge expressions including fringing and overlap capacitances QB = devsign * (QBi + Qovb + Qbsj + Qbdj); if (sigvds > 0) begin @@ -4522,7 +4522,7 @@ analog begin if (HVCAPS == 1) begin Qovb = Qovb + QIOVS; Qovs = Qovs + QBOVS; - end + end end // Output @@ -4604,8 +4604,8 @@ analog begin if (sigvds > 0)begin GDS = ddx(IDS, V(di)); // Output conductance end else begin - GDS = ddx(-IDS, V(si)); - end + GDS = ddx(-IDS, V(si)); + end // Loading variables I(gi, bi) <+ ddt(QGI); @@ -4634,15 +4634,15 @@ analog begin end // External S/D resistances - + if (RDSMOD !=2 && RDrainGeo >0) begin gdpr = 1.0 / Rdrain; // Note: gdpr considers all fingers I(d, di) <+ V(d, di) * gdpr; I(d, di) <+ white_noise(Nt * gdpr, "rd"); end else begin V(d, di) <+ 0.0; - end - + end + if (RDSMOD !=2 && RSourceGeo >0) begin gspr = 1.0 / Rsource; // Note: gspr considers all fingers I(s, si) <+ V(s, si) * gspr; @@ -4650,8 +4650,8 @@ analog begin end else begin V(s, si) <+ 0.0; end - - + + if (RGATEMOD == 0) begin V(g, gm) <+ 0.0; end else begin: rgate @@ -4672,7 +4672,7 @@ analog begin end else begin V(gm, gi) <+ 0.0; end - + if ((SHMOD != 0) && (RTH0 > 0.0)) begin Pdiss = devsign * sigvds * ids * V(di, si); if (RDSMOD !=2 && RDrainGeo >0) begin @@ -4685,7 +4685,7 @@ analog begin end else begin Temp(t) <+ 0.0; end - + if (RBODYMOD != 0) begin I(bi, sbulk) <+ V(bi, sbulk) * Grbps; I(b, sbulk) <+ V(b, sbulk) * Grbsb; diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg.va b/examples/osdi/bsimcmg/vacode/bsimcmg.va index b73e4ecb8..376acaa8b 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg.va +++ b/examples/osdi/bsimcmg/vacode/bsimcmg.va @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ `include "constants.vams" diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg_body.include b/examples/osdi/bsimcmg/vacode/bsimcmg_body.include index ba66d6f45..6f0c93e3b 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg_body.include +++ b/examples/osdi/bsimcmg/vacode/bsimcmg_body.include @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ analog begin @@ -451,7 +451,7 @@ analog begin end Prsd = FPITCH + DELTAPRSD; // Resistivity calculation - if ($param_given(RHORSD)) begin + if ($param_given(RHORSD)) begin rhorsd = RHORSD; end else begin mu_max = (TYPE == `ntype) ? 1417.0 : 470.5; @@ -530,22 +530,22 @@ analog begin CGSO_i = CGSO; end else begin if ($param_given(DLC) && DLC > 0.0) begin - CGSO_i = max(0.0, DLC * cox - CGSL_i); + CGSO_i = max(0.0, DLC * cox - CGSL_i); end else begin - CGSO_i = 0.3 * TFIN * cox; + CGSO_i = 0.3 * TFIN * cox; end end if ($param_given(CGDO)) begin CGDO_i = CGDO; end else begin if ($param_given(DLC) && DLC > 0.0) begin - CGDO_i = max(0.0, DLC * cox - CGDL_i); + CGDO_i = max(0.0, DLC * cox - CGDL_i); end else begin - CGDO_i = 0.3 * TFIN * cox; + CGDO_i = 0.3 * TFIN * cox; end end end - + // Parasitic source/drain-to-gate fringe capacitance if (CGEOMOD == 2) begin Hg = TGATE + TMASK; @@ -1184,9 +1184,9 @@ analog begin T8 = T10 - e0 / e1; T12a = `lexp(-T8) + T8 - 1.0; if (T12a <= 0) begin - T12 = 0.0; - end else begin - T12 = T9 * sqrt(T12a); + T12 = 0.0; + end else begin + T12 = T9 * sqrt(T12a); end end else begin @@ -1898,11 +1898,11 @@ analog begin // External source/drain resistance if (RDSMOD == 2) begin - V(d, di) <+ 0.0; - V(s, si) <+ 0.0; + V(d, di) <+ 0.0; + V(s, si) <+ 0.0; end else begin - I(d, di) <+ V(d, di) / Rdrain; - I(s, si) <+ V(s, si) / Rsource; + I(d, di) <+ V(d, di) / Rdrain; + I(s, si) <+ V(s, si) / Rsource; end // NQS gate resistance model @@ -2106,7 +2106,7 @@ analog begin CESI = -ddx(QBI, V(si)); CEEI = ddx(QBI, V(e)); // Total capacitances - CGG = CGGI + ddx(qgs_parasitic + qgd_parasitic + (CGEOMOD == 1 ? qgs_fr + qgd_fr : 0.0) - devsign * Qeg, V(ge)); + CGG = CGGI + ddx(qgs_parasitic + qgd_parasitic + (CGEOMOD == 1 ? qgs_fr + qgd_fr : 0.0) - devsign * Qeg, V(ge)); CGS = -ddx(QG, V(si)); CGD = -ddx(QG, V(di)); CGE = -ddx(QG, V(e)); diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg_checking.include b/examples/osdi/bsimcmg/vacode/bsimcmg_checking.include index 73757052e..3afbd1f62 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg_checking.include +++ b/examples/osdi/bsimcmg/vacode/bsimcmg_checking.include @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ // Parameter checking diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg_initialization.include b/examples/osdi/bsimcmg/vacode/bsimcmg_initialization.include index 1baa0a079..dde4a38f8 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg_initialization.include +++ b/examples/osdi/bsimcmg/vacode/bsimcmg_initialization.include @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ // Source/drain resistances diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg_macros.include b/examples/osdi/bsimcmg/vacode/bsimcmg_macros.include index 8ad2859c4..60ab41d58 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg_macros.include +++ b/examples/osdi/bsimcmg/vacode/bsimcmg_macros.include @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ // Model types diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg_noise.include b/examples/osdi/bsimcmg/vacode/bsimcmg_noise.include index cc61be180..f629ff8fb 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg_noise.include +++ b/examples/osdi/bsimcmg/vacode/bsimcmg_noise.include @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ // Noise model diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg_parameters.include b/examples/osdi/bsimcmg/vacode/bsimcmg_parameters.include index 4d4571f0e..91479685a 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg_parameters.include +++ b/examples/osdi/bsimcmg/vacode/bsimcmg_parameters.include @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ // Both model and instance parameters diff --git a/examples/osdi/bsimcmg/vacode/bsimcmg_variables.include b/examples/osdi/bsimcmg/vacode/bsimcmg_variables.include index b6fe08847..3ea9b00b2 100644 --- a/examples/osdi/bsimcmg/vacode/bsimcmg_variables.include +++ b/examples/osdi/bsimcmg/vacode/bsimcmg_variables.include @@ -19,12 +19,12 @@ Licensed under Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://opensource.org/licenses/ECL-2.0 -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. BSIM-CMG model is supported by the members of Silicon Integration Initiative's Compact Model Coalition. A link to the most recent version of this -standard can be found at: http://www.si2.org/cmc +standard can be found at: http://www.si2.org/cmc */ // Variables