Diode: circuit[anode, cathode | Imax _ 1A, Io _ 10nA, Temp _ 25] asserts[Imax > Io, Io > 0, Temp > -100] = { diodeModel: model _ dcDiode[anode, cathode | Io, 8.61707E-5*(Temp + 273.16), \(Imax/Io)]; junction: current[anode, cathode] _ diodeModel[0] }; -- Diode MosFet: circuit[gate, source, drain, bulk | Lm _ 7.5, -- mask value of channel Length (micron) Wm _ 50, -- mask value of channel width (micron) As _ 1500, -- mask value of source area (micron**2) Ad _ 1500, -- mask value of drain area (micron**2) Ps _ 160, -- mask value of source perimeter (micron) better exclude the edge under the gate Pd _ 160, -- mask value of drain perimeter (micron) better exclude the edge under the gate Vfb _ -6.79025E-2, -- flat band voltage (v) Na _ 1.222319E15, -- substrate doping Na (cm-3) Tox _ 700, -- effective gate oxide thickness (A) Lk1 _ -1.35683, -- coefficient for calculating K1. (micron) Wk1 _ 0, -- coefficient for calculating K1. (micron) K20 _ 1.371516E-2, -- coefficient for calculating K2. () Lk2 _ -4.96626, -- coefficient for calculating K2. (micron) Wk2 _ 0, -- coefficient for calculating K2. (micron) Etao _ 2.552937E-3, -- eta coefficient (), eta=Etao + nEta*Tox/Le nEta _ 3.59803, -- eta coefficient () Un _ 831.342, -- effective channel mobility (cm2/v/sec) Vo _ 14.8133, -- mobility modulation coefficient (v) Lu _ -0.109125, -- mobility modulation coefficient (micron) Ecrit _ 1.29325, -- Critical field strength (v/micron) Lv _ 9.54961, -- coefficient for U1 (micron) dL _ -0.387413, -- change in electrical channel Length from mask (micron) dLComp _ 0, -- poly mask (gate length) compensation (micron) dW _ 0, -- change in electrical channel width from mask (micron) dWComp _ 1, -- dif mask (gate width) compensation (micron) Xj2 _ 0.8, -- 2 times lateral diffusion, (micron) TDegC _ 25, -- temparature (degree C) NoCap _ 0, -- flag. if # 0, shut off gate capacitance. Type _ 1, -- channel type (1: n channel, -1: p channel) Jmax _ 100u, -- maximum current density allowed to go thru bs or bd junctions (A/u2) Jo _ 5E-17, -- reverse saturation current density of the bs or bd junctions (A/u2) Cj _ 3.1E-14, -- zero-bias substrate junction capacitance (F/micron**2) Cjm _ 0, -- zero-bias perimeter substrate capacitance (F/micron) Pb _ 0.866, -- junction built-in voltage (v) M _ 0.1 -- off gate capacitance multiplier ] asserts[As >= 0, Ad >= 0, Ps >= 0, Pd >= 0, Tox > 0, Un > 0, Ecrit > 0, Xj2 > 0, Jmax > Jo, Jo > 0, Cj >= 0, Cjm >= 0, M >= 0, M < 0.4] = { Mos0: circuit[ | TDegK] asserts[TDegK > 200] = { Mos1: circuit[ | Cox, TDegKBy300, Vt] = { Mos2: circuit[ | Ni, K10, Le, We] asserts[Na > Ni, Le > .5, We > .5] = { Mos3: circuit[ | TwoPhiF, K1, Eta, U0, Cgbo] asserts[Pb > TwoPhiF] = { mosModel: model _ CSIM[gate, source, drain, bulk | Vfb, -- vfb(V) TwoPhiF, -- twoPhiF(V) K1, -- k1(V^0.5) K20*(1.0 + Lk2/Le + Wk2/We), -- k2() Eta, -- eta() (Un*1E8)*Cox*We/Le, -- betao(F/Vsec), > 0 U0, -- u0(1/V) 1E-7 MAX ((1/Le-1/Lv)/(2*Ecrit)), -- u1(1/V) Cgbo*M, -- CgboM(F) Cgbo*2.0/3.0, -- Cgbo23rds(F) Cox*We*Xj2/2.0, -- Cov(F) Cj*As + Cjm*Ps, -- Cbso(F) Cj*Ad + Cjm*Pd, -- Cbdo(F) Pb, -- phiB(V) Jo*As, -- Io for source(A) Jo*Ad, -- Io for drain(A) Vt, -- kT/q(V) (TwoPhiF/Vt) MIN \(Jmax/Jo), -- expMax() NoCap, -- NoCap() Type -- nChannel ]; i: current[drain, source] _ mosModel[0]; cgb: capacitor[gate, bulk] _ mosModel[1]; cgs: capacitor[gate, source] _ mosModel[2]; cgd: capacitor[gate, drain] _ mosModel[3]; cbs: capacitor[bulk, source] _ mosModel[4]; cbd: capacitor[bulk, drain] _ mosModel[5]; jbs: current[bulk, source] _ mosModel[6]; jbd: current[bulk, drain] _ mosModel[7] }; -- Mos3 mos3: Mos3[ | TwoPhiF _ 2.0*Vt*\(Na/Ni), -- (V), K1 _ K10*(0.1 MAX (1.0 + Lk1/Le + Wk1/We)), -- (V^0.5) Eta _ 1E-7 MAX (Etao + nEta*Tox/10000/Le), -- () U0 _ 1E-8 MAX (1.0/Vo*(1.0 + Lu/Le)), -- (1/V) Cgbo _ Cox*Le*We -- (F) ] }; -- Mos2 mos2: Mos2[ | Ni _ 1.45E10*TDegKBy300*/TDegKBy300*^(1.12*(1-300/TDegK)/(2.0*Vt)), -- (#/cm3) K10 _ /(3.20438E-19*Na*11.7*8.854215E-14)*1.0E-8/Cox, -- SqRt[2q*Esi*Na]/Cox (V^0.5) Le _ Lm - Xj2 + dL + dLComp, -- (micron) We _ Wm + dW + dWComp -- (micron) ] }; -- Mos1 mos1: Mos1[ | Cox _ 3.9*8.854215E-14/Tox, -- (F/cm/A)=(F/micron2) TDegKBy300 _ TDegK/300.0, -- T/300 () Vt _ 8.61707E-5*TDegK -- (ev) ] }; -- Mos0 mos0: Mos0[ | TDegK _ TDegC + 273.16] }; -- MosFet Diffusion: circuit[cathode, anode | a _ 0, p _ 0, Cj _ 0, Cjm _ 0, Pb _ 0.866, TDegC _ 25, Jmax _ 100u, Jo _ 5p] asserts[Cj >= 0, Cjm >= 0, TDegC > -75, Jmax > Jo, Jo > 0 ] = { Dif: circuit[ | Vt] asserts[Pb > Vt] = { DModel: model _ acDiode[cathode, anode | Cj*a + Cjm*p, -- zero-bias capacitance of diode Pb, -- junction built-in voltage (v) Vt, -- kT/q Jo*a, -- Io (Pb/Vt) MIN \(Jmax/Jo) ]; C: capacitor[cathode, anode] _ DModel[0]; -- voltage dependent capacitance I: current[cathode, anode] _ DModel[1] -- leakage current }; -- Dif dif: Dif[ | Vt _ 8.61707E-5*(TDegC + 273.16)] }; -- Diffusion Pulse: circuit[output | amplitude _ 5V, offset _ 0, period _ 10ns, width _ 5ns, tRise _ 2ns, tFall _ 2ns, tDelay _ 0] asserts[width < period, tRise + tFall < width] = { pg: voltage[output, Gnd] _ PulseGen[amplitude + offset, offset, period, width, tRise, tFall, tDelay] }; -- Pulse RectWave: circuit[output | OnLevel _ 5V, OffLevel _ 0V, period _ 20ns, width _ 10ns, tRise _ 2ns, tFall _ 2ns, tDelay _ 0ns] asserts[width < period, tRise + tFall < width] = { pg: voltage[output, Gnd] _ PulseGen[OnLevel, OffLevel, period, width, tRise, tFall, tDelay] }; -- RectWave OneShot: circuit[output | OnLevel _ 5V, OffLevel _ 0V, width _ 10ns, tRise _ 2ns, tFall _ 2ns, tDelay _ 0ns] asserts[tRise + tFall < width] = { pg: voltage[output, Gnd] _ OneShotGen[OnLevel, OffLevel, width, tRise, tFall, tDelay] }; -- OneShot Step: circuit[output | OnLevel _ 5V, OffLevel _ 0V, tRise _ 5ns, tDelay _ 0ns] asserts[tRise > 0] = { pg: voltage[output, Gnd] _ StepGen[ OnLevel, OffLevel, tRise, tDelay] }; -- Step ìFile: [Thyme]Cedar5.2>Top>ThymeBasics.thy Last Edited by: SChen, July 31, 1984 8:08:25 pm PDT Last Edited by: McCreight, March 8, 1985 2:53:52 pm PST value from J. Chen, March 8, 1985 the max forward bias allowed for the source-bulk and drain-bulk junctions is MAX[2phif, (kT/q)*Ln[Jmax/Jo]] , a >= 0, p >= 0 removed to allow hierarchical extractor to adjust capacitances Change Log. Barth, April 11, 1983 11:51 AM SChen, June 11, 1983 7:03 PM Tremain, July 29, 1983 12:33 PM ÊÀ˜Jšœ0™0Jšœ3™3J™7J˜šÏbœ;˜@J˜+J˜˜,J˜,—J˜1JšœÏc˜ —J˜šœ%˜+Jšœ ž(˜2Jšœ ž(˜1Jšœ ž(˜3Jšœ ž'˜2Jšœ žQ˜[Jšœ žP˜ZJšœž˜+Jšœž˜/Jšœ ž%˜0Jšœž+˜;Jšœ ž+˜4Jšœž%˜8Jšœž+˜;Jšœ ž+˜4Jšœž-˜AJšœž˜%Jšœž)˜7Jšœž&˜4Jšœž,˜