The source follower

Predict where a source follower's output sits, why its gain stays below 1, how low its output resistance is, and how far down its input can go.

Lesson
E3.5
Time
25 min
Runs on
ngspice
Check
5 questions

A designer added a source follower to copy a 1.2 V reference into an ADC input. It delivered 0.378 V, and a 10 mV ripple on the reference came out as 8.4 mV. The output sits a whole VGS below the input, and the gain is 0.841, not 1.

DC sweepWhat the follower deliversM1 (W/L = 4/0.5 µm) carries 20 µA from an ideal sink. The solid line is the input itself, what a perfect buffer would deliver; the dashed line is the output.
  • v(in)
  • v(out)
00.5 V1.0 V1.5 V2.0 VVoltage0.9 V1.0 V1.1 V1.2 V1.3 V1.4 V1.5 V1.6 V1.7 V1.8 VInput voltagethe 1.2 V referencev(out) = 377.6 mV00.5 V1.0 V1.5 V2.0 VVoltage1.0 V1.2 V1.4 V1.6 V1.8 VInput voltagethe 1.2 V referencev(out) = 377.6 mV
  1. Input voltage 1.2 Vv(in) = 1.2 V · v(out) = 377.6 mV

    With 1.2 V in, the output is 377.6 mV: 822 mV lower. The ADC reads a reference less than a third of the intended value.

  2. Input voltage 1.6 Vv(in) = 1.6 V · v(out) = 717.2 mV

    With 1.6 V in, the output is 717 mV: the gap has grown from 822 to 883 mV. The output rises more slowly than the input, and its slope is the gain.

Read the plot as a table
Input voltagev(in)v(out)
900 mV900 mV127.2 mV
1 V1 V210.2 mV
1.1 V1.1 V293.7 mV
1.2 V1.2 V377.6 mV
1.3 V1.3 V461.9 mV
1.4 V1.4 V546.7 mV
1.5 V1.5 V631.8 mV
1.6 V1.6 V717.2 mV
1.7 V1.7 V803 mV
1.8 V1.8 V889.1 mV

Every point is from a run on ngspice 42 with the SKY130 tt models (181 points).

A follower copies changes, not levels, and even the changes come out smaller.

Where the output sits

An NMOS source followerInput on the gate, output on the source, drain at VDD. The sink IB sets the current.
An NMOS source follower+VDD1.8 VM1W/L = 4/0.5VIN1.2 V + v_inIB20 µAoutin1.200 Vout0.378 V
  1. The sink fixes the current

    IB pulls 20 µA out of the source node, and the only way in is through M1. So M1 carries 20 µA whatever the input does.

    ID = 20 µA

  2. The current fixes VGS

    A saturated transistor carries 20 µA at one gate-source voltage. Here VGS = 0.822 V, so the source settles 0.822 V below the gate.

  3. The output follows

    Raise the gate by 1 mV and the source rises by 0.84 mV. VGS barely changes, so the current stays at 20 µA.

Read the circuit as text
  • M1 NMOS transistor (W/L = 4/0.5): gate → in, drain → VDD, source → out
  • VIN voltage source (1.2 V + v_in): + → in, − → 0
  • IB current source (20 µA): + → out, − → 0
  • out port: terminal → out
  • in = 1.200 V
  • out = 0.378 V

The schematic draws three terminals. M1's body is the shared p-type substrate, at ground: in the netlist it is the fourth node, 0.

In a source follower (also called a common-drain stage) the input drives the gate and the output is taken at the source. The drain sits at VDD. A current sink pulls a fixed current out of the source.

The sink sets the drain current, and the current sets VGS. So the output sits one VGS below the input: vout = vin − VGS. The lab prints VGS = 0.822 V at 20 µA, so 1.2 V in gives 0.378 V out. This level shift comes with the stage: whatever the input, the output sits one VGS lower.

Why so much? The lab's second copy, M2, ties its body to its own source and needs only VGS = 0.748 V. M1's source sits 0.378 V above its body, and that raises its threshold. This is the body effect from E2: 74 mV of the shift comes from it.

Why the gain stays below 1

Small-signal, the sink is an open circuit, so the transistor's signal current must be zero. Three terms make up that current: gm(vin − vout) from the gate, −gmbvout from the body, and −gdsvout from the drain-source conductance. Here gmb is the body transconductance: the current change per volt of body-source voltage.

Set the sum to zero and the gain is Av = gm/(gm + gmb + gds). The lab prints gm = 256.4 µS, gmb = 46.66 µS and gds = 1.666 µS. The formula gives 0.8414, and the AC run measures 0.8414.

Drop the gmb term and the formula gives 0.994. The body term costs the rest: as the source rises, so does the threshold, and the output gives back part of every step. The drain conductance costs less than 1 %.

NMOS, body at ground

XM1 vdd in out 0 sky130_fd_pr__nfet_01v8 W=4 L=0.5
IB out 0 20u

gain = 8.414329e-01, vout = 3.775798e-01: the threshold rises with the output.

NMOS, body at its source

XM2 vdd in out2 out2 sky130_fd_pr__nfet_01v8 W=4 L=0.5
IB2 out2 0 20u

gain_bs = 9.934496e-01, vout_bs = 4.517623e-01: no body effect, gain 0.993.

Both run in the lab. The simulator accepts any body node. SKY130's 1.8 V NMOS here sits in the shared substrate, so on the chip its body is ground.

A PMOS sits in its own n-well, which can be tied to its source. The lab's PMOS follower does this and measures a gain of 0.993. It shifts the other way: 0.3 V in gives 1.448 V out, so it suits inputs near ground.

FollowerBody tied toInputOutputGain
M1, NMOSground1.2 Vvout = 3.775798e-01gain = 8.414329e-01
M2, NMOSits source1.2 Vvout_bs = 4.517623e-01gain_bs = 9.934496e-01
P1, PMOSits source (n-well)0.3 Vvout_p = 1.447763e+00gain_p = 9.930965e-01

The three followers of the lab, each at 20 µA. Only M1, with its body at ground, loses gain to the body effect.

Low output resistance

A follower earns its place at its output. To measure the output resistance, the lab holds the input still and pushes 1 A of AC current into the output. The output voltage in volts is then the resistance in ohms: Rout = 3298 Ω.

Seen from the source, the transistor is three conductances in parallel, so Rout ≈ 1/(gm + gmb + gds) = 3282 Ω. The model adds the last 16 Ω. Its source diffusion is 0.14/W = 0.035 squares at 465.8 Ω per square, 16.3 Ω in series.

Now load the output with 10 kΩ. The follower acts as a source of 0.8414·vin behind 3298 Ω, and the load divides it: 0.8414 × 10/(10 + 3.298) = 0.6327. The run measures 0.6328. The lab couples the load through a large capacitor, so the bias does not move.

Where the follower stops following

An ideal sink works at any voltage, even below ground. A real sink is a transistor, and it needs its own VDS above its saturation voltage VDsat. The plot drives the follower into a transistor sink and sweeps the input from 0 to 1.8 V. The lower panel is the slope, the small-signal gain.

DC sweepThe follower into a transistor sinkM1 as before; the sink is an NMOS (W/L = 4/0.5 µm) copying a 20 µA reference. Below: the slope dvout/dvin.
  • v(out)
  • gain
00.2 V0.4 V0.6 V0.8 V1.0 VOutput voltage00.20.40.60.81.0Gain00.2 V0.4 V0.6 V0.8 V1.0 V1.2 V1.4 V1.6 V1.8 VInput voltagegain at 90 %00.5 V1.0 VOutput voltage00.20.40.60.81.0Gain00.5 V1.0 V1.5 VInput voltagegain at 90 %
  1. Input voltage 600 mVv(out) = 6.094 mV · gain = 0.114

    With 0.6 V in, M1 is barely on and the output is 6 mV. Nothing follows yet.

  2. Input voltage 903.5 mVv(out) = 140.9 mV · gain = 0.7479

    At 0.904 V in, the output is 141 mV and the gain has climbed to 90 % of its value at 1.2 V. Below this the sink leaves saturation: it needs about VDsat = 128 mV.

  3. Input voltage 1.2 Vv(out) = 381 mV · gain = 0.831

    At 1.2 V in, the gain is 0.831 and the output 381 mV. A transistor sink copies its 20 µA reference only roughly (E4 shows why), so the numbers differ slightly from the lab's.

  4. Input voltage 1.6 Vv(out) = 717.5 mV · gain = 0.8497

    Higher up, the gain keeps rising slowly. A larger source-body voltage makes the threshold less sensitive to a further rise, so gmb shrinks against gm.

Read the plot as a table
Input voltagev(out)gain
0 V1.418 nV32.56 n
200 mV308 nV8.293 µ
400 mV61.51 µV0.001585
600 mV6.094 mV0.114
800 mV72.64 mV0.5546
903.5 mV140.9 mV0.7479
1 V216.6 mV0.8071
1.2 V381 mV0.831
1.4 V548.3 mV0.8418
1.6 V717.5 mV0.8497
1.8 V888.1 mV0.8562

Every point is from a run on ngspice 42 (361 points). The gain is the derivative of v(out) along the sweep.

So the input must stay above VGS plus the sink's VDsat. At the 90 % point VGS is 0.763 V, and the output, 0.141 V, sits just above the sink's VDsat of 0.128 V. That is the cost of a follower in swing: it eats a VGS of headroom, and the sink below it eats more.

Asked in interviews
  1. What are the gain and output resistance of a source follower?

    Av = gm/(gm + gmb + gds + 1/RL) and Rout ≈ 1/(gm + gmb). For W/L = 4/0.5 µm at 20 µA in SKY130: 0.841 and about 3.3 kΩ.

  2. Why is the gain below 1?

    The source moves with the input, and with the body at ground the threshold rises as the source rises. The gmb term takes back part of every step. ro and the load take a little more.

  3. When would you use a PMOS follower?

    When the body effect matters and the input sits near ground. A PMOS can tie its n-well to its source, so the gain approaches 1, and it shifts the level up by one VSG.

Try it

The run has four parts. The first ac reads each follower's gain, and gain_hand is the formula from the printed gm, gmb and gds. The second turns the input's AC off and pushes 1 A into the output, so rout is in ohms. The third connects 10 kΩ. The dc sweep finds where each output sits.

Try three changes and predict each first. Double the sink current to 40 µA: VGS grows, so vout falls, and gm rises, so rout falls. Add nrs=0 nrd=0 to the XM1 line: the 16 Ω gap between rout and rout_hand closes. Make M1 longer (L = 2): gds shrinks, but the gain hardly moves, because gmb dominates the loss.

SPICEngspice 42 · simulator service
Edit the netlist, then run it
Expected measurements: gm = 2.564172e-04 gmb = 4.665593e-05 gds = 1.665577e-06 gain = 8.414329e-01 gain_hand = 8.414330e-01 gain_bs = 9.934496e-01 gain_p = 9.930965e-01 rout = 3.297891e+03 rout_hand = 3.281500e+03 gain_10k = 6.327567e-01 vout = 3.775798e-01 vgs_12 = 8.224202e-01 vout_bs = 4.517623e-01 vout_p = 1.447763e+00

Check yourself

Predict the outputM1 is now two copies in parallel (m=2), and the sink carries 40 µA. Everything else matches the lab. Type the line meas prints (format: vout = 6.319360e-01).
* the lab follower as two copies in parallel (m=2) with twice the sink current
.lib sky130 tt
VDD vdd 0 1.8
VIN in 0 dc 1.2
XM1 vdd in out 0 sky130_fd_pr__nfet_01v8 W=4 L=0.5 m=2
IB out 0 40u
.control
dc VIN 0.9 1.8 0.001
meas dc vout FIND v(out) AT=1.2
.endc
.end
ConceptRead the plot of the follower into a transistor sink. Below about which input voltage does the follower stop following (gain under 90 % of its value at 1.2 V)?
ConceptAn NMOS follower with its body at ground has an ideal current sink and no load. What keeps its gain at 0.84 instead of 1?
ConceptA follower carries a current at which VGS = 0.8 V, including the body effect. The input is 1.2 V. About where is the output?
ConceptWhich line does NOT make a source follower from in to out? Each has IB out 0 20u and VDD vdd 0 1.8.

Remember

  • A source follower takes the input at the gate and the output at the source; the sink sets the current, so the output sits one VGS below the input.
  • With the body at ground the gain is gm/(gm + gmb + gds): 0.841 here, and the body effect causes most of the loss.
  • The output resistance is about 1/(gm + gmb), a few kilohms at 20 µA, so a follower drives loads a gain stage cannot.
  • The input must stay above VGS plus the sink's VDsat; a PMOS follower with its n-well at its source avoids the body effect and shifts up.