diff --git a/Lab3/16nmhp.png b/Lab3/16nmhp.png new file mode 100644 index 0000000..1a832c8 Binary files /dev/null and b/Lab3/16nmhp.png differ diff --git a/Lab3/16nmhpbeta.png b/Lab3/16nmhpbeta.png new file mode 100644 index 0000000..c94b9ce Binary files /dev/null and b/Lab3/16nmhpbeta.png differ diff --git a/Lab3/16nmlp.png b/Lab3/16nmlp.png new file mode 100644 index 0000000..e649ca1 Binary files /dev/null and b/Lab3/16nmlp.png differ diff --git a/Lab3/1um.png b/Lab3/1um.png new file mode 100644 index 0000000..d4fa566 Binary files /dev/null and b/Lab3/1um.png differ diff --git a/Lab3/50nm.png b/Lab3/50nm.png new file mode 100644 index 0000000..66dbb02 Binary files /dev/null and b/Lab3/50nm.png differ diff --git a/Lab3/fanoutVsDelay.cir b/Lab3/fanoutVsDelay.cir new file mode 100644 index 0000000..7bb20ca --- /dev/null +++ b/Lab3/fanoutVsDelay.cir @@ -0,0 +1,123 @@ +*Assignment: +* Find the measured logical effort for a two input NOR gate, and a two input NAND gate +* empirically by taking the ratio of slopes for delay vs fanout for the logic gates +* and an inverter. +* Plot delay as a function of fanout for an inverter, 2 input Nor and Nand. +* measure the slopes of these lines. +* ratio the slopes for Nand and Nor to that of the inverter +* how does that compare to back of envelope calculation for this technology? + + +***** long channel VTP = -0.9, VTN = 0.8 ***** +* .include modelcard/1um.pm +* .param supply = 5 +* .param ll = 1u + +****** 50nm models*** +* .include ./modelcard/50nm.pm +* .param supply =1 +* .param ll=50nm + + +****** 16nm low power models*** +* .include ./modelcard/PTM_LP/16nm.pm +* .param supply =0.9 +* .param ll=16nm + +****** 16nm high peformance models*** +.include ./modelcard/PTM_HP/16nm.pm +.param supply =0.7 +.param ll=16nm + + + + + + +.subckt nn d g s ww=100nm +mnfet d g s 0 nmos L=ll w=ww +.ends + +.subckt pp d g s ww=100nm +mpfet d g s vdd pmos L=ll w=ww +.ends + + +.subckt inv out inn size=100n beta=2 +XPP out inn vdd pp ww='size*beta/(beta+1)' +XNN out inn 0 nn ww='size/(beta+1)' +.ENDS inv + +.subckt nd2 out in0 in1 size=100n beta=2 +Xp0 out in0 vdd pp ww='beta*size/(beta+2)' +Xp1 out in1 vdd pp ww='beta*size/(beta+2)' +Xn0 out in0 nnn nn ww='2*size/(beta+2)' +Xn1 nnn in1 gnd nn ww='2*size/(beta+2)' +.ends nd2 + +.subckt no2 out in0 in1 size=100n beta=2 +Xp0 nnn in0 vdd pp ww='2*beta*size/(2*beta+1)' +Xp1 out in1 nnn pp ww='2*beta*size/(2*beta+1)' +Xn0 out in0 gnd nn ww='size/(2*beta+1)' +Xn1 out in1 gnd nn ww='size/(2*beta+1)' +.ends no2 + +.subckt dut out inn size = 10 bb = 1.5 +* xdut out inn inv size='size' beta='bb' +* Xnn2 out inn vdd nd2 size='size' beta='bb' +* Xno2 out inn gnd no2 size='size' beta='bb' +Xno2 out gnd inn no2 size='size' beta='bb' +.ends dut + +*********begin: topLevel***** +.ic v(n0)=0 +.param mm=1 +.param gg=100 +x0 n1 n0 dut size='gg*ll' +x1 n2 n1 dut size='gg*ll' +x2 n3 n2 dut size='gg*ll' +x3 n4 n3 dut size='gg*ll' +x4 n5 n4 dut size='gg*ll' +x5 n6 n5 dut size='gg*ll' +x6 n0 n6 dut size='gg*ll' + +x7 thr thr dut size='gg*ll' + +xl0 p1 n0 dut size={ll*gg*mm} +xl1 p2 n1 dut size={ll*gg*mm} +xl2 p3 n2 dut size={ll*gg*mm} +xl3 p4 n3 dut size={ll*gg*mm} +xl4 p5 n4 dut size={ll*gg*mm} +xl5 p6 n5 dut size={ll*gg*mm} +xl6 p0 n6 dut size={ll*gg*mm} + + +* Parameters +.global gnd vdd +.param gnd=0 + + +*DC supplies +vdd vdd 0 'supply' + +* this line directs the simulator to perform a transient analysis +* .tran +.tran 1p 40n + + + + +* Below are measurment statements that direct the simulator to make the specified measurements and write the to *.log file +* Search the *.log file for the names (ivdd, del10,del1, rtime, ftime) to find the results. +* one can also measure these value in the waveform viewer +.meas ivdd find i(vdd) at=1.8n +.meas thresh find v(thr) at=1.8n +.meas del10 trig v(n1) val='0.5*supply' cross =2 targ v(n1) val='0.5*supply' cross =12 +.meas del1 param = 'del10/70' +.meas rtime trig v(n2) val= '0.1 * supply' rise = 2 targ v(n2) val = '0.9*supply' rise =2 +.meas ftime trig v(n2) val= '0.9 * supply' fall = 2 targ v(n2) val = '0.1*supply' fall =2 + + + + + diff --git a/Lab3/lab3.tex b/Lab3/lab3.tex new file mode 100644 index 0000000..7051135 --- /dev/null +++ b/Lab3/lab3.tex @@ -0,0 +1,161 @@ +\documentclass{article} +\usepackage[margin=1in]{geometry} +\usepackage{amsmath} +\usepackage{graphicx} +\usepackage{multicol} +\begin{document} +\section*{Lab 2} +\newcommand{\width}{0.6\linewidth} + +The following five tables present the collected data for +the 4 technologies, as well as an additional measurement +of the high-power $16nm$ technology with $\beta=1.5$. +The first three columns are in seconds, while the last +column is the normalized logical effort. The first +row ($h=0$) is extrapolated from the other two data points. + +\begin{figure}[h] + \centering + \begin{tabular}{lccccc} + & Inverter & NAND & NOR (1) & NOR (2) \\ + \hline + $h=0$ & 1.70E-11 & 2.37E-11 & 9.52E-11 & 2.69E-11 \\ + $h=2$ & 1.74E-10 & 2.00E-10 & 2.98E-10 & 2.50E-10 \\ + $h=4$ & 3.31E-10 & 3.76E-10 & 5.00E-10 & 4.74E-10 \\ + $\frac{dt}{dh}$ & 7.85E-11 & 8.81E-11 & 1.01E-10 & 1.12E-10 \\ + $g$ & 1.00E+00 & 1.12E+00 & 1.29E+00 & 1.42E+00 + \end{tabular} + \label{fig:1um} + \caption{Delays, Slopes, and Logical Efforts of Gates at $1\mu m$} +\end{figure} + +\begin{figure}[h] + \centering + \begin{tabular}{lccccc} + & Inverter & NAND & NOR (1) & NOR (2) \\ + \hline + $h=0$ & 7.50E-12 & 1.39E-11 & 2.96E-11 & 1.42E-11 \\ + $h=2$ & 3.57E-11 & 4.83E-11 & 6.73E-11 & 5.89E-11 \\ + $h=4$ & 6.40E-11 & 8.27E-11 & 1.05E-10 & 1.04E-10 \\ + $\frac{dt}{dh}$ & 1.41E-11 & 1.72E-11 & 1.89E-11 & 2.23E-11 \\ + $g$ & 1.00E+00 & 1.22E+00 & 1.34E+00 & 1.58E+00 + \end{tabular} + \label{fig:50nm} + \caption{Delays, Slopes, and Logical Efforts of Gates at $50nm$} +\end{figure} + +\begin{figure}[h] + \centering + \begin{tabular}{lccccc} + & Inverter & NAND & NOR (1) & NOR (2) \\ + \hline + $h=0$ & 6.12E-12 & 1.21E-11 & 2.32E-11 & 1.52E-11 \\ + $h=2$ & 2.30E-11 & 3.48E-11 & 5.50E-11 & 4.80E-11 \\ + $h=4$ & 3.99E-11 & 5.75E-11 & 8.69E-11 & 8.07E-11 \\ + $\frac{dt}{dh}$ & 8.44E-12 & 1.13E-11 & 1.59E-11 & 1.64E-11 \\ + $g$ & 1.00E+00 & 1.34E+00 & 1.89E+00 & 1.94E+00 \\ + \end{tabular} + \label{fig:16nmlp} + \caption{Delays, Slopes, and Logical Efforts of Gates at $16nm$ (LP)} +\end{figure} + +\begin{figure}[h!] + \centering + \begin{tabular}{lccccc} + & Inverter & NAND & NOR (1) & NOR (2) \\ + \hline + $h=0$ & 1.87E-12 & 4.21E-12 & 7.84E-12 & 3.71E-12 \\ + $h=2$ & 5.14E-12 & 8.11E-12 & 1.26E-11 & 9.58E-12 \\ + $h=4$ & 8.41E-12 & 1.20E-11 & 1.73E-11 & 1.54E-11 \\ + $\frac{dt}{dh}$ & 1.63E-12 & 1.95E-12 & 2.37E-12 & 2.93E-12 \\ + $g$ & 1.00E+00 & 1.19E+00 & 1.45E+00 & 1.80E+00 \\ + \end{tabular} + \label{fig:16nmhp} + \caption{Delays, Slopes, and Logical Efforts of Gates at $16nm$ (HP)} +\end{figure} + +\begin{figure}[h!] + \centering + \begin{tabular}{lccccc} + & Inverter & NAND & NOR (1) & NOR (2) \\ + \hline + $h=0$ & 1.87E-12 & 3.88E-12 & 7.12E-12 & 3.57E-12 \\ + $h=2$ & 4.99E-12 & 7.90E-12 & 1.17E-11 & 9.09E-12 \\ + $h=4$ & 8.11E-12 & 1.19E-11 & 1.62E-11 & 1.46E-11 \\ + $\frac{dt}{dh}$ & 1.56E-12 & 2.01E-12 & 2.27E-12 & 2.76E-12 \\ + $g$ & 1.00E+00 & 1.29E+00 & 1.45E+00 & 1.77E+00 \\ + \end{tabular} + \label{fig:16nmhpbeta} + \caption{Delays, Slopes, and Logical Efforts of Gates at $16nm$ (HP) and $\beta=1.5$} +\end{figure} + +\pagebreak + +\begin{multicols}{2} + \includegraphics[width=\linewidth]{1um.png} \par + \includegraphics[width=\linewidth]{50nm.png} \par +\end{multicols} +\begin{multicols}{2} + \includegraphics[width=\linewidth]{16nmlp.png} \par + \includegraphics[width=\linewidth]{16nmhp.png} \par +\end{multicols} + +\begin{figure}[h!] + \centering + \includegraphics[width=0.5\linewidth]{16nmhpbeta.png} +\end{figure} + +I'm not completely certain why different technologies +would have differing logical efforts. However, I would +assume that in the case of smaller technologies, the issue +is due to various short-channel effects. For intance, +if the transistors are ``leaky'', and we're trying +to pull the output up, some of the charge will +consistently escape through the nMOS transistors, +increasing the time it would take to charge the +output capacitor. This effect would scale with the electrical +effort, since it would affectively lower the rate at which +charge flows into the output. The lab data is consistent +with this prediction, with normalized logical effort +values being consistently higher in smaller technologies. +Furthermore, with effects such as DIBL, it's possible +that the CMOS assembly spends more time with both +the nMOS and pMOS transistors conducting current, +which again would reduce the rate at which we +can charge the output. + +The linear analysis that we typically perform rests on many +levels of simplification. One of these levels ignores all but +the capacitance of the transistors connected to the output +to estimate a gate's output capacitance. However, depending +on the situation, the capacitances of other transistors +can play a role in the final output as well. This is +the case for a NOR gate, specifically when it's being pulled +down. It's possible that the ``top'' nMOS transistor of this +gate was transparent while its output was high, which +would charge the inner diffusion node between the two nMOs transistors +to roughly $V_{GT}$. This contributes additional +charge to the output, so it takes longer to pull down. + +In our specific situation, one input is constantly connected +to $V_{dd}$, meaning that it is transparent. If this is +the top input, it would allow charge into the shared nMOS +diffusion region, causing a delay as described above. +This is precisely what we see in the data: the NOR(1) +column, in which the ``top`` transistor is connected +to $V_dd$, the delays are higher. + +I used an alternative value of $\beta=1.5$. For the NAND gate, the logical effort +increased (from 1.19 to 1.29). I believe +that this is due to the resistances of the the pMOS transistors +(which are affected by this change). In the NAND gate, there are +two pMOS transistors in parallel. When beta is reduced from 2 to 1.5, +their resistance goes up by a factor of $4/3$. Since the pull up time of the NAND +gate is affected by the resistance of these transistors, and since this +resistance now increased, it takes longer to pull up, leading to larger +gate effort. This is further accentuated by the fact that one of the NAND +inputs is tied to $V_{dd}$, which means the output is always pulled up +via a single, higher-resistance transistor. + +\end{document} + diff --git a/Lab3/modelcard/1um.pm b/Lab3/modelcard/1um.pm new file mode 100644 index 0000000..1919c8b --- /dev/null +++ b/Lab3/modelcard/1um.pm @@ -0,0 +1,26 @@ + +* +* Long channel models from CMOS Circuit Design, Layout, and Simulation, +* Level=3 models VDD=5V, see CMOSedu.com +.MODEL nmos NMOS LEVEL = 3 ++ TOX = 200E-10 NSUB = 1E17 GAMMA = 0.5 ++ PHI = 0.7 VTO = 0.8 DELTA = 3.0 ++ UO = 650 ETA = 3.0E-6 THETA = 0.1 ++ KP = 120E-6 VMAX = 1E5 KAPPA = 0.3 ++ RSH = 0 NFS = 1E12 TPG = 1 ++ XJ = 500E-9 LD = 100E-9 ++ CGDO = 200E-12 CGSO = 200E-12 CGBO = 1E-10 ++ CJ = 400E-6 PB = 1 MJ = 0.5 ++ CJSW = 300E-12 MJSW = 0.5 +* +.MODEL pmos PMOS LEVEL = 3 ++ TOX = 200E-10 NSUB = 1E17 GAMMA = 0.6 ++ PHI = 0.7 VTO = -0.9 DELTA = 0.1 ++ UO = 250 ETA = 0 THETA = 0.1 ++ KP = 40E-6 VMAX = 5E4 KAPPA = 1 ++ RSH = 0 NFS = 1E12 TPG = -1 ++ XJ = 500E-9 LD = 100E-9 ++ CGDO = 200E-12 CGSO = 200E-12 CGBO = 1E-10 ++ CJ = 400E-6 PB = 1 MJ = 0.5 ++ CJSW = 300E-12 MJSW = 0.5 +* diff --git a/Lab3/modelcard/50nm.pm b/Lab3/modelcard/50nm.pm new file mode 100644 index 0000000..03e40e4 --- /dev/null +++ b/Lab3/modelcard/50nm.pm @@ -0,0 +1,121 @@ + +* Short channel models from CMOS Circuit Design, Layout, and Simulation, +* 50nm BSIM4 models VDD=1V, see CMOSedu.com +* +.model nmos nmos level = 54 ++binunit = 1 paramchk= 1 mobmod = 0 ++capmod = 2 igcmod = 1 igbmod = 1 geomod = 0 ++diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1 ++permod = 1 acnqsmod= 0 trnqsmod= 0 ++tnom = 27 toxe = 1.4e-009 toxp = 7e-010 toxm = 1.4e-009 ++epsrox = 3.9 wint = 5e-009 lint = 1.2e-008 ++ll = 0 wl = 0 lln = 1 wln = 1 ++lw = 0 ww = 0 lwn = 1 wwn = 1 ++lwl = 0 wwl = 0 xpart = 0 toxref = 1.4e-009 ++vth0 = 0.22 k1 = 0.35 k2 = 0.05 k3 = 0 ++k3b = 0 w0 = 2.5e-006 dvt0 = 2.8 dvt1 = 0.52 ++dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0 ++dsub = 2 minv = 0.05 voffl = 0 dvtp0 = 1e-007 ++dvtp1 = 0.05 lpe0 = 5.75e-008 lpeb = 2.3e-010 xj = 2e-008 ++ngate = 5e+020 ndep = 2.8e+018 nsd = 1e+020 phin = 0 ++cdsc = 0.0002 cdscb = 0 cdscd = 0 cit = 0 ++voff = -0.15 nfactor = 1.2 eta0 = 0.15 etab = 0 ++vfb = -0.55 u0 = 0.032 ua = 1.6e-010 ub = 1.1e-017 ++uc = -3e-011 vsat = 1.1e+005 a0 = 2 ags = 1e-020 ++a1 = 0 a2 = 1 b0 = -1e-020 b1 = 0 ++keta = 0.04 dwg = 0 dwb = 0 pclm = 0.18 ++pdiblc1 = 0.028 pdiblc2 = 0.022 pdiblcb = -0.005 drout = 0.45 ++pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 1e-007 ++fprout = 0.2 pdits = 0.2 pditsd = 0.23 pditsl = 2.3e+006 ++rsh = 3 rdsw = 150 rsw = 150 rdw = 150 ++rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0 ++prwb = 6.8e-011 wr = 1 alpha0 = 0.074 alpha1 = 0.005 ++beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002 ++egidl = 0.8 ++aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002 ++nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004 ++eigbinv = 1.1 nigbinv = 3 aigc = 0.017 bigc = 0.0028 ++cigc = 0.002 aigsd = 0.017 bigsd = 0.0028 cigsd = 0.002 ++nigc = 1 poxedge = 1 pigcd = 1 ntox = 1 ++xrcrg1 = 12 xrcrg2 = 5 ++cgso = 6.238e-010 cgdo = 6.238e-010 cgbo = 2.56e-011 cgdl = 2.495e-10 ++cgsl = 2.495e-10 ckappas = 0.02 ckappad = 0.02 acde = 1 ++moin = 15 noff = 0.9 voffcv = 0.02 ++kt1 = -0.21 kt1l = 0.0 kt2 = -0.042 ute = -1.5 ++ua1 = 1e-009 ub1 = -3.5e-019 uc1 = 0 prt = 0 ++at = 53000 ++fnoimod = 1 tnoimod = 0 ++jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1 ++ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1 ++jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1 ++ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1 ++pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1 ++cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 5e-010 ++mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5 ++pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1 ++cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001 ++tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001 ++xtis = 3 xtid = 3 ++dmcg = 0e-006 dmci = 0e-006 dmdg = 0e-006 dmcgt = 0e-007 ++dwj = 0e-008 xgw = 0e-007 xgl = 0e-008 ++rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15 ++rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1 +* +.model pmos pmos level = 54 ++binunit = 1 paramchk= 1 mobmod = 0 ++capmod = 2 igcmod = 1 igbmod = 1 geomod = 0 ++diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1 ++permod = 1 acnqsmod= 0 trnqsmod= 0 ++tnom = 27 toxe = 1.4e-009 toxp = 7e-010 toxm = 1.4e-009 ++epsrox = 3.9 wint = 5e-009 lint = 1.2e-008 ++ll = 0 wl = 0 lln = 1 wln = 1 ++lw = 0 ww = 0 lwn = 1 wwn = 1 ++lwl = 0 wwl = 0 xpart = 0 toxref = 1.4e-009 ++vth0 = -0.22 k1 = 0.39 k2 = 0.05 k3 = 0 ++k3b = 0 w0 = 2.5e-006 dvt0 = 3.9 dvt1 = 0.635 ++dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0 ++dsub = 0.7 minv = 0.05 voffl = 0 dvtp0 = 0.5e-008 ++dvtp1 = 0.05 lpe0 = 5.75e-008 lpeb = 2.3e-010 xj = 2e-008 ++ngate = 5e+020 ndep = 2.8e+018 nsd = 1e+020 phin = 0 ++cdsc = 0.000258 cdscb = 0 cdscd = 6.1e-008 cit = 0 ++voff = -0.15 nfactor = 2 eta0 = 0.15 etab = 0 ++vfb = 0.55 u0 = 0.0095 ua = 1.6e-009 ub = 8e-018 ++uc = 4.6e-013 vsat = 90000 a0 = 1.2 ags = 1e-020 ++a1 = 0 a2 = 1 b0 = -1e-020 b1 = 0 ++keta = -0.047 dwg = 0 dwb = 0 pclm = 0.55 ++pdiblc1 = 0.03 pdiblc2 = 0.0055 pdiblcb = 3.4e-008 drout = 0.56 ++pvag = 1e-020 delta = 0.014 pscbe1 = 8.14e+008 pscbe2 = 9.58e-007 ++fprout = 0.2 pdits = 0.2 pditsd = 0.23 pditsl = 2.3e+006 ++rsh = 3 rdsw = 250 rsw = 160 rdw = 160 ++rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 3.22e-008 ++prwb = 6.8e-011 wr = 1 alpha0 = 0.074 alpha1 = 0.005 ++beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002 ++egidl = 0.8 ++aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002 ++nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004 ++eigbinv = 1.1 nigbinv = 3 aigc = 0.69 bigc = 0.0012 ++cigc = 0.0008 aigsd = 0.0087 bigsd = 0.0012 cigsd = 0.0008 ++nigc = 1 poxedge = 1 pigcd = 1 ntox = 1 ++xrcrg1 = 12 xrcrg2 = 5 ++cgso = 7.43e-010 cgdo = 7.43e-010 cgbo = 2.56e-011 cgdl = 1e-014 ++cgsl = 1e-014 ckappas = 0.5 ckappad = 0.5 acde = 1 ++moin = 15 noff = 0.9 voffcv = 0.02 ++kt1 = -0.19 kt1l = 0 kt2 = -0.052 ute = -1.5 ++ua1 = -1e-009 ub1 = 2e-018 uc1 = 0 prt = 0 ++at = 33000 ++fnoimod = 1 tnoimod = 0 ++jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1 ++ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1 ++jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1 ++ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1 ++pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1 ++cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 5e-010 ++mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5 ++pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1 ++cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001 ++tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001 ++xtis = 3 xtid = 3 ++dmcg = 0e-006 dmci = 0e-006 dmdg = 0e-006 dmcgt = 0e-007 ++dwj = 0e-008 xgw = 0e-007 xgl = 0e-008 ++rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15 ++rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1 diff --git a/Lab3/modelcard/PTM_HP/16nm.pm b/Lab3/modelcard/PTM_HP/16nm.pm new file mode 100644 index 0000000..9c9ec04 --- /dev/null +++ b/Lab3/modelcard/PTM_HP/16nm.pm @@ -0,0 +1,141 @@ +* PTM High Performance 16nm Metal Gate / High-K / Strained-Si +* nominal Vdd = 0.7V + +.model nmos nmos level = 54 + ++version = 4.0 binunit = 1 paramchk= 1 mobmod = 0 ++capmod = 2 igcmod = 1 igbmod = 1 geomod = 1 ++diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1 ++permod = 1 acnqsmod= 0 trnqsmod= 0 + ++tnom = 27 toxe = 9.5e-010 toxp = 7e-010 toxm = 9.5e-010 ++dtox = 2.5e-010 epsrox = 3.9 wint = 5e-009 lint = 1.45e-009 ++ll = 0 wl = 0 lln = 1 wln = 1 ++lw = 0 ww = 0 lwn = 1 wwn = 1 ++lwl = 0 wwl = 0 xpart = 0 toxref = 9.5e-010 ++xl = -6.5e-9 + ++vth0 = 0.47965 k1 = 0.4 k2 = 0 k3 = 0 ++k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2 ++dvt2 = 0 dvt0w = 0 dvt1w = 0 dvt2w = 0 ++dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011 ++dvtp1 = 0.1 lpe0 = 0 lpeb = 0 xj = 5e-009 ++ngate = 1e+023 ndep = 7e+018 nsd = 2e+020 phin = 0 ++cdsc = 0 cdscb = 0 cdscd = 0 cit = 0 ++voff = -0.13 nfactor = 2.3 eta0 = 0.0032 etab = 0 ++vfb = -0.55 u0 = 0.03 ua = 6e-010 ub = 1.2e-018 ++uc = 0 vsat = 290000 a0 = 1 ags = 0 ++a1 = 0 a2 = 1 b0 = 0 b1 = 0 ++keta = 0.04 dwg = 0 dwb = 0 pclm = 0.02 ++pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = -0.005 drout = 0.5 ++pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 1e-007 ++fprout = 0.2 pdits = 0.01 pditsd = 0.23 pditsl = 2300000 ++rsh = 5 rdsw = 140 rsw = 75 rdw = 75 ++rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0 ++prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005 ++beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002 ++egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002 ++nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004 ++eigbinv = 1.1 nigbinv = 3 aigc = 0.0213 bigc = 0.0025889 ++cigc = 0.002 aigsd = 0.0213 bigsd = 0.0025889 cigsd = 0.002 ++nigc = 1 poxedge = 1 pigcd = 1 ntox = 1 ++xrcrg1 = 12 xrcrg2 = 5 + ++cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010 ++cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1 ++moin = 15 noff = 0.9 voffcv = 0.02 + ++kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5 ++ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0 ++at = 33000 + ++fnoimod = 1 tnoimod = 0 + ++jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1 ++ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1 ++jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1 ++ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1 ++pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1 ++cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010 ++mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5 ++pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1 ++cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001 ++tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001 ++xtis = 3 xtid = 3 + ++dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0 ++dwj = 0 xgw = 0 xgl = 0 + ++rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15 ++rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1 + + +.model pmos pmos level = 54 + ++version = 4.0 binunit = 1 paramchk= 1 mobmod = 0 ++capmod = 2 igcmod = 1 igbmod = 1 geomod = 1 ++diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1 ++permod = 1 acnqsmod= 0 trnqsmod= 0 + ++tnom = 27 toxe = 1e-009 toxp = 7e-010 toxm = 1e-009 ++dtox = 3e-010 epsrox = 3.9 wint = 5e-009 lint = 1.45e-009 ++ll = 0 wl = 0 lln = 1 wln = 1 ++lw = 0 ww = 0 lwn = 1 wwn = 1 ++lwl = 0 wwl = 0 xpart = 0 toxref = 1e-009 ++xl = -6.5e-9 + ++vth0 = -0.43121 k1 = 0.4 k2 = -0.01 k3 = 0 ++k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2 ++dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0 ++dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011 ++dvtp1 = 0.05 lpe0 = 0 lpeb = 0 xj = 5e-009 ++ngate = 1e+023 ndep = 5.5e+018 nsd = 2e+020 phin = 0 ++cdsc = 0 cdscb = 0 cdscd = 0 cit = 0 ++voff = -0.126 nfactor = 2.1 eta0 = 0.0032 etab = 0 ++vfb = 0.55 u0 = 0.006 ua = 2e-009 ub = 5e-019 ++uc = 0 vsat = 250000 a0 = 1 ags = 1e-020 ++a1 = 0 a2 = 1 b0 = 0 b1 = 0 ++keta = -0.047 dwg = 0 dwb = 0 pclm = 0.12 ++pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = 3.4e-008 drout = 0.56 ++pvag = 1e-020 delta = 0.01 pscbe1 = 1.2e+009 pscbe2 = 8.0472e-007 ++fprout = 0.2 pdits = 0.08 pditsd = 0.23 pditsl = 2300000 ++rsh = 5 rdsw = 140 rsw = 70 rdw = 70 ++rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0 ++prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005 ++beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002 ++egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002 ++nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004 ++eigbinv = 1.1 nigbinv = 3 aigc = 0.0213 bigc = 0.0025889 ++cigc = 0.002 aigsd = 0.0213 bigsd = 0.0025889 cigsd = 0.002 ++nigc = 1 poxedge = 1 pigcd = 1 ntox = 1 ++xrcrg1 = 12 xrcrg2 = 5 + ++cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010 ++cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1 ++moin = 15 noff = 0.9 voffcv = 0.02 + ++kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5 ++ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0 ++at = 33000 + ++fnoimod = 1 tnoimod = 0 + ++jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1 ++ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1 ++jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1 ++ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1 ++pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1 ++cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010 ++mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5 ++pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1 ++cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001 ++tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001 ++xtis = 3 xtid = 3 + ++dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0 ++dwj = 0 xgw = 0 xgl = 0 + ++rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15 ++rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1 + + diff --git a/Lab3/modelcard/PTM_LP/16nm.pm b/Lab3/modelcard/PTM_LP/16nm.pm new file mode 100644 index 0000000..d9951a6 --- /dev/null +++ b/Lab3/modelcard/PTM_LP/16nm.pm @@ -0,0 +1,139 @@ +* PTM Low Power 16nm Metal Gate / High-K / Strained-Si +* nominal Vdd = 0.9V + +.model nmos nmos level = 54 + + ++version = 4.0 binunit = 1 paramchk= 1 mobmod = 0 ++capmod = 2 igcmod = 1 igbmod = 1 geomod = 1 ++diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1 ++permod = 1 acnqsmod= 0 trnqsmod= 0 + ++tnom = 27 toxe = 1.2e-009 toxp = 9e-010 toxm = 1.2e-009 ++dtox = 3e-010 epsrox = 3.9 wint = 5e-009 lint = 0 ++ll = 0 wl = 0 lln = 1 wln = 1 ++lw = 0 ww = 0 lwn = 1 wwn = 1 ++lwl = 0 wwl = 0 xpart = 0 toxref = 1.2e-009 + ++vth0 = 0.68191 k1 = 0.4 k2 = 0 k3 = 0 ++k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2 ++dvt2 = 0 dvt0w = 0 dvt1w = 0 dvt2w = 0 ++dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011 ++dvtp1 = 0.1 lpe0 = 0 lpeb = 0 xj = 5e-009 ++ngate = 1e+023 ndep = 7e+018 nsd = 2e+020 phin = 0 ++cdsc = 0 cdscb = 0 cdscd = 0 cit = 0 ++voff = -0.1014 nfactor = 1.6 eta0 = 0.0095 etab = 0 ++vfb = -0.55 u0 = 0.028 ua = 6e-010 ub = 1.2e-018 ++uc = 0 vsat = 200000 a0 = 1 ags = 0 ++a1 = 0 a2 = 1 b0 = 0 b1 = 0 ++keta = 0.04 dwg = 0 dwb = 0 pclm = 0.02 ++pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = -0.005 drout = 0.5 ++pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 1e-007 ++fprout = 0.2 pdits = 0.01 pditsd = 0.23 pditsl = 2300000 ++rsh = 5 rdsw = 170 rsw = 75 rdw = 75 ++rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0 ++prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005 ++beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002 ++egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002 ++nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004 ++eigbinv = 1.1 nigbinv = 3 aigc = 0.015211 bigc = 0.0027432 ++cigc = 0.002 aigsd = 0.015211 bigsd = 0.0027432 cigsd = 0.002 ++nigc = 1 poxedge = 1 pigcd = 1 ntox = 1 ++xrcrg1 = 12 xrcrg2 = 5 + ++cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010 ++cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1 ++moin = 15 noff = 0.9 voffcv = 0.02 + ++kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5 ++ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0 ++at = 33000 + ++fnoimod = 1 tnoimod = 0 + ++jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1 ++ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1 ++jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1 ++ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1 ++pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1 ++cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010 ++mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5 ++pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1 ++cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001 ++tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001 ++xtis = 3 xtid = 3 + ++dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0 ++dwj = 0 xgw = 0 xgl = 0 + ++rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15 ++rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1 + + +.model pmos pmos level = 54 + + ++version = 4.0 binunit = 1 paramchk= 1 mobmod = 0 ++capmod = 2 igcmod = 1 igbmod = 1 geomod = 1 ++diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1 ++permod = 1 acnqsmod= 0 trnqsmod= 0 + ++tnom = 27 toxe = 1.22e-009 toxp = 9e-010 toxm = 1.22e-009 ++dtox = 3.2e-010 epsrox = 3.9 wint = 5e-009 lint = 8e-010 ++ll = 0 wl = 0 lln = 1 wln = 1 ++lw = 0 ww = 0 lwn = 1 wwn = 1 ++lwl = 0 wwl = 0 xpart = 0 toxref = 1.22e-009 + ++vth0 = -0.6862 k1 = 0.4 k2 = -0.01 k3 = 0 ++k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2 ++dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0 ++dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011 ++dvtp1 = 0.05 lpe0 = 0 lpeb = 0 xj = 7.2e-009 ++ngate = 1e+023 ndep = 4.4e+018 nsd = 2e+020 phin = 0 ++cdsc = 0 cdscb = 0 cdscd = 0 cit = 0 ++voff = -0.08 nfactor = 1.8 eta0 = 0.0095 etab = 0 ++vfb = 0.55 u0 = 0.0075 ua = 2e-009 ub = 5e-019 ++uc = 0 vsat = 195000 a0 = 1 ags = 1e-020 ++a1 = 0 a2 = 1 b0 = 0 b1 = 0 ++keta = -0.047 dwg = 0 dwb = 0 pclm = 0.12 ++pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = 3.4e-008 drout = 0.56 ++pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 9.58e-007 ++fprout = 0.2 pdits = 0.08 pditsd = 0.23 pditsl = 2300000 ++rsh = 5 rdsw = 220 rsw = 72.5 rdw = 72.5 ++rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0 ++prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005 ++beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002 ++egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002 ++nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004 ++eigbinv = 1.1 nigbinv = 3 aigc = 0.0097 bigc = 0.00125 ++cigc = 0.0008 aigsd = 0.0115 bigsd = 0.00125 cigsd = 0.0008 ++nigc = 1 poxedge = 1 pigcd = 1 ntox = 1 ++xrcrg1 = 12 xrcrg2 = 5 + ++cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010 ++cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1 ++moin = 15 noff = 0.9 voffcv = 0.02 + ++kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5 ++ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0 ++at = 33000 + ++fnoimod = 1 tnoimod = 0 + ++jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1 ++ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1 ++jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1 ++ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1 ++pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1 ++cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010 ++mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5 ++pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1 ++cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001 ++tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001 ++xtis = 3 xtid = 3 + ++dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0 ++dwj = 0 xgw = 0 xgl = 0 + ++rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15 ++rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1