From cf73ec9016bf454354f3fd3ae3e2b152d1768f19 Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Wed, 27 Jan 2021 15:05:45 -0800 Subject: [PATCH] Add lab 3 sources. --- Lab3/16nmhp.png | Bin 0 -> 14201 bytes Lab3/16nmhpbeta.png | Bin 0 -> 14930 bytes Lab3/16nmlp.png | Bin 0 -> 15392 bytes Lab3/1um.png | Bin 0 -> 18585 bytes Lab3/50nm.png | Bin 0 -> 17031 bytes Lab3/fanoutVsDelay.cir | 123 ++++++++++++++++++++++++++ Lab3/lab3.tex | 161 ++++++++++++++++++++++++++++++++++ Lab3/modelcard/1um.pm | 26 ++++++ Lab3/modelcard/50nm.pm | 121 +++++++++++++++++++++++++ Lab3/modelcard/PTM_HP/16nm.pm | 141 +++++++++++++++++++++++++++++ Lab3/modelcard/PTM_LP/16nm.pm | 139 +++++++++++++++++++++++++++++ 11 files changed, 711 insertions(+) create mode 100644 Lab3/16nmhp.png create mode 100644 Lab3/16nmhpbeta.png create mode 100644 Lab3/16nmlp.png create mode 100644 Lab3/1um.png create mode 100644 Lab3/50nm.png create mode 100644 Lab3/fanoutVsDelay.cir create mode 100644 Lab3/lab3.tex create mode 100644 Lab3/modelcard/1um.pm create mode 100644 Lab3/modelcard/50nm.pm create mode 100644 Lab3/modelcard/PTM_HP/16nm.pm create mode 100644 Lab3/modelcard/PTM_LP/16nm.pm diff --git a/Lab3/16nmhp.png b/Lab3/16nmhp.png new file mode 100644 index 0000000000000000000000000000000000000000..1a832c86721b94a72fd004c32e0380a9b37cafc2 GIT binary patch literal 14201 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 literal 0 HcmV?d00001 diff --git a/Lab3/16nmlp.png b/Lab3/16nmlp.png new file mode 100644 index 0000000000000000000000000000000000000000..e649ca12181ef000202a43eb177d7c64cdc2783f GIT binary patch literal 15392 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 literal 0 HcmV?d00001 diff --git a/Lab3/1um.png b/Lab3/1um.png new file mode 100644 index 0000000000000000000000000000000000000000..d4fa56646c303524ca1d9c7e4e50d58d893df94f GIT binary patch literal 18585 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 Xp_Rmw9Pl4ZpvgQ_cv>KC_~w5Ba^W13 literal 0 HcmV?d00001 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