The small-signal model
Read a transistor's small-signal parameters at its operating point, rebuild an amplifier from them by hand, measure its capacitances and its transit frequency, and know how small a signal must be for the model to hold.
- Lesson
- E3.1
- Time
- 30 min
- Runs on
- ngspice
- Check
- 5 questions
To see the gain of a common-source stage, an engineer drove it with a 100 mV sine in a transient run. The output swing was 6.57 times the input swing, the AC analysis said 7.32, and the engineer decided the AC analysis was wrong.
- 1 mV input, output × 100
- 100 mV input
- Time 1.251 µs1 mV input, output × 100 = -731.7 mV · 100 mV input = -700.8 mV
Input at its peak. The magnified 1 mV output dips 0.73 V; the 100 mV output dips only 0.70 V.
- Time 2.751 µs1 mV input, output × 100 = 731.1 mV · 100 mV input = 612.3 mV
Input at its trough. The small output rises 0.73 V, a mirror image. The large one rises only 0.61 V: lopsided.
More context
From 1 to 3 µs the 100 mV output swings from 0.199 V to 1.512 V, and its average sits at 0.875 V instead of 0.9 V.
Read the plot as a table
| Time | 1 mV input, output × 100 | 100 mV input |
|---|---|---|
| 0 s | 197.6 µV | 1.976 µV |
| 500 ns | 103 µV | -98.69 µV |
| 1 µs | 292 µV | 89.84 µV |
| 1.251 µs | -731.7 mV | -700.8 mV |
| 1.5 µs | 102.7 µV | -111.1 µV |
| 2 µs | 293 µV | 84.04 µV |
| 2.5 µs | 101.9 µV | -107.7 µV |
| 2.751 µs | 731.1 mV | 612.3 mV |
| 3 µs | 292.5 µV | 96.92 µV |
Measured on ngspice 42 (500 of the run's time points); 1 MHz sines, no load capacitor.
Both were right: AC analysis gives the gain for small signals, and 100 mV is not small for this stage.
A transistor around its operating point
Bias a transistor at an operating point: fixed DC voltages and drain current, here VGS = 0.7815 V and ID = 25 µA. Wiggle the gate by a few millivolts and the drain current wiggles almost in proportion. For small changes the curved device acts like a straight line.
Write small changes in lower case (vgs, id). Then id = gm·vgs + gmb·vbs + vds/ro: the small-signal model.
gm, the transconductance
gm = ∂ID/∂VGS, the slope of the ID-VGS curve at the bias (E2.5 Transconductance and gm/ID).
gmb, the body transconductance
The body acts as a second, weaker gate. When the source rises above it, the threshold rises too (the body effect). Its transconductance is gmb = ∂ID/∂VBS.
ro, the output resistance
ro = 1/gds, with gds = ∂ID/∂VDS (E2.4 Channel-length modulation and output resistance).
ngspice reports these numbers per device. A SKY130 transistor is a subcircuit, so the name has a path: @m.xm1.msky130_fd_pr__nfet_01v8[gm] is gm of the transistor inside XM1. The lab saves them during its input sweep and reads them where v(out) crosses 0.9 V.
| Parameter | Measured at the bias | Meaning here |
|---|---|---|
| ID | id_b = 2.500000e-05 | 25.00 µA through M1 and RD |
| gm | gm_b = 3.228319e-04 | 322.8 µS: 1 mV on the gate moves 0.32 µA |
| ro | ro_b = 6.264115e+04 | 62.64 kΩ, comparable with RD = 36 kΩ |
| gmb | gmb_b = 5.516963e-05 | 55.17 µS, 17 % of gm; unused while the source sits at the body's 0 V |
The lab's stage at Vin = 0.7815 V. W/L = 2/0.15 µm, body at ground.
The model, drawn and rebuilt
- The gate controls a current
vgs makes a current gm·vgs from drain to source. At low frequency no current enters the gate.
gm·vgs
- ro in parallel
The drain voltage also moves the current, by vds/ro: a resistor from drain to source.
- The capacitors
Cgs (with the small Cgb) from gate to source and body, Cgd from gate to drain, Cdb from drain to body. They matter at high frequency.
- Where gmb went
With the source on the body, vbs = 0 and the gmb source carries nothing. E3.4 and E3.5 lift the source and need it back.
Read the circuit as text
- gate port: terminal →
n1 - C_gs capacitor (1.91 fF (with C_gb)): pin 1 →
n1, pin 2 →source, body - C_gd capacitor (0.49 fF): pin 1 →
n2, pin 2 →n1 - gm·vgs current source (322.8 µS): + →
n2, − →source, body - r_o resistor (62.64 kΩ): pin 1 →
n2, pin 2 →source, body - C_db capacitor (0.28 fF): pin 1 →
n2, pin 2 →source, body - drain port: terminal →
n2
Supply and ground do not move for the signal, so both are one node. Cgs includes Cgb: 2.40 fF minus Cgd.
Every gain in this module is this circuit plus the resistors around it. In the common-source stage RD goes to VDD, which is ground for the signal, so vout = −gm·(RD ‖ ro)·vin. The minus sign means it inverts.
The lab builds the model from parts. A G element is a voltage-controlled current source: G1 mout 0 in 0 322.83u pushes 322.83 µS × v(in) from mout through itself to ground. AC analysis (E1.4 AC analysis and the Bode plot) builds the same linear circuit, so the gains should agree.
The SKY130 transistor as drawn
XM1 out in 0 0 sky130_fd_pr__nfet_01v8 W=2 L=0.15
G1 mout 0 in 0 322.83u
RO mout 0 62.64k
RDM mout 0 36k
gain_dev = 7.315344e+00 against gain_model = 7.380318e+00: 0.9 % apart.
Contact resistance set to zero
XM1 out in 0 0 sky130_fd_pr__nfet_01v8 W=2 L=0.15 nrs=0 nrd=0
G1 mout 0 in 0 322.85u
RO mout 0 62.71k
RDM mout 0 36k
gain_dev = 7.384077e+00 against gain_model = 7.383783e+00: four digits agree.
Each re-biased to v(out) = 0.9 V and modelled with its own printed gm and ro.
Why 0.9 %? The SKY130 subcircuit puts a small resistance in series with source and drain: a sheet resistance times nrs or nrd squares, about 34 Ω here. The printed gm belongs to the transistor inside. E3.4 shows why a source resistor lowers the gain.
How small is small
Back to the hook. The model is a straight line; the device is not. Near this bias the current grows faster than linearly with VGS, so the output dips further than it rises: 0.70 V down, 0.61 V up.
| Input amplitude | Output peak to peak | Gain from the swing |
|---|---|---|
| 1 mV | 14.63 mV | 7.315 |
| 10 mV | 146.2 mV | 7.309 |
| 100 mV | 1.313 V | 6.566 |
The hook's three copies at 1 MHz. AC analysis gives 7.315.
At 1 mV the swing matches the AC gain to four digits. At 10 mV it is 0.1 % low, at 100 mV 10 % low. So a small signal is small against what bends the curve. In strong inversion that is the overdrive VGS − Vth. Near threshold, where this device sits, it is a few times kT/q (26 mV).
Capacitances and the transit frequency
At high frequency the gate is no longer an open circuit: charge in the channel and in the gate's overlap of the diffusions forms capacitors. The lab measures them on copies of M1 at the same bias.
| Capacitance | Measured | What it is |
|---|---|---|
| Cgg, all of the gate | cgg_b = 2.400796e-15 | Gate to everything: mostly Cgs, the channel's charge |
| Cgd | cgd_b = 4.917299e-16 | Mostly the gate overlapping the drain; E6 multiplies it by the gain (the Miller effect) |
| Cdb, no AD/PD | cdb_b = 2.803144e-16 | Drain junction to the body, with no drain area given |
| Cdb, with AD/PD | cdb_area_b = 9.242491e-16 | The same junction with AD=0.58 PD=4.58: 3.3 times larger |
Each is imag(i)/(2πf) at 100 MHz, with 1 V of AC on the gate or the drain.
Junction capacitance grows with the drain's area and perimeter (AD, AS, PD, PS); leave them out and it is much smaller. Cgd is small but matters most: it joins the input to an output that moves 7.3 times as much the other way, so it draws about 8 times its own current (E6).
How fast can a transistor work? Feed AC current into the gate and hold the drain still. As frequency rises Cgg takes more current, ig = 2πf·Cgg·vgs, so the current gain |id/ig| falls as 1/f. The transit frequency fT is where it reaches 1, about gm/(2π·Cgg).
- L = 0.15 µm, VGS = 0.84 V
- L = 0.15 µm, VGS = 1.04 V
- L = 1 µm, VGS = 0.71 V
- L = 1 µm, VGS = 0.91 V
Read the plot as a table
| Frequency | L = 0.15 µm, VGS = 0.84 V | L = 0.15 µm, VGS = 1.04 V | L = 1 µm, VGS = 0.71 V | L = 1 µm, VGS = 0.91 V |
|---|---|---|---|---|
| 10 MHz | 3113 | 4995 | 82.24 | 195 |
| 100 MHz | 311.3 | 499.6 | 8.231 | 19.5 |
| 1 GHz | 31.14 | 49.96 | 0.8931 | 1.982 |
| 10 GHz | 3.137 | 5.011 | 0.3579 | 0.4048 |
| 100 GHz | 0.4947 | 0.634 | 0.3474 | 0.3543 |
| 1 THz | 0.3788 | 0.3863 | 0.295 | 0.2997 |
ngspice 42: 1 A of AC into each gate; a 1 GΩ resistor brings the gate bias.
| Device | VGS | fT, bench | gm/(2πCgg) |
|---|---|---|---|
| W/L = 2/0.15 | 0.84 V (Vth 0.740 V) | 33.84 GHz | 31.80 GHz |
| W/L = 2/0.15 | 1.04 V | 54.42 GHz | 51.84 GHz |
| W/L = 2/1 | 0.71 V (Vth 0.605 V) | 0.879 GHz | 0.824 GHz |
| W/L = 2/1 | 0.91 V | 2.093 GHz | 1.963 GHz |
Vth as the model reports it. The estimate uses Cgg at 100 MHz.
fT rises with overdrive and falls steeply with length: 38 times lower at L = 1 µm than at 0.15 µm. The square law's 1/L2 predicts 44; E2.3 showed why a 0.15 µm device departs from it. The estimate lands 4 to 6 % low. At fT part of the gate's capacitive current also reaches the drain, through Cgd and the channel, and gm does not count it.
Asked in interviews
Draw the small-signal model of a MOSFET.
gmvgs and gmbvbs current sources and ro, all from drain to source; at high frequency add Cgs, Cgd, Cgb, Cdb, Csb.
What is fT, and what sets it?
Where the gate-to-drain current gain falls to 1, about gm/(2πCgg). It rises with overdrive and falls steeply with L: 34 GHz at 0.15 µm, 0.88 GHz at 1 µm here.
How small must a signal be for the small-signal model to hold?
Well below the overdrive in strong inversion, below a few kT/q near threshold. Check with a transient at the real amplitude.
Try it
Run the netlist. The dc sweep finds the input that puts v(out) at 0.9 V and reads the device parameters there; alter moves every gate to that input; ac then measures the transistor stage, the hand-built model and the capacitances in one run.
Now add nrs=0 nrd=0 to XM1, run, copy the new gm_b and ro_b into G1 and RO, and run again: the two gains agree to four digits. Then change L=0.15 to L=0.5 on M1 only and predict which way ro_b and the gain move before you run.
Run the netlist to draw its plots here.
vb = 7.815163e-01 id_b = 2.500000e-05 gm_b = 3.228319e-04 ro_b = 6.264115e+04 gmb_b = 5.516963e-05 cgg_print_b = 1.426346e-15 gain_dev = 7.315344e+00 gain_model = 7.380318e+00 cgg_b = 2.400796e-15 cgd_b = 4.917299e-16 cdb_b = 2.803144e-16 cdb_area_b = 9.242491e-16Check yourself
Remember
- Around an operating point a transistor is a current source gmvgs (plus gmbvbs) in parallel with ro; AC analysis builds exactly this model.
- Read the parameters from the device:
@m.xm1.msky130_fd_pr__nfet_01v8[gm],[gds],[gmbs],[id], at the bias found by a sweep. - The common-source gain is −gm(RD ‖ ro); SKY130's source and drain resistance (
nrs,nrd) take about 1 % off it here. - "Small" means small against the overdrive, or a few kT/q near threshold; a transient at the real amplitude shows when it is not.
- Cgs is the largest capacitance, Cgd the most important in an amplifier; fT ≈ gm/(2πCgg) rises with overdrive and falls steeply with length.