File: CMos2.0u25C.thy
Last Edited:
McCreight, April 2, 1985 6:16:51 pm PST
Sweetsun Chen, September 18, 1985 9:36:43 pm PDT
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← -1.22980,
Na← 9.885124E+16,
Tox← 295,
Lk1← -5.339235E-02,
Wk1← -7.352594E-02,
K20← 0.280243,
Lk2← 26.254938E-02,
Wk2← -0.524566,
Etao← 4.584877E-03,
nEta← 2.66516,
Un← 558.453,
Vo← 105.205,
Lu← 13.4530,
Ecrit← 4.09776,
Lv← 3.05445,
dL← -0.201643,
dW← -1.60051*dWFact,
Xj2 ← 0.4,
TDegC ← 25,
Cj ← 8.73E-17,
Cjm ← 1.10E-16,
Pb ← 0.90
]
}; -- NETran
ETran: circuit[gate, source, drain | L ← 2, W ← 4, sdExtend ← 0, dWFact ← 1] = {
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.
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.563522,
Na← 1.335061E+16,
Tox← 295,
Lk1← -0.977357,
Wk1← -5.709164E-02,
K20← -2.316437E-02,
Lk2← 2.57879,
Wk2← 3.92364,
Etao← 2.882671E-02,
nEta← 2.29445,
Un← 185.816,
Vo← 19.0121,
Lu← 1.56999,
Ecrit← 8.600,
Lv← 3.53001,
dL← -7.001376E-02,
dW← -1.54116*dWFact,
TDegC ← 25,
Xj2 ← 0.4,
Type ← -1,
Cj ← 2.33E-16,
Cjm ← 2.95E-16,
Pb ← 0.94
]
}; -- 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.0u25.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.24520,
Na ← 9.721774E+14,
Tox ← 700,
Lk1 ← -1.05228,
Wk1 ← 2.83468,
K20 ← -1.200934E-02,
Lk2 ← 6.95809,
Wk2 ← -0.802315,
Etao ← 2.570121E-02,
nEta ← 3.67642,
Un ← 848.461,
Vo ← 31.6363,
Lu ← -0.141426,
Ecrit ← 1.05208,
Lv ← 26.6670,
dL ← 0.550266,
dW ← -2.41600*dWFact,
TDegC ← Temp,
Cj ← 8.73E-17,
Cjm ← 2.21E-16,
Pb ← 0.90
]
}; -- 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]= {
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.
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 ← 0.90,
TDegC ← 25];
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 ← 0.94,
TDegC ← 25]
}; -- 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
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, October 24, 1984 6:18:37 pm PDT, corrected calculations for Ps/Pd using sdExtension.
McCreight, March 5, 1985 3:02:29 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.
NOTE: The CSIM transistor parameters agree with measured data taken from (CMOS36) Run 120, Wafer 10, DIE=128-127. This data in turn agrees with the nominal n-channel transconductance in ICL's Report, but is near the minimum p-channel transconductance in that report.