Level 5 — MasteryVLSI Design

VLSI Design

90 minutes60 marksprintable — key stays hidden on paper

Chapter: 4.2 VLSI Design Difficulty: Level 5 — Mastery (cross-domain: math + physics + coding, build/prove) Time Limit: 90 minutes Total Marks: 60

Instructions: Answer all three questions. Show every derivation step. State assumptions explicitly. Code may be written in pseudocode or Python; correctness of logic is graded, not syntax.


Question 1 — Scaling Physics: Dennard, its Breakdown, and Power Walls (20 marks)

A MOSFET is scaled by an ideal constant-field factor κ>1\kappa > 1 (all linear dimensions, oxide thickness, and voltage divide by κ\kappa; doping multiplies by κ\kappa).

(a) Using the dynamic power expression Pdyn=αCV2fP_{dyn} = \alpha C V^2 f, prove that under ideal Dennard scaling the power density P/AP/A remains constant. State how CC, VV, ff, and area AA each scale with κ\kappa, and justify the fκf \propto \kappa relation from the gate-delay expression τ=CV/I\tau = C V / I with IκI \propto \kappa. (6)

(b) Dennard scaling broke down near the 90–65 nm nodes primarily because supply voltage VddV_{dd} stopped scaling. Assume from a node onward that dimensions still scale by κ\kappa but VV stays constant. Derive the new power-density scaling law (P/A)(P/A) as a function of κ\kappa, and comment on why this is called the "power wall." (6)

(c) Leakage. Subthreshold leakage current follows Ileak=I010(VgsVth)/SI_{leak} = I_0 \, 10^{\,(V_{gs}-V_{th})/S} where SS is the subthreshold swing (mV/decade). A designer lowers VthV_{th} by 100 mV to recover speed lost to non-scaling VddV_{dd}, with S=90S = 90 mV/decade. Compute the multiplicative increase in static leakage. Then explain, using this result, why power gating (rather than merely clock gating) became necessary post-Dennard. (8)


Question 2 — Clock Tree Synthesis, Skew, and Timing Closure (20 marks)

A synchronous datapath has a launch flop FF1 and capture flop FF2 connected through combinational logic.

  • Clock period T=1.0T = 1.0 ns
  • Combinational delay tcombt_{comb}: min 0.050.05 ns, max 0.720.72 ns
  • FF setup time tsu=0.08t_{su} = 0.08 ns, hold time th=0.06t_h = 0.06 ns
  • Clock-to-Q tcq=0.05t_{cq} = 0.05 ns
  • Clock skew tskew=tclk,FF2tclk,FF1t_{skew} = t_{clk,FF2} - t_{clk,FF1}

(a) Write the general setup and hold timing inequalities including skew. Solve for the allowable range of tskewt_{skew} that keeps BOTH constraints satisfied for the given numbers (ignore jitter). Show that the datapath is closable and give the setup/hold slacks at tskew=0t_{skew}=0. (8)

(b) A CTS tool must balance the clock tree. Explain the physical reason a symmetric H-tree minimizes skew, and why useful skew (deliberately non-zero) can increase the maximum achievable clock frequency. Using part (a)'s numbers, find the tskewt_{skew} that maximizes the minimum of (setup slack, hold slack) and give that balanced slack. (7)

(c) Coding/algorithm. You are given a clock tree as a rooted tree where each edge has a wire delay. Write an algorithm (pseudocode) that computes the maximum clock skew across all leaf (flop) sink pairs, and state its time complexity. Then explain how CTS reduces this skew via buffer insertion in terms of the tree's insertion-delay balancing. (5)


Question 3 — Parasitics, Crosstalk, IR Drop & DFT Integration (20 marks)

(a) Parasitic RC & delay. A signal net is modeled as a single lumped RC: R=200ΩR = 200\,\Omega, C=40fFC = 40\,\text{fF}. Using the Elmore delay td=0.69RCt_d = 0.69\,RC for the 50% point, compute tdt_d. Then, treating the net as a distributed line of nn equal segments each R/nR/n, C/nC/n, prove that distributed Elmore delay converges to 0.5RC0.690.5\,RC \cdot 0.69 (i.e. td=0.69RC2t_d = 0.69 \cdot \tfrac{RC}{2}) as nn\to\infty, and state why this factor-of-2 matters for repeater insertion. (8)

(b) Crosstalk. An aggressor net switches full-swing Vdd=0.9V_{dd}=0.9 V and couples to a quiet victim through coupling capacitance Cc=8fFC_c=8\,\text{fF}; the victim's total ground capacitance is Cg=24fFC_g=24\,\text{fF}. Using charge sharing, compute the peak crosstalk noise glitch ΔV\Delta V on the victim (assume fast aggressor, no victim driver conduction). If the victim's noise margin is 0.2Vdd0.2\,V_{dd}, does this violate signal integrity? Suggest two physical mitigations. (6)

(c) IR drop + DFT trade-off. A power grid segment carries I=1.5I=1.5 A through a rail of resistance Rgrid=15mΩR_{grid}=15\,\text{m}\Omega. Compute the IR drop and the resulting effective VddV_{dd} from 0.90.9 V nominal. Explain quantitatively (using delay 1/(VddVth)γ\propto 1/(V_{dd}-V_{th})^{\gamma} intuition, Vth=0.3V_{th}=0.3 V, γ=1.3\gamma=1.3) the percentage delay increase this local droop causes. Finally, argue why scan-shift (DFT) mode can produce worse IR drop than functional mode, and how test power reduction (e.g. low-shift-frequency or partitioned scan enable) addresses it. (6)

Answer keyMark scheme & solutions

Question 1

(a) Ideal Dennard (6 marks)

Scaling by κ\kappa:

  • Capacitance CεAgate/toxC \propto \varepsilon A_{gate}/t_{ox}; both plate area and toxt_{ox} scale C(1/κ2)/(1/κ)=1/κ\Rightarrow C \propto (1/\kappa^2)/(1/\kappa) = 1/\kappa. (1)
  • Voltage VV/κV \to V/\kappa. (1)
  • Current IWLμCox(VVth)2I \propto \frac{W}{L}\mu C_{ox}(V-V_{th})^2. With W,L/κW,L\to /\kappa (ratio const), CoxκC_{ox}\propto\kappa, and V/κV\to/\kappa: Iκ(1/κ)2=1/κI \propto \kappa \cdot (1/\kappa)^2 = 1/\kappa. (1)
  • Delay τ=CV/I=(1/κ)(1/κ)/(1/κ)=1/κfκ\tau = CV/I = (1/\kappa)(1/\kappa)/(1/\kappa) = 1/\kappa \Rightarrow f \propto \kappa. (1)

Then per-device power: Pdyn=αCV2f(1/κ)(1/κ2)(κ)=1/κ2.P_{dyn}=\alpha C V^2 f \propto (1/\kappa)(1/\kappa^2)(\kappa)=1/\kappa^2. Device area A1/κ2A \propto 1/\kappa^2. Hence PA1/κ21/κ2=1(constant). \frac{P}{A}\propto \frac{1/\kappa^2}{1/\kappa^2}=1 \quad\text{(constant).}\ \blacksquare (2)

(b) Constant-V breakdown (6 marks)

Now C1/κC\propto 1/\kappa, fκf\propto\kappa (delay still τ=CV/I\tau=CV/I; with VV const and IκI\propto\kappa: τ=(1/κ)(1)/(κ)=1/κ2\tau=(1/\kappa)(1)/(\kappa)=1/\kappa^2, so fκ2f\propto\kappa^2 if drive scales that way — but conventionally with VV fixed and short-channel IκI\propto\kappa, keep fκf\propto\kappa; either derivation accepted if consistent). Using the standard result with fκf\propto\kappa: PdynCV2f(1/κ)(1)(κ)=1 per device.P_{dyn}\propto C V^2 f \propto (1/\kappa)(1)(\kappa)=1 \ \text{per device}. (3) Area still 1/κ21/\kappa^2, so PA11/κ2=κ2.\frac{P}{A}\propto \frac{1}{1/\kappa^2}=\kappa^2. Power density rises as κ2\kappa^2 — each new node packs more devices per unit area at the same power each, so heat flux grows quadratically. Cooling and reliability cannot keep pace: this is the power wall, forcing frequency stagnation (~3–4 GHz) and the shift to multicore. (3)

(c) Leakage & power gating (8 marks)

Lowering VthV_{th} by ΔVth=100\Delta V_{th}=100 mV raises (VgsVth)(V_{gs}-V_{th}) by 100 mV: factor=10ΔVth/S=10100/90=101.111=12.9×.\text{factor}=10^{\,\Delta V_{th}/S}=10^{100/90}=10^{1.111}=12.9\times. (4) So static leakage increases ~12.9× per 100 mV of VthV_{th} reduction. (1)

Implication: Clock gating stops dynamic switching power (α0\alpha\to0) but leaves the block powered, so leakage keeps flowing. Post-Dennard, VthV_{th} was pushed low to preserve overdrive under non-scaling VddV_{dd}, making leakage a dominant fraction of total power (order of the same magnitude as dynamic). Only power gating — physically disconnecting supply via header/footer sleep transistors — cuts the exponential leakage term to near zero for idle blocks. Hence clock gating alone is insufficient. (3)


Question 2

(a) Timing inequalities & slacks (8 marks)

Setup: tcq+tcomb,max+tsuT+tskewt_{cq}+t_{comb,max}+t_{su}\le T+t_{skew} 0.05+0.72+0.08=0.851.0+tskewtskew0.15 ns.0.05+0.72+0.08=0.85\le 1.0+t_{skew}\Rightarrow t_{skew}\ge -0.15\text{ ns.} (2)

Hold: tcq+tcomb,minth+tskewt_{cq}+t_{comb,min}\ge t_h+t_{skew} 0.05+0.05=0.100.06+tskewtskew0.04 ns.0.05+0.05=0.10\ge 0.06+t_{skew}\Rightarrow t_{skew}\le 0.04\text{ ns.} (2)

Allowable skew: 0.15tskew0.04-0.15\le t_{skew}\le 0.04 ns — non-empty, so closable. (1)

At tskew=0t_{skew}=0:

  • Setup slack =T(tcq+tcomb,max+tsu)=1.00.85=+0.15=T - (t_{cq}+t_{comb,max}+t_{su})=1.0-0.85=+0.15 ns. (1.5)
  • Hold slack =(tcq+tcomb,min)th=0.100.06=+0.04=(t_{cq}+t_{comb,min})-t_h=0.10-0.06=+0.04 ns. (1.5)

Both positive → design meets timing.

(b) H-tree & useful skew (7 marks)

H-tree: geometric self-similarity gives equal path length from root to every leaf, so wire+buffer insertion delays match ⇒ nominally zero skew; symmetry also makes it robust to systematic process gradients. (2)

Useful skew: intentionally delaying the capture clock (positive tskewt_{skew}) borrows time into the setup budget (RHS T+tskewT+t_{skew} grows), letting a slow path close at higher ff, at the cost of hold margin. It redistributes slack across the timing graph. (2)

Balancing setup and hold slacks as functions of tskewt_{skew}:

  • Setup slack =0.15+tskew=0.15+t_{skew} (increases with skew)
  • Hold slack =0.04tskew=0.04-t_{skew} (decreases with skew)

Max–min at equality: 0.15+tskew=0.04tskew2tskew=0.11tskew=0.0550.15+t_{skew}=0.04-t_{skew}\Rightarrow 2t_{skew}=-0.11\Rightarrow t_{skew}=-0.055 ns. Balanced slack =0.15+(0.055)=0.095=0.15+(-0.055)=0.095 ns each. (3)

(c) Skew algorithm (5 marks)

computeMaxSkew(root):
    # DFS: accumulate root-to-leaf insertion delay
    leafDelays = []
    stack = [(root, 0)]
    while stack:
        node, d = stack.pop()
        if node.isLeaf: leafDelays.append(d)
        for (child, w) in node.edges:
            stack.push((child, d + w))
    return max(leafDelays) - min(leafDelays)   # worst skew

Time complexity: O(V+E)=O(n)O(V+E)=O(n) for a tree with nn nodes (single traversal). (3)

CTS reduces skew by inserting/sizing buffers on the shorter/faster leaf paths to raise their insertion delay up to the longest path's — i.e. it balances insertion delay so max(leafDelays)-min(leafDelays)→0, pulling all leaf delays toward a common target latency. (2)


Question 3

(a) Elmore delay (8 marks)

Lumped: td=0.69RC=0.6920040×1015=0.698.0×1012=5.52×1012=5.52t_d=0.69\,RC=0.69\cdot 200\cdot 40\times10^{-15}=0.69\cdot 8.0\times10^{-12}=5.52\times10^{-12}=5.52 ps. (3)

Distributed proof: segment ii (from source) sees resistance iR/niR/n driving capacitance C/nC/n. Elmore delay: td=0.69i=1n(iRn)Cn=0.69RCn2i=1ni=0.69RCn2n(n+1)2.t_d=0.69\sum_{i=1}^{n}\left(\frac{iR}{n}\right)\frac{C}{n}=0.69\,\frac{RC}{n^2}\sum_{i=1}^{n} i=0.69\,\frac{RC}{n^2}\cdot\frac{n(n+1)}{2}. =0.69RCn+12nn0.69RC2. =0.69\,RC\cdot\frac{n+1}{2n}\xrightarrow{n\to\infty}0.69\cdot\frac{RC}{2}.\ \blacksquare (3)

Significance: a distributed line is 2× faster than the lumped model, and delay scales with L2L^2 (both R and C grow with length). Repeaters break a long wire into kk segments, converting L2L^2 dependence into L2/k\approx L^2/k plus buffer delay, minimized at an optimal segment count. (2)

(b) Crosstalk (6 marks)

Charge sharing / capacitive divider: ΔV=VddCcCc+Cg=0.988+24=0.9832=0.90.25=0.225 V.\Delta V = V_{dd}\frac{C_c}{C_c+C_g}=0.9\cdot\frac{8}{8+24}=0.9\cdot\frac{8}{32}=0.9\cdot0.25=0.225\text{ V}. (3)

Noise margin =0.20.9=0.18=0.2\cdot0.9=0.18 V. Since 0.225>0.180.225>0.18, signal integrity is violated (glitch exceeds margin). (1)

Two mitigations (any two): shielding (ground/power lines between nets), increasing spacing (lowers CcC_c), reducing parallel run length, stronger victim driver, or wire ordering/repeater staggering. (2)

(c) IR drop + DFT (6 marks)

IR drop =IRgrid=1.50.015=0.0225=I R_{grid}=1.5\cdot0.015=0.0225 V =22.5=22.5 mV. Effective Vdd=0.90.0225=0.8775V_{dd}=0.9-0.0225=0.8775 V. (2)

Delay (VddVth)γ\propto (V_{dd}-V_{th})^{-\gamma}. Overdrive nominal =0.90.3=0.6=0.9-0.3=0.6; drooped =0.87750.3=0.5775=0.8775-0.3=0.5775. tdrooptnom=(0.60.5775)1.3=(1.03896)1.3=1.0510.\frac{t_{droop}}{t_{nom}}=\left(\frac{0.6}{0.5775}\right)^{1.3}=(1.03896)^{1.3}=1.0510.5.1% delay increase. (2)

Scan-shift IR drop: during scan shift, essentially all flops toggle every cycle (data ripples through the chain), giving far higher and more uniform switching activity than typical functional workloads — this raises average current draw and worsens IR droop/di-dt beyond functional worst case. Mitigations: lower shift clock frequency (less ff-driven current), partition scan-enable so only sub-chains shift at a time, or use low-power scan reordering to reduce shift-in transitions. (2)

[
  {"claim":"Leakage increase factor for 100mV Vth drop, S=90mV/dec ~12.9x","code":"val=10**(100/90); result = abs(val-12.9)<0.2"},
  {"claim":"Setup slack 0.15ns, hold slack 0.04ns, balance skew -0.055ns, balanced slack 0.095ns","code":"setup=1.0-(0.05+0.72+0.08); hold=(0.05+0.05)-0.06; sk=Rational(-11,200); bal=setup+float(s