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.

DC sweepOutput current against output voltageOne NMOS and the cascode, both with the input gate at 0.75 V. A flat curve means a high output resistance.
  • one device
  • cascode, V_B = 1.2 V
-5 µA05 µA10 µA15 µA20 µA25 µACurrent00.2 V0.4 V0.6 V0.8 V1.0 V1.2 V1.4 V1.6 V1.8 VOutput voltage20.19 µA, slope 1/0.572 MΩ18.36 µA, slope 1/40.8 MΩ-5 µA05 µA10 µA15 µA20 µA25 µACurrent00.5 V1.0 V1.5 VOutput voltage20.19 µA, slope 1/0.572 MΩ18.36 µA, slope 1/40.8 MΩ
  1. 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.

  2. 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 voltageone devicecascode, V_B = 1.2 V
0 V0 A0.000003521 fA
200 mV17.35 µA17.04 µA
300 mV18.03 µA17.82 µA
400 mV18.43 µA18.17 µA
600 mV19 µA18.33 µA
800 mV19.44 µA18.35 µA
1 V19.83 µA18.35 µA
1.2 V20.19 µA18.36 µA
1.4 V20.53 µA18.36 µA
1.6 V20.87 µA18.37 µA
1.8 V21.19 µA18.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

A cascode current sinkM1 sets the current from its gate voltage. M2, gate at VB, sits on M1's drain and passes the current up to the output.
A cascode current sink++outM2W/L = 4/0.5M1W/L = 4/0.5VB1.2 VVIN0.75 Vout1.200 Vx0.380 V
  1. 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

  2. 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.

  3. 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 V
  • x = 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.

DC sweepOutput resistance against output voltageRout = 1/(dI/dV) along the sweep, for one device and three cascode biases.
  • one device
  • V_B = 0.9 V
  • V_B = 1.2 V
  • V_B = 1.5 V
1 kΩ10 kΩ100 kΩ1 MΩ10 MΩ100 MΩOutput resistance00.2 V0.4 V0.6 V0.8 V1.0 V1.2 V1.4 V1.6 V1.8 VOutput voltage10 MΩ1 kΩ10 kΩ100 kΩ1 MΩ10 MΩ100 MΩOutput resistance00.5 V1.0 V1.5 VOutput voltage10 MΩ
  1. 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.

  2. 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.

  3. 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 voltageone deviceV_B = 0.9 VV_B = 1.2 VV_B = 1.5 V
0 V4.257 kΩ6.11 kΩ5.152 kΩ4.884 kΩ
200 mV96.53 kΩ65.35 kΩ75.91 kΩ82.97 kΩ
400 mV293.4 kΩ1.713 MΩ427.7 kΩ295.5 kΩ
600 mV410.5 kΩ3.524 MΩ9.075 MΩ536 kΩ
610.3 mV415.1 kΩ3.598 MΩ10 MΩ561.2 kΩ
800 mV485.1 kΩ4.747 MΩ24.29 MΩ6.528 MΩ
1 V536 kΩ5.642 MΩ34.07 MΩ31 MΩ
1.2 V572 kΩ6.338 MΩ40.76 MΩ47.44 MΩ
1.4 V597 kΩ6.86 MΩ45.56 MΩ58.36 MΩ
1.6 V609.9 kΩ7.023 MΩ47.68 MΩ66.08 MΩ
1.8 V605.4 kΩ6.412 MΩ40.83 MΩ70.13 MΩ

Every point is from the lab run on ngspice 42 (361 points).

VBVxCurrentRout at 1.2 VRout ≥ 10 MΩ from
0.9 Vvx_09 = 1.370603e-01id_09 = 1.624350e-05rout_09 = 6.337714e+06never
1.2 Vvx = 3.795340e-01id_cas = 1.835900e-05rout_cas = 4.076023e+07v10m = 6.102763e-01
1.5 Vvx_15 = 6.307009e-01id_15 = 1.907007e-05rout_15 = 4.743583e+07v10m_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.

AC analysisGain of one device and of a cascodeBoth carry 20 µA from an ideal source into 1 pF, biased to 0.9 V out.
  • one device
  • cascode
-40 dB-20 dB020 dB40 dB60 dB80 dB100 dBGain1 Hz100 Hz10 kHz1 MHz100 MHzFrequencycascode −3 dBone device −3 dB-40 dB-20 dB020 dB40 dB60 dB80 dB100 dBGain1 Hz1 kHz1 MHz1 GHzFrequencycascode −3 dBone device −3 dB
  1. 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.

  2. 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.

  3. 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
Frequencyone devicecascode
1 Hz42.06 dB76.07 dB
10 Hz42.06 dB76.07 dB
100 Hz42.06 dB76.07 dB
1 kHz42.06 dB75.95 dB
6.072 kHz42.06 dB73.03 dB
10 kHz42.06 dB70.36 dB
100 kHz41.64 dB51.7 dB
1 MHz31.6 dB31.72 dB
10 MHz12 dB11.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
  1. 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.

  2. 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.

  3. 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.

SPICEngspice 42 · simulator service
Edit the netlist, then run it
Expected measurements: 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-01

Check yourself

Predict the outputOnly the top transistor is left, on an ideal 20 µA sink at its source. The run reads the current into the output at 1.2 V, as a positive number. Type the line meas prints (format: iout_12 = 6.319360e-01).
* the cascode's top device on an ideal 20 uA sink
.lib sky130 tt
VB vb 0 1.2
VOUT out 0 1.2
XM2 out vb x 0 sky130_fd_pr__nfet_01v8 W=4 L=0.5
I1 x 0 20u
.control
dc VOUT 0 1.8 0.005
let iout=-i(VOUT)
meas dc iout_12 FIND iout AT=1.2
.endc
.end
ConceptRead the output-resistance plot. Above about which output voltage does the VB = 1.2 V cascode exceed 10 MΩ?
ConceptIn a cascode each device has gmro = 50 (body effect included), and ro1 = 500 kΩ. About what is Rout?
ConceptThe lab lowers VB from 1.2 V to 0.9 V. What happens at Vout = 1.2 V?
ConceptWhich pair of lines does NOT make a cascode sink from in to out? Nodes are drain, gate, source, body; vb is a fixed bias.

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).