Before we begin, one shared picture we will reuse in almost every problem: the voltage divider on node Q. During a read or a write, the internal node Q is being tugged toward two different voltages by two "on" transistors at once. We model each transistor as a plain resistor and ask: where does the node settle?
The figure above is our master template. Read it like this: the black dot in the middle is node Q. The green line is the pull-down resistor RPD tying Q down to ground (0 V). The orange line is the access resistor RACC tying Q to the bit-line BL. The dashed red line is the pull-up resistor RPU tying Q to VDD — this branch only matters during a write. In every problem below we just decide which two of these three resistors are active and plug them into the one divider equation.
M1, M3 — NMOS pull-downs (one per inverter). They tie the internal node to ground when that node should be a logic 0.
M2, M4 — PMOS pull-ups (one per inverter). They tie the node to VDD for a logic 1.
M1+M2 form one inverter, M3+M4 the other; cross-coupling them makes the bistable latch.
M5, M6 — NMOS access (pass) transistors, gated by the word-line WL, connecting Q→BL and Q→BL.
Why bistable — the butterfly picture. Each inverter's output-vs-input curve is an S-shape. Plotting one inverter's curve and the other's mirrored on the same axes gives a butterfly: they cross at exactly two outer points (the two stable states, Q=1 or Q=0) and one middle point (unstable). The largest square you can fit into either wing is the Static Noise Margin (SNM) — how much accidental voltage the node can absorb before the latch flips. See the figure below.
Recall Solution
Both bit-lines are driven high to VDD, then floated (left disconnected so they hold their charge). The cell then pulls one of them slightly down. We charge high because the cell's NMOS pull-down is good at sinking current (pulling down) but the cell cannot easily source current to push a line above VDD.
Node Q=0 is at ground, connected through M5 to BL (sitting at VDD). Current flows from BL into ground → BLdroops. Node Q=1 is at VDD and cannot pull BL below VDD, so BL stays high.
How the sense amp turns that droop into a logic value: it is a small cross-coupled amplifier that watches the differenceBL−BL. Whichever bit-line is lower gets driven all the way to 0, the higher one all the way to VDD — it amplifies a tiny ΔV (tens of mV) into a full logic level. Here BL drooped, so the amp latches BL→0,BL→VDD. By the convention "value of node Q = value on BL", Q=0reads a 0. ✔
Recall Solution
Use the divider with Vhi=VDD through Rhi=RACC, Vlo=0 through Rlo=RPD:
VQ=VDD⋅RPD+RACCRPD=1.0⋅2+82=0.20 V
Since 0.20<0.5=VTH, node Q never climbs to the other inverter's trip point → stable, no read upset. ✔
Cell ratio CR=RACC/RPD=8/2=4; the pull-down is 4× stronger — very safe.
Recall Solution
CR=(W/L)ACC(W/L)PD=1/RACC1/RPD=RPDRACC=28=4CR=4>1, so the pull-down dominates during read. ✔
Now the low side is the bit-line and the high side is the pull-up (Vhi=VDD via Rhi=RPU; Vlo=0 via Rlo=RACC):
VQ=VDD⋅RACC+RPURACC=1.0⋅5+105=0.333 V
We need VQ<VTH=0.5 to trip the far inverter. 0.333<0.5 → write succeeds. ✔
Intuition: the access transistor (R=5k) is stronger than the pull-up (R=10k), so it wins the tug-of-war and drags Q down. Here PR=RACC/RPU=5/10=0.5<1 — writable.
Recall Solution
VQ=1.0⋅5+15=0.833 V0.833>0.5 → VQ never crosses the trip point → write FAILS. ✘
The over-strong PMOS holds Q up. Here PR=5/1=5>1 (access weaker than pull-up), consistent with failure. Fix: weaken the pull-up (smaller W/L → larger RPU) or widen the access transistor (smaller RACC) so access beats pull-up.
Recall Solution
Set VQ=VTH (the tipping edge) and solve:
0.5=1.0⋅RACC+1RACC⇒0.5(RACC+1)=RACC⇒RACC=1 kΩ
So RACC≤1 kΩ writes. At exactly 1 kΩ the access equals the pull-up (VQ=0.5, right on the trip point — marginal). To have margin, make RACC noticeably smaller than RPU. ✔
Strategy from the mnemonic "READ the Pull-Down, WRITE past the Pull-Up": make the pull-down strong and keep the pull-up at minimum width (weakest allowed), and widen the access moderately.
Choose mPD=4 (strong), mPU=1 (reference = weakest allowed), mACC=2.
Resistances: RPD=4/4=1 kΩ, RPU=4/1=4 kΩ, RACC=4/2=2 kΩ.
Read check (Q between BL≈VDD via RACC and gnd via RPD):
VQread=1.0⋅RPD+RACCRPD=1+21=0.333 V<0.5✓Write check (Q between BL=0 via RACC and VDD via RPU):
VQwrite=1.0⋅RACC+RPURACC=2+42=0.333 V<0.5✓
Both pass. CR=RACC/RPD=2/1=2>1 (read-safe); PR=RACC/RPU=2/4=0.5<1 (write-safe). ✔
Every multiplier is ≥1, so the design is manufacturable. ✔
Recall Solution
Read:VQread=RPD+RACCRPD=1+11=0.5 V =VTH → right on the tipping point → read upset risk. ✘ (zero margin, per the L3 "marginal" note)
Write:VQwrite=RACC+RPURACC=1+41=0.2 V <0.5 → write got easier. ✔
So a stronger access helps write but hurts read — exactly the tension. The safe move is to keep access moderate and instead ensure CR>1 by strengthening the pull-down.
Start from the read divider:
VQread=VDD⋅RPD+RACCRPD≤VTH
Let r=RACC/RPD. Divide numerator and denominator by RPD:
1+rVDD≤VTH⇒1+r≥VTHVDD⇒r≥VTHVDD−1
Since CR=RACC/RPD=r, we need CR≥VTHVDD−1.
Check L2.2:VDD=1.0, VTH=0.5 → require CR≥1.0/0.5−1=1. L2.2 had CR=4≥1 → safe, consistent with the 0.20 V we found. ✔
Recall Solution
Write divider:
VQwrite=VDD⋅RACC+RPURACC≤VTH
Let s=RACC/RPU=PR. Then
s+1VDDs≤VTH⇒VDDs≤VTH(s+1)⇒s(VDD−VTH)≤VTHPR=RPURACC≤VDD−VTHVTHThe combined window (using CR=RACC/RPD and PR=RACC/RPU):
read floor on CRVTHVDD−1≤CR,PR≤write ceiling on PRVDD−VTHVTH
Read pushes access to be weak relative to the pull-down; write pushes access to be strong relative to the pull-up. The design lives in the overlap — and shrinking VDD (or drifting VTH) narrows it, which is why low-voltage SRAM is hard.
Recall Solution
Read floor: VTHVDD−1=0.51.0−1=1.0. Need CR≥1.
Write ceiling: VDD−VTHVTH=1.0−0.50.5=1.0. Need PR≤1.
L4.1 design: CR=RACC/RPD=2/1=2≥1 ✔ and PR=RACC/RPU=2/4=0.5≤1 ✔. Inside both. ✔