Level 3 — ProductionCMOS Circuit Design

CMOS Circuit Design

45 minutes60 marksprintable — key stays hidden on paper

Level 3 — Production (from-scratch derivations, design-from-memory, explain-out-loud) Time limit: 45 minutes Total marks: 60

Answer all questions. Show every derivation step. Sketches must be labelled. Where asked to "explain out loud", write a coherent verbal-style explanation as you would to a peer.


Question 1 — CMOS Inverter & VTC from scratch (12 marks)

(a) Draw the CMOS inverter schematic, labelling PMOS/NMOS, supply, input and output. State which transistor forms the pull-up and which the pull-down network, and explain why the output has no static DC path to ground in either logic state. (4)

(b) The five operating regions of the VTC correspond to different combinations of transistor operating modes as VinV_{in} sweeps 0VDD0 \to V_{DD}. List the five regions in order and state the mode (cutoff / triode / saturation) of each transistor in each region. (5)

(c) Derive an expression for the switching threshold voltage VMV_M (where Vin=VoutV_{in}=V_{out}, both transistors in saturation) in terms of VDDV_{DD}, VTnV_{Tn}, VTpV_{Tp}, and the ratio kp/kn\sqrt{k_p/k_n} where kn=μnCox(W/L)nk_n=\mu_n C_{ox}(W/L)_n. (3)


Question 2 — Compound gate synthesis (10 marks)

Design a static CMOS complex gate that realises

Y=A(B+C)Y = \overline{A(B+C)}

(a) Derive the pull-down network (PDN) from the expression and draw it. (3) (b) Derive the dual pull-up network (PUN) and draw it. (3) (c) State the total transistor count and identify the worst-case (slowest) input transition path through the PDN, justifying your choice. (4)


Question 3 — Static vs Dynamic Power (10 marks)

(a) Derive the dynamic (switching) power dissipation expression Pdyn=αCLVDD2fP_{dyn}=\alpha C_L V_{DD}^2 f from the energy drawn per output transition. Explain the origin of the activity factor α\alpha. (5)

(b) A CMOS block has CL=150fFC_L = 150\,\text{fF}, VDD=1.2VV_{DD}=1.2\,\text{V}, f=500MHzf=500\,\text{MHz}, activity factor α=0.15\alpha=0.15. Static leakage current is Ileak=20nAI_{leak}=20\,\text{nA}. Compute the dynamic power, the static power, and the total power. (5)


Question 4 — Noise Margins (10 marks)

For an inverter the DC transfer parameters are measured as: VOH=1.15VV_{OH}=1.15\,\text{V}, VOL=0.05VV_{OL}=0.05\,\text{V}, VIH=0.75VV_{IH}=0.75\,\text{V}, VIL=0.45VV_{IL}=0.45\,\text{V}.

(a) Define NMHNM_H and NMLNM_L and explain out loud what physical margin against noise each represents. (4) (b) Compute NMHNM_H and NMLNM_L. (3) (c) The unfriendly gate has asymmetric margins. State which noise polarity this circuit is more vulnerable to, and name one design change to the transistor sizing that would shift VMV_M to rebalance the margins. (3)


Question 5 — Propagation delay & Power-Delay Product (10 marks)

(a) Using the simple RC model, derive the propagation delay tp=0.69ReqCLt_p = 0.69\,R_{eq}C_L for an inverter output driven from a step, starting from the discharge equation Vout(t)=VDDet/ReqCLV_{out}(t)=V_{DD}e^{-t/R_{eq}C_L}. (4)

(b) For an inverter with Req=8kΩR_{eq}=8\,\text{k}\Omega, CL=30fFC_L=30\,\text{fF}, driven at α=1\alpha=1, VDD=1.0VV_{DD}=1.0\,\text{V}, f=1GHzf=1\,\text{GHz}: compute tpt_p, the dynamic energy per transition E=CLVDD2E=C_LV_{DD}^2, and the power-delay product PDP=EPDP=E. Comment on what the PDP measures. (6)


Question 6 — Dynamic & Domino Logic (8 marks)

(a) Explain the two phases of operation of a dynamic CMOS gate (precharge and evaluate), naming the clock transistors. (3) (b) Explain out loud the charge-sharing and cascading problems of plain dynamic gates, and describe how domino logic (adding a static inverter at each dynamic node) solves the cascading problem. State the one logic restriction domino imposes. (5)


Answer keyMark scheme & solutions

Question 1

(a) (4 marks)

  • Schematic: PMOS (source→VDDV_{DD}, drain→output) on top, NMOS (source→GND, drain→output) on bottom, gates tied to VinV_{in}, output between drains. (2)
  • PMOS = pull-up network (PUN); NMOS = pull-down network (PDN). (1)
  • Why no static path: for any static input one transistor is ON and the other OFF (complementary). When Vin=0V_{in}=0: NMOS off, PMOS on → output high with no path to GND. When Vin=VDDV_{in}=V_{DD}: PMOS off, NMOS on → output low with no path to VDDV_{DD}. Only during switching are both briefly ON → hence ideally zero static current. (1)

(b) (5 marks) — 1 mark per correct region row.

Region VinV_{in} range NMOS PMOS
A 0Vin<VTn0 \le V_{in} < V_{Tn} cutoff triode
B rising saturation triode
C near VMV_M saturation saturation
D rising triode saturation
E $V_{in} > V_{DD}- V_{Tp} $

(c) (3 marks) Both in saturation, currents equal: kn2(VMVTn)2=kp2(VDDVMVTp)2\frac{k_n}{2}(V_M-V_{Tn})^2 = \frac{k_p}{2}(V_{DD}-V_M-|V_{Tp}|)^2. (1) Take root: kn(VMVTn)=kp(VDDVMVTp)\sqrt{k_n}(V_M-V_{Tn}) = \sqrt{k_p}(V_{DD}-V_M-|V_{Tp}|). Solve: VM=VTn+kp/kn(VDDVTp)1+kp/knV_M = \frac{V_{Tn} + \sqrt{k_p/k_n}\,(V_{DD}-|V_{Tp}|)}{1+\sqrt{k_p/k_n}} (2)


Question 2

(a) PDN (3): PDN conducts when Y=0Y=0, i.e. when A(B+C)=1A(B+C)=1. So NMOS: transistor AA in series with the parallel combination of BB and CC. (A–[B∥C] series stack to GND.) (3)

(b) PUN (3): Dual of PDN: series→parallel, parallel→series. PMOS: transistor AA in parallel with the series combination of BB and CC. (A ∥ [B–C series] to VDDV_{DD}.) (3)

(c) (4):

  • Transistor count: 3 NMOS + 3 PMOS = 6 transistors. (2)
  • Worst-case path: the longest series chain in the PDN is AA in series with BB (or AACC) = 2 transistors in series → highest resistance, hence slowest fall. The parallel B∥C halves that leg's resistance but the A–B (or A–C) series path of length 2 sets worst-case pull-down delay. (2)

Question 3

(a) (5): Per output rising transition, charge Q=CLVDDQ=C_LV_{DD} is drawn from supply; energy from supply =QVDD=CLVDD2=Q V_{DD}=C_LV_{DD}^2, of which half stored on CLC_L (12CLVDD2\tfrac12 C_LV_{DD}^2), half dissipated in PMOS. On falling transition the stored 12CLVDD2\tfrac12 C_LV_{DD}^2 dissipates in NMOS. So a full cycle dissipates CLVDD2C_LV_{DD}^2. (3) If transitions occur at effective rate αf\alpha f (α = probability of a switching event per clock cycle = activity factor), then Pdyn=αCLVDD2fP_{dyn}=\alpha C_L V_{DD}^2 f. α accounts for the fact that not every node toggles every cycle. (2)

(b) (5): Pdyn=αCLVDD2f=0.15×150×1015×(1.2)2×500×106P_{dyn}=\alpha C_L V_{DD}^2 f = 0.15\times150\times10^{-15}\times(1.2)^2\times500\times10^6 =0.15×150e15×1.44×5e8=1.62×105W=16.2μW=0.15\times150e{-15}\times1.44\times5e8 = 1.62\times10^{-5}\,\text{W}=16.2\,\mu\text{W}. (2) Pstatic=IleakVDD=20×109×1.2=2.4×108=24nWP_{static}=I_{leak}V_{DD}=20\times10^{-9}\times1.2=2.4\times10^{-8}=24\,\text{nW}. (2) Ptotal=16.2μW+0.024μW16.224μWP_{total}=16.2\,\mu\text{W}+0.024\,\mu\text{W}\approx 16.224\,\mu\text{W}. (1)


Question 4

(a) (4): NMH=VOHVIHNM_H=V_{OH}-V_{IH} = margin by which a driven HIGH exceeds the max input still read as HIGH → tolerable negative noise on a logic-1. NML=VILVOLNM_L=V_{IL}-V_{OL} = margin by which max input read as LOW exceeds a driven LOW → tolerable positive noise on a logic-0. Larger margins → more noise immunity. (4)

(b) (3): NMH=1.150.75=0.40VNM_H=1.15-0.75=0.40\,\text{V}. (1.5) NML=0.450.05=0.40VNM_L=0.45-0.05=0.40\,\text{V}. (1.5)

(Note: with these numbers margins are equal at 0.40 V.)

(c) (3): Margins are equal here (0.40 V each) so the gate is balanced; if asymmetry existed, the smaller margin identifies the weaker polarity. To shift VMV_M (and rebalance): change the PMOS/NMOS width ratio — increasing PMOS width (larger kp/knk_p/k_n) raises VMV_M (improves NMLNM_L); increasing NMOS width lowers VMV_M (improves NMHNM_H). (3) (Full marks for correct reasoning + one valid sizing change.)


Question 5

(a) (4): Output falls from VDDV_{DD}: Vout(t)=VDDet/ReqCLV_{out}(t)=V_{DD}e^{-t/R_{eq}C_L}. tpt_p defined at Vout=VDD/2V_{out}=V_{DD}/2: 12VDD=VDDetp/ReqCLetp/τ=1/2tp=τln2=0.69ReqCL\tfrac12 V_{DD}=V_{DD}e^{-t_p/R_{eq}C_L}\Rightarrow e^{-t_p/\tau}=1/2 \Rightarrow t_p=\tau\ln 2 = 0.69\,R_{eq}C_L. (4)

(b) (6): tp=0.69×8000×30×1015=0.69×2.4×1010=1.656×1010=165.6pst_p=0.69\times8000\times30\times10^{-15}=0.69\times2.4\times10^{-10}=1.656\times10^{-10}=165.6\,\text{ps}. (2) E=CLVDD2=30×1015×1.02=3.0×1014J=30fJE=C_LV_{DD}^2=30\times10^{-15}\times1.0^2=3.0\times10^{-14}\,\text{J}=30\,\text{fJ}. (2) PDP=E=30fJPDP=E=30\,\text{fJ} (energy per switching event). (1) Comment: PDP measures the energy cost per operation — a figure of merit trading speed against power; lower PDP = more efficient technology. (1)


Question 6

(a) (3): Precharge phase (clk=0): PMOS precharge transistor pulls dynamic node to VDDV_{DD}; the clocked evaluate NMOS (foot) is off so no discharge. Evaluate phase (clk=1): precharge PMOS off, foot NMOS on; the PDN either discharges the node (output→0) or holds it high depending on inputs. (3)

(b) (5):

  • Charge sharing: during evaluate, charge on the precharged node redistributes onto internal parasitic capacitances of the PDN if intermediate nodes were low, dropping the output voltage possibly below threshold → false 0. (1.5)
  • Cascading problem: a dynamic gate output is only valid HIGH at start of evaluate; if it feeds another dynamic gate, a momentary high (glitch) during evaluation can incorrectly discharge the next stage before the driving gate settles low → cannot cascade dynamic gates directly. (1.5)
  • Domino fix: insert a static inverter after each dynamic node. The dynamic node is precharged HIGH, so the buffered output is LOW at start of evaluate; it can only make a monotonic low→high transition, which cannot falsely discharge the following gate — so gates cascade "like dominoes". (1.5)
  • Restriction: domino gates are non-inverting only (the static inverter fixes polarity), so inverting functions require alternative structures/logic restructuring. (0.5)

[
  {"claim":"Q3 dynamic power = 16.2 uW","code":"P=0.15*150e-15*(1.2**2)*500e6; result = abs(P-16.2e-6)<1e-9"},
  {"claim":"Q3 static power = 24 nW","code":"Ps=20e-9*1.2; result = abs(Ps-24e-9)<1e-12"},
  {"claim":"Q5 tp = 165.6 ps","code":"tp=0.69*8000*30e-15; result = abs(tp-165.6e-12)<1e-13"},
  {"claim":"Q5 energy PDP = 30 fJ","code":"E=30e-15*(1.0**2); result = abs(E-30e-15)<1e-18"},
  {"claim":"Q4 noise margins both 0.40 V","code":"NMH=1.15-0.75; NML=0.45-0.05; result = abs(NMH-0.40)<1e-9 and abs(NML-0.40)<1e-9"}
]