The cascode
Stack a common-gate transistor on a current source, measure how far it raises the output resistance, choose its bias, and see what it does to an amplifier's gain.
- Lesson
- E3.7
- Time
- 30 min
- Runs on
- ngspice
- Check
- 5 questions
A gain stage needed a current sink with a high output resistance, and one NMOS (W/L = 4/0.5 µm, about 20 µA) gave only 0.572 MΩ. A second, identical transistor stacked on top, with its gate at a fixed 1.2 V, raised it to 40.8 MΩ: 71 times higher, with no longer device and no extra current.
- one device
- cascode, V_B = 1.2 V
- Output voltage 300 mVone device = 18.03 µA · cascode, V_B = 1.2 V = 17.82 µA
At low voltage both sinks are still rising. The single device is already saturated; the cascode is not.
- Output voltage 1.2 Vone device = 20.19 µA · cascode, V_B = 1.2 V = 18.36 µA
At 1.2 V the single device's current still climbs with the output: 0.572 MΩ. The cascode's line is almost flat: 40.8 MΩ.
Read the plot as a table
| Output voltage | one device | cascode, V_B = 1.2 V |
|---|---|---|
| 0 V | 0 A | 0.000003521 fA |
| 200 mV | 17.35 µA | 17.04 µA |
| 300 mV | 18.03 µA | 17.82 µA |
| 400 mV | 18.43 µA | 18.17 µA |
| 600 mV | 19 µA | 18.33 µA |
| 800 mV | 19.44 µA | 18.35 µA |
| 1 V | 19.83 µA | 18.35 µA |
| 1.2 V | 20.19 µA | 18.36 µA |
| 1.4 V | 20.53 µA | 18.36 µA |
| 1.6 V | 20.87 µA | 18.37 µA |
| 1.8 V | 21.19 µA | 18.37 µA |
Every point is from the lab run on ngspice 42 (361 points).
A transistor on top made the bottom one almost perfect, at the price of some voltage.
How the top transistor holds the bottom one still
- One current through the stack
M1 sets 18.36 µA from its 0.75 V gate. M2 has no other path, so the same current flows through it and out of the output.
18.36 µA
- M2 holds node x
M2's gate is fixed at 1.2 V, and at a fixed current its VGS barely changes. So its source, node x, stays near 1.2 − 0.82 = 0.38 V.
- The output moves; x does not
Raise the output from 0.6 V to 1.2 V and node x moves only 6.8 mV, from 0.373 V to 0.380 V. M1 sees almost the same VDS, so its current hardly changes.
Read the circuit as text
- out port: terminal →
out - M2 NMOS transistor (W/L = 4/0.5): gate →
n1, drain →out, source →x - M1 NMOS transistor (W/L = 4/0.5): gate →
n2, drain →x, source →0 - VB voltage source (1.2 V): + →
n1, − →0 - VIN voltage source (0.75 V): + →
n2, − →0
out= 1.200 Vx= 0.380 V
Both bodies are at ground (the fourth node, 0). In the lab the output is held by VOUT and swept.
A cascode stacks a common-gate transistor, M2, on the drain of a common-source transistor, M1. M1 turns its gate voltage into a current, and M2 passes that current up to the output while it shields M1 from the output voltage.
A single transistor's current rises with its VDS, and that slope is its ro (E2.4). In the cascode the output swing lands on M2 instead, and M1's VDS moves 88 times less than the output.
To find Rout, push a test current i into the output. It flows through M1, whose gate is still, so node x rises by i·ro1. M2 now has a resistor ro1 under its source: the degenerated stage of E3.4. Its output resistance is ro2 + ro1 + (gm2 + gmb2)·ro2·ro1.
The lab prints ro1 = 276 kΩ, ro2 = 505 kΩ and gm2 + gmb2 = 284.8 µS. The formula gives 40.57 MΩ and the sweep measures 40.76 MΩ. The factor (gm2 + gmb2)·ro2 = 144 is M2's own intrinsic gain: the cascode multiplies ro1 by it.
Why only 71 times the single device, then? The single device sits at VDS = 1.2 V, where its ro is 572 kΩ. Inside the cascode M1 keeps only 0.38 V, and at that VDS its ro1 is 276 kΩ, half as much (E2.4).
One transistor
XS d0 in 0 0 sky130_fd_pr__nfet_01v8 W=4 L=0.5
id_one = 2.019297e-05, rout_one = 5.720097e+05: 0.572 MΩ.
Cascode, VB = 1.2 V
XM1 x in 0 0 sky130_fd_pr__nfet_01v8 W=4 L=0.5
XM2 d12 g12 x 0 sky130_fd_pr__nfet_01v8 W=4 L=0.5
id_cas = 1.835900e-05, rout_cas = 4.076023e+07: 40.8 MΩ, 9 % less current.
Both from the lab. The cascode's M1 runs at VDS = 0.38 V instead of 1.2 V, so it carries 9 % less current from the same gate voltage.
What the cascode costs
Both transistors must stay saturated. M1 needs Vx above its saturation voltage VDsat1 = 126 mV, and M2 needs the output above Vx + VDsat2 = 0.380 + 0.126 = 0.51 V. A single device needs only its own VDsat, about the same 0.13 V.
The cascode gate voltage VB decides where x sits: one VGS of M2 below VB. The plot sweeps the output for the single device and for VB = 0.9, 1.2 and 1.5 V. The y axis is logarithmic.
- one device
- V_B = 0.9 V
- V_B = 1.2 V
- V_B = 1.5 V
- Output voltage 400 mVone device = 293.4 kΩ · V_B = 0.9 V = 1.713 MΩ · V_B = 1.2 V = 427.7 kΩ · V_B = 1.5 V = 295.5 kΩ
At 0.4 V, M2 of the 1.2 V cascode is not yet saturated, and its Rout is still close to one device's.
- Output voltage 610.3 mVone device = 415.1 kΩ · V_B = 0.9 V = 3.598 MΩ · V_B = 1.2 V = 10 MΩ · V_B = 1.5 V = 561.2 kΩ
The VB = 1.2 V cascode passes 10 MΩ at 0.610 V, about 0.1 V above Vx + VDsat2.
- Output voltage 1.2 Vone device = 572 kΩ · V_B = 0.9 V = 6.338 MΩ · V_B = 1.2 V = 40.76 MΩ · V_B = 1.5 V = 47.44 MΩ
At 1.2 V: 0.57 MΩ for one device, 6.3 MΩ at VB = 0.9 V, 40.8 MΩ at 1.2 V and 47.4 MΩ at 1.5 V.
Read the plot as a table
| Output voltage | one device | V_B = 0.9 V | V_B = 1.2 V | V_B = 1.5 V |
|---|---|---|---|---|
| 0 V | 4.257 kΩ | 6.11 kΩ | 5.152 kΩ | 4.884 kΩ |
| 200 mV | 96.53 kΩ | 65.35 kΩ | 75.91 kΩ | 82.97 kΩ |
| 400 mV | 293.4 kΩ | 1.713 MΩ | 427.7 kΩ | 295.5 kΩ |
| 600 mV | 410.5 kΩ | 3.524 MΩ | 9.075 MΩ | 536 kΩ |
| 610.3 mV | 415.1 kΩ | 3.598 MΩ | 10 MΩ | 561.2 kΩ |
| 800 mV | 485.1 kΩ | 4.747 MΩ | 24.29 MΩ | 6.528 MΩ |
| 1 V | 536 kΩ | 5.642 MΩ | 34.07 MΩ | 31 MΩ |
| 1.2 V | 572 kΩ | 6.338 MΩ | 40.76 MΩ | 47.44 MΩ |
| 1.4 V | 597 kΩ | 6.86 MΩ | 45.56 MΩ | 58.36 MΩ |
| 1.6 V | 609.9 kΩ | 7.023 MΩ | 47.68 MΩ | 66.08 MΩ |
| 1.8 V | 605.4 kΩ | 6.412 MΩ | 40.83 MΩ | 70.13 MΩ |
Every point is from the lab run on ngspice 42 (361 points).
| VB | Vx | Current | Rout at 1.2 V | Rout ≥ 10 MΩ from |
|---|---|---|---|---|
| 0.9 V | vx_09 = 1.370603e-01 | id_09 = 1.624350e-05 | rout_09 = 6.337714e+06 | never |
| 1.2 V | vx = 3.795340e-01 | id_cas = 1.835900e-05 | rout_cas = 4.076023e+07 | v10m = 6.102763e-01 |
| 1.5 V | vx_15 = 6.307009e-01 | id_15 = 1.907007e-05 | rout_15 = 4.743583e+07 | v10m_15 = 8.285295e-01 |
From the lab. Currents and Rout at Vout = 1.2 V.
Too low a VB starves M1. At 0.9 V, x sits at 0.137 V, barely above VDsat1: M1 slips toward triode, the current drops to 16.2 µA, and Rout never reaches 10 MΩ. Too high a VB wastes swing, because at 1.5 V the 10 MΩ point moves up to 0.83 V. A good VB puts x a little above VDsat1, so VB ≈ VGS2 + VDsat1 plus some margin.
A cascode amplifier
Now use each sink as an amplifier. An ideal 20 µA source loads each drain, with 1 pF across it, and a sweep finds the input that puts the output at 0.9 V. With an ideal load the low-frequency gain is the input device's gm times the stage's Rout.
- one device
- cascode
- Frequency 1 Hzone device = 42.06 dB · cascode = 76.07 dB
At low frequency one device gives 126.8 (42.1 dB) and the cascode 6359 (76.1 dB): 50 times more, from the same current.
- Frequency 6.072 kHzone device = 42.06 dB · cascode = 73.03 dB
The cascode's gain starts to fall at 6.07 kHz. Its Rout is so high that 1 pF takes over early.
- Frequency 39.86 MHzone device = -0.002304 dB · cascode = -0.2916 dB
Both reach a gain of 1 near 39 MHz. Above their poles, gain × frequency is gm/(2πCL), and gm and CL are the same.
Read the plot as a table
| Frequency | one device | cascode |
|---|---|---|
| 1 Hz | 42.06 dB | 76.07 dB |
| 10 Hz | 42.06 dB | 76.07 dB |
| 100 Hz | 42.06 dB | 76.07 dB |
| 1 kHz | 42.06 dB | 75.95 dB |
| 6.072 kHz | 42.06 dB | 73.03 dB |
| 10 kHz | 42.06 dB | 70.36 dB |
| 100 kHz | 41.64 dB | 51.7 dB |
| 1 MHz | 31.6 dB | 31.72 dB |
| 10 MHz | 12 dB | 11.72 dB |
| 39.86 MHz | -0.002304 dB | -0.2916 dB |
| 100 MHz | -7.99 dB | -8.281 dB |
| 1 GHz | -27.94 dB | -28.36 dB |
Every point is from a run on ngspice 42 (91 points). Each input was set by two sweeps, to 0.1 µV.
The single device gives gmro = 126.8, its intrinsic gain (E3.3). The cascode gives gm1·Rout: 6445 by the formula, 6359 measured. That is a product of two intrinsic gains, 50 times one device's. It falls short of 126.8 squared because the two devices now share the 0.9 V output: M1 keeps 0.37 V and M2 0.53 V, and at a lower VDS each ro is lower (E2.4). M1's own gmro drops to 61.
The cascode also shields M1 from the output. At 1 MHz the single device's drain swings 38 times the input, so its gate-drain capacitance Cgd acts many times larger (the Miller effect, E6). Node x swings only 0.89 times the input there. At low frequency x swings 60.8 times, because the ideal load makes M2's input resistance high, as in E3.6.
Asked in interviews
What is a cascode and why use it?
A common-gate transistor stacked on a common-source one. It multiplies ro1 by the top device's (gm2 + gmb2)·ro2, 144 here (71 times one device's Rout), and shields the lower drain, which cuts the Miller effect on its Cgd.
Derive the output resistance.
A test current through ro1 lifts the source of M2 by i·ro1; M2 is a stage degenerated by ro1: Rout = ro1 + ro2 + (gm2 + gmb2)·ro2·ro1 ≈ gm2ro2·ro1.
What limits its swing, and how do you choose VB?
The output must stay above Vx + VDsat2, and x above VDsat1. Set VB ≈ VGS2 + VDsat1 plus a margin: lower starves M1, higher wastes swing.
Try it
One sweep of VOUT drives all four sinks; each has its own ammeter, and deriv turns each current into Rout. The op first reads M1 and M2 of the 1.2 V cascode at Vout = 1.2 V for the formula.
Predict, then run. Make both cascode devices longer (L = 1): ro rises in both, so Rout rises roughly as the square. Lower VIN to 0.7 V: less current, a larger ro, and Vx rises a little. Tie M2's gate to its drain instead of VG12 and watch Rout collapse.
Run the netlist to draw its plots here.
id_one = 2.019297e-05 rout_one = 5.720097e+05 id_cas = 1.835900e-05 rout_cas = 4.076023e+07 ro1 = 2.763800e+05 ro2 = 5.054205e+05 gm_gmb2 = 2.848324e-04 rout_hand = 4.056950e+07 vdsat1 = 1.261483e-01 vdsat2 = 1.264157e-01 vx = 3.795340e-01 vx_06 = 3.727475e-01 v10m = 6.102763e-01 id_09 = 1.624350e-05 rout_09 = 6.337714e+06 vx_09 = 1.370603e-01 id_15 = 1.907007e-05 rout_15 = 4.743583e+07 vx_15 = 6.307009e-01 v10m_15 = 8.285295e-01Check yourself
Remember
- A cascode stacks a common-gate device on a common-source one; the top device holds the lower drain nearly still.
- Rout ≈ (gm2 + gmb2)·ro2·ro1: the top device's intrinsic gain (144 here) multiplies ro1; against one device at the same output voltage Rout rose 71 times.
- It costs headroom: the output must stay above Vx + VDsat2; choose VB ≈ VGS2 + VDsat1 plus a margin.
- With an ideal load a cascode amplifier gains about the product of two intrinsic gains (50 times one device here), with the same unity-gain frequency gm/(2πCL).