NETran: circuit[gate, source, drain, bulk | l _ 2, w _ 8, as _ 240, ad _ 240, ps _ 80, pd _ 80, dWFact _ 1] = { fet: MosFet[gate, source, drain, bulk | Lm _ l*Lambda, Wm _ w*Lambda, As _ as*Lambda*Lambda, Ad _ ad*Lambda*Lambda, Ps _ ps*Lambda, Pd _ pd*Lambda, Vfb_ -0.710305, Na_ 4.505551E+16, Tox_ 310, Lk1_ -0.340033, Wk1_ 0.193772, K20_ 0.179467, Lk2_ -0.148137, Wk2_ -0.180754, Etao_ 2.541379E-02, nEta_ 3.38740, Un_ 396.157, Vo_ 38.8748, Lu_ 1.000E-06, Ecrit_ 2.15085, Lv_ 3.67376, dL_ -0.136870, dW_ -1.20537*dWFact, Xj2 _ 0.4, TDegC _ 100, Cj _ 5.27E-17, Cjm _ 6.64E-17, Pb _ 1.1265 ] }; -- NETran ETran: circuit[gate, source, drain | L _ 2, W _ 4, sdExtend _ 0, dWFact _ 1] = { nt: NETran[gate, source, drain, Gnd | l _ L, w _ W, as _ W*sdExtend, ad _ W*sdExtend, ps _ 2*sdExtend+(sdExtend>0)*W, pd _ 2*sdExtend+(sdExtend>0)*W, dWFact _ dWFact ] }; -- ETran PETran: circuit[gate, source, drain, bulk | l _ 2, w _ 24, as _ 720, ad _ 720, ps _ 110, pd _ 110, dWFact _ 1] = { fet: MosFet[gate, source, drain, bulk | Lm _ l*Lambda, Wm _ w*Lambda, As _ as*Lambda*Lambda, Ad _ ad*Lambda*Lambda, Ps _ ps*Lambda, Pd _ pd*Lambda, Vfb_ -0.264791, Na_ 1.133016E+16, Tox_ 310, Lk1_ -1.11216, Wk1_ -3.509532E-02, K20_ -5.339097E-02, Lk2_ 1.32741, Wk2_ 1.41077, Etao_ 3.449609E-02, nEta_ 2.61475, Un_ 135.857, Vo_ 18.9479, Lu_ 0.516323, Ecrit_ 9.55550, Lv_ 3.51166, dL_ -8.836786E-02, dW_ -1.19803*dWFact, TDegC _ 100, Xj2 _ 0.4, Type _ -1, Cj _ 1.92E-16, Cjm _ 2.43E-16, Pb _ 1.18 ] }; -- PETran CTran: circuit[gate, source, drain | L _ 2, W _ 4, sdExtend _ 0, dWFact _ 1] = { pt: PETran[gate, source, drain, Vdd | l _ L, w _ W, as _ W*sdExtend, ad _ W*sdExtend, ps _ 2*sdExtend+(sdExtend>0)*W, pd _ 2*sdExtend+(sdExtend>0)*W, dWFact _ dWFact ] }; -- CTran NDTran: circuit[gate, source, drain | -- from NMos4.0u75C.thy L _ 4, W _ 2, sourceExtension _ 1, drainExtension _ 1, dWFact _ 1]= { fet: MosFet[gate, source, drain, Gnd | Lm _ L*Lambda, Wm _ W*Lambda, As _ sourceExtension*W*Lambda*Lambda, Ad _ drainExtension*W*Lambda*Lambda, Ps _ (2*sourceExtension+W)*Lambda, Pd _ (2*drainExtension+W)*Lambda, Vfb _ -4.23788, Na _ 9.721774E+14, Tox _ 700, Lk1 _ -1.21598, Wk1 _ 2.89924, K20 _ -1.090938E-02, Lk2 _ 9.20827, Wk2 _ -0.935040, Etao _ 2.529529E-02, nEta _ 3.90803, Un _ 636.284, Vo _ 35.1750, Lu _ -0.154980, Ecrit _ 1.21462, Lv _ 21.3101, dL _ 0.550266, dW _ -2.41600*dWFact, TDegC _ Temp, Cj _ 8.6E-17, Cjm _ 2.17E-16, Pb _ 0.9325 ] }; -- NDTran WireCap: circuit[n | -- l=length, w=width, a=area, p=perimeter lM2 _ 0, wM2 _ 4, aM2 _ 0, pM2 _ 0, -- 2nd layer metal lM _ 0, wM _ 3, aM _ 0, pM _ 0, -- 1rst layer metal lP _ 0, wP _ 2, aP _ 0, pP _ 0, -- poly aG_ 0, pG _ 0, -- poly over thin oxide (if transistor unsimulated) aM2C _ .197E-4pF, pM2C _ .486E-4pF, -- /(uM)^2, /uM, 2nd layer metal to bulk aMC _ .276E-4pF, pMC _ .496E-4pF, -- 1rst layer metal to bulk aPC _ .628E-4pF, pPC _ .577E-4pF, -- poly to bulk aGC _ 11.8e-4pF -- poly over thin oxide ] = { ?: capacitor[n, Gnd] = Lambda*(Lambda*((aM2 + lM2*wM2)*aM2C + (aM + lM*wM)*aMC + (aP + lP*wP)*aPC + aG*aGC) + (pM2 + 2*lM2 + 2*wM2)*pM2C + (pM + 2*lM + 2*wM)*pMC + (pP + 2*lP)*pPC) }; -- WireCap DifCap: circuit[n | lnD _ 0, wnD _ 0, anD _ 0, pnD _ 0, lpD _ 0, wpD _ 0, apD _ 0, ppD _ 0]= { ndc: Diffusion[n, Gnd | a _ (lnD*wnD+anD)*Lambda*Lambda, p _ (2*(lnD+wnD)+pnD)*Lambda, Cj _ 1.5E-4pF, -- /(um)^2 Cjm _ 3E-4pF, -- /um of sidewall Pb _ 1.1265, TDegC _ 100]; pdc: Diffusion[n, Gnd | a _ (lpD*wpD + apD)*Lambda*Lambda, p _ (2*(lpD + wpD) + ppD)*Lambda, Cj _ 3.1E-4pF, Cjm _ 3.0E-4pF, Pb _ 1.18, TDegC _ 100] }; -- DifCap WireRes: circuit[nodeA, nodeB | lM2 _ 0, wM2 _ 4, lM _ 0, wM _ 3, lP _ 0, wP _ 2, lnD _ 0, wnD _ 2, lpD _ 0, wpD _ 2, sM2R _ 0.06, -- ohms/square sMR _ 0.06, sPR _ 3.5, -- polysilicide snDR _ 35, spDR _ 120] = { R: resistor[nodeA, nodeB] = lM2/wM2*sM2R + lM/wM*sMR + lP/wP*sPR + lnD/wnD*snDR + lpD/wpD*spDR }; -- WireRes ConRes: circuit[nodeA, nodeB | nM2M _ 0, -- number of parallel 2nd layer metal to 1rst layer metal vias nMP _ 0, -- number of parallel 1rst layer metal to poly contacts nMD _ 0, -- number of parallel 1rst layer metal to diffusion contacts nPD _ 0, -- number of parallel poly to diffusion contacts, butting cM2MR _ 40, -- ohms/via, 2nd layer metal to 1rst layer cMPR _ 4, -- ohms/contact, metal-polysilicide cMDR _ 25, -- ohms/contact, metal-diffusion cPDR _ 50 -- ohms/contact, poly-diffusion, with metal strap, i.e. butting contact ] = { R: resistor[nodeA, nodeB] = 1/(nM2M/cM2MR + nMP/cMPR + nMD/cMDR + nPD/cPDR) }; -- ConRes Stray: circuit[n | aM2 _ 0, pM2 _ 0, aM _ 0, pM _ 0, aP _ 0, pP _ 0, anD _ 0, pnD _ 0, apD _ 0, ppD _ 0, aG _ 0, pG _ 0 ] = { wireCap: WireCap [n | aM2 _ aM2, pM2 _ pM2, aM _ aM, pM _ pM, aP _ aP, pP _ pP, aG _ aG, pG _ pG]; difCap: DifCap [n | anD _ anD, pnD _ pnD, apD _ apD, ppD _ ppD]; }; -- Stray File: [Cherry]Cedar5.2>ProcessDefs>CMos2.0u100C.thy Last Edited by: SChen, October 24, 1984 6:30:26 pm PDT Last Edited by: McCreight, April 2, 1985 6:17:14 pm PST sdExtend default set to 0, dWFact added by McCreight, March 7, 1985 12:41:31 pm PST sdExtend is added by Ted Williams on July 7, 1983 11:48 AM It is a guessed value to calculate source and drain capacitance, as suggested by McCreight. Nobody really has a better way. The 0-bias values are taken from ICL's "Report on Process and Electrical Parameters" by Richard Bruce and John Chen, dated 21 Feb 85. The n+ area and perimeter values in that report are measured, and the p+ area and perimeter values are inherited from I. Bol's MEC "Xerox CMOS Process Specification and Layout Design Rules" memo of February 83. Change Log. Created on June 11, 1983 5:51 PM. Entered parameters extracted by Akis Doganis for CMOS21, run 70, wafer 9, DIE=126-127. (cf. Akis' memo of May 17, 83.); Values for Cj, Cjm, and Pb were calculated from process data provided by RBruce. (SChen) Added parasitic circuits. (Barth) McCreight, September 15, 1983 to add Stray capacitances from I. Bol's Xerox (ED) CMOS Spec of Feb 83 McCreight, October 18, 1983 5:27 PM to add simulated depletion NMOS Ted Williams June 22, 1984 2:08 PM to add new extracted data from Akis Doganis for CSIM model. (CMOS36) Run 120, Wafer 10, DIE=128-127. SChen, September 5, 1984 9:18:51 pm PDT, added new extracted data from Akis for CMOS-145 @100"C. Cf. Akis's memo of 30 Aug 84, 1984. SChen, October 24, 1984 6:18:37 pm PDT, corrected calculations for Ps/Pd using sdExtension. McCreight, March 5, 1985 3:02:34 pm PST to cause calculated stray capacitances to agree with Wheeler's microstrip equations for fringing capacitance (Transmission-Line Properties of a Strip on a Dielectric Sheet on a Plane, IEEE Transactions on Microwave Theory and Techniques, vol MTT-25, No. 8, August, 1977, pp. 631-647). to cause diffusion capacitances to agree with ICL's Report on Process and Electrical Parameters by R. Bruce and J. Chen, 21 Feb 85. Κω˜Jšœ:™:Jšœ6™6J™7J˜šΟbœi˜oJ˜˜'J˜J˜J˜J˜J˜J˜J˜J˜J˜ J˜J˜J˜J˜J˜J˜J˜J˜ J˜ J˜J˜J˜ J˜Jšœ˜J˜ J˜ J˜J˜J˜ J˜—JšœΟc ˜ —J˜šœ ΟkœŸœ#˜PJšœS™SJšœ;™;Jšœ}™}šœ%˜%JšœŸœ˜JšœŸœ˜JšœŸœ ˜JšœŸœ ˜JšœŸœ˜JšœŸœ˜Jšœ˜Jšœ˜—Jšœž˜ J˜—šœ%˜+JšœF˜FIbreak˜˜'J˜J˜J˜J˜J˜J˜J˜J˜J˜ J˜J˜J˜J˜ J˜ J˜J˜J˜ J˜ J˜ J˜J˜ J˜J˜J˜ J˜ J˜ J˜J˜J˜ J˜—Jšœž ˜ —J˜šœ ŸœŸœ#˜Pšœ%˜%JšœŸœ˜JšœŸœ˜JšœŸœ ˜JšœŸœ ˜JšœŸœ˜JšœŸœ˜J˜Jšœ˜—šœž˜ J˜——šœ ž˜=JšŸœŸœ=˜EJ˜˜&JšœŸœ˜JšœŸœ˜JšœŸœ˜&JšœŸœ˜$JšœŸœ ˜#JšœŸœ ˜!J˜J˜J˜ J˜J˜J˜J˜J˜J˜J˜J˜ J˜ J˜J˜J˜ J˜Jšœ˜J˜ J˜ J˜J˜ J˜—Jšœž ˜ —J˜šœž)˜?Jšœ$ž˜6Jšœ!ž˜4Jšœ!ž˜(Jšœž3˜BJšœ$ž(˜LJšœ#ž˜>Jšœ#ž˜2Jšœž˜'J˜J˜JšŸœ³˜΄Jšœž ˜ J˜—šœ ˜J˜JJšœΩ™ΩJ˜˜J˜ J˜Jšœž ˜Jšœž˜ J˜ J˜ —J˜˜J˜"J˜!J˜J˜J˜ J˜ —Jšœž ˜ —J˜šœ˜J˜J˜J˜J˜J˜J˜Jšœ ž˜J˜ Jšœ ž˜J˜ J˜J˜JšŸœ]˜^Jšœž ˜ J˜—šœ˜Jšœ ž>˜HJšœ ž7˜@Jšœ ž<˜EJšœ ž:˜CJšœ ž*˜6Jšœ ž#˜-Jšœ ž ˜+Jšœ žG˜QJ˜J˜JšŸœJ˜KJšœž ˜ —J˜šœ˜J˜J˜J˜J˜J˜J˜J˜J˜˜J˜J˜J˜J˜—J˜J˜@Jšœž˜ —J˜Jšœ ™ Jšœ–™–Jšœe™eJšœE™EJ™ˆJšœ]Οmœ&™„J™[šœ'™'Jšœœ™œJ™ƒ—J™—…—