Subthreshold and leakage
Measure the current of a transistor that is off, read its subthreshold swing from a log plot, and see why leakage climbs with temperature and how the simulator can hide it.
- Lesson
- E2.6
- Time
- 25 min
- Runs on
- ngspice
- Check
- 5 questions
A sensor node sleeps between readings, and its sleep current was checked on the bench at room temperature. Each of its switch transistors (NMOS, W = 2 µm, L = 0.15 µm) leaked 1.02 pA with its gate at 0 V and 1.8 V on its drain. Inside a hot enclosure at 125 °C the same device leaks 152.7 pA, 150 times more, and the battery budget was gone.
- I_D at 27 °C
- I_D at 125 °C
- Gate voltage V_GS 0 VI_D at 27 °C = 1.02 pA · I_D at 125 °C = 152.7 pA
With the gate at 0 V the device is off, yet 1.02 pA flows at 27 °C and 152.7 pA at 125 °C. This is the off current Ioff.
- Gate voltage V_GS 280 mVI_D at 27 °C = 1.004 nA · I_D at 125 °C = 27.04 nA
At 0.28 V the 27 °C curve passes 1 nA. Below about 0.5 V it is a straight line on this log axis: the current is exponential in VGS.
- Gate voltage V_GS 374 mVI_D at 27 °C = 10.05 nA · I_D at 125 °C = 148.3 nA
At 0.374 V it passes 10 nA. One decade of current took 94 mV of gate voltage.
- Gate voltage V_GS 600 mVI_D at 27 °C = 1.929 µA · I_D at 125 °C = 6.201 µA
At 0.6 V the lines bend over as the channel forms. The hot device still leads, by 3.2 times.
- Gate voltage V_GS 1 VI_D at 27 °C = 197.9 µA · I_D at 125 °C = 195.5 µA
At 1 V the curves meet: 197.9 µA at 27 °C and 195.5 µA at 125 °C. With a strong gate drive, heat no longer helps (E2.7).
Read the plot as a table
| Gate voltage V_GS | I_D at 27 °C | I_D at 125 °C |
|---|---|---|
| 0 V | 1.02 pA | 152.7 pA |
| 200 mV | 140.1 pA | 6.217 nA |
| 280 mV | 1.004 nA | 27.04 nA |
| 374 mV | 10.05 nA | 148.3 nA |
| 400 mV | 18.92 nA | 235.5 nA |
| 600 mV | 1.929 µA | 6.201 µA |
| 800 mV | 47.97 µA | 60.58 µA |
| 1 V | 197.9 µA | 195.5 µA |
Measured on ngspice 42 with the SKY130 tt models (501 points per curve).
Off is a current, and it depends on temperature exponentially.
A straight line on a log axis
- Off, but not zero
The gate sits at 0 V, far below the threshold. Electrons still diffuse over the barrier at the source, and 1.02 pA flows from VDS through the channel to ground.
Ioff = 1.02 pA
- What the run reports
SPICE counts current into the + terminal of VDS as positive, so
i(VDS)prints −1.02 pA. The lab plots-i(VDS).
Read the circuit as text
- M1 NMOS transistor (W/L = 2/0.15): gate →
g, drain →d, source →0 - VGS voltage source (0 V): + →
g, − →0 - VDS voltage source (1.8 V): + →
d, − →0
d= 1.8 Vg= 0 V
The lab netlist: XM1 d g 0 0 sky130_fd_pr__nfet_01v8 W=2 L=0.15, VDS d 0 1.8, VGS g 0 0.
Read the 27 °C curve of the hook from the left. It passes 1 nA at VGS = 0.280 V and 10 nA at 0.374 V. Every further decade below the bend costs about the same gate voltage, so on a log axis the curve is a straight line.
Below the threshold the channel is only weakly inverted: too few electrons to carry current by drift. They cross from source to drain by diffusion, climbing an energy barrier that the gate lowers. The number that make it grows exponentially as the barrier falls, so ID ∝ exp(VGS/(n·UT)). Here UT = kT/q is the thermal voltage, 25.9 mV at 27 °C, and n is the slope factor: only 1/n of a gate change reaches the channel, so n is 1 at best.
The gate voltage for one decade of current is the subthreshold swing S = n·UT·ln 10, in mV per decade. With n = 1 it is 59.6 mV/dec at 27 °C, and no MOSFET does better at room temperature. The lab measures s_27 = 94.0 mV/dec, so this device has n = 94.0/59.6 = 1.58, close to the 1.54 that E2.5's gm/ID limit gives for the same length at VDS = 0.9 V.
The swing also predicts the off current. Start from 1 nA at 0.280 V and walk down 0.280/0.0940 = 2.98 decades to VGS = 0: that gives 1.05 pA. The lab measures 1.02 pA. A threshold near 0.6 V and a swing near 94 mV/dec put the off current about six decades below the current at threshold.
Why heat raises the leakage
Two things move when the chip warms. The swing grows with temperature, because UT = kT/q does. The threshold falls (E2.7 measures it), which slides the whole line to the left. Both raise the current at VGS = 0.
| Temperature | Swing S (lab) | S scaled from 27 °C by T/300.15 K | Ioff (lab) |
|---|---|---|---|
| −40 °C | s_m40 = 73.2 mV/dec | 73.0 mV/dec | ioff_m40 = 1.283695e-14 |
| 27 °C | s_27 = 94.0 mV/dec | 94.0 mV/dec | ioff_27 = 1.019962e-12 |
| 125 °C | s_125 = 124.6 mV/dec | 124.7 mV/dec | ioff_125 = 1.527228e-10 |
NMOS W = 2 µm, L = 0.15 µm, VDS = 1.8 V, gmin lowered. S is the VGS step from 1 nA to 10 nA. The middle column multiplies 94.0 mV/dec by the ratio of absolute temperatures.
The swing tracks absolute temperature within 0.3 %. So n hardly changes; the physics is UT. The off current rises 79 times from −40 °C to 27 °C and 150 times more by 125 °C: over four decades across the range a product must work in.
The drain matters too. At VDS = 0.1 V the lab measures ioff_vds01 = 1.034624e-13, ten times less than at 1.8 V. A high drain voltage lowers the source barrier (drain-induced barrier lowering, E2.2), and in subthreshold every millivolt of barrier is exponential.
Weak inversion is not only a nuisance. The same exponential gives the highest gm/ID a transistor can have (E2.5), and low-power analog circuits bias there on purpose.
The simulator's own leak
SPICE adds a tiny conductance called gmin across the device junctions, 10−12 S unless you change it, to help the solver converge. It is invisible in most circuits. At 1.8 V it carries 1.8 pA, and that is more than this transistor's own off current.
- gmin = 1e-18 S
- gmin = 1e-12 S (default)
- Gate voltage V_GS 0 Vgmin = 1e-18 S = 12.84 fA · gmin = 1e-12 S (default) = 1.813 pA
At VGS = 0 the default run reports 1.81 pA. The device itself carries 0.0128 pA, 141 times less.
- Gate voltage V_GS 200 mVgmin = 1e-18 S = 1.641 pA · gmin = 1e-12 S (default) = 3.441 pA
At 0.2 V the two runs still differ by a factor of two: 3.44 pA against 1.64 pA.
- Gate voltage V_GS 300 mVgmin = 1e-18 S = 39.03 pA · gmin = 1e-12 S (default) = 40.83 pA
By 0.3 V the device current, 39 pA, swamps the 1.8 pA and the curves join.
Read the plot as a table
| Gate voltage V_GS | gmin = 1e-18 S | gmin = 1e-12 S (default) |
|---|---|---|
| 0 V | 12.84 fA | 1.813 pA |
| 100 mV | 78.08 fA | 1.878 pA |
| 200 mV | 1.641 pA | 3.441 pA |
| 300 mV | 39.03 pA | 40.83 pA |
| 400 mV | 927.9 pA | 929.7 pA |
| 500 mV | 21.42 nA | 21.42 nA |
| 600 mV | 433.7 nA | 433.7 nA |
Measured on ngspice 42 with the SKY130 tt models (301 points per curve).
Default gmin
.lib sky130 tt
.options temp=-40
XM1 d g 0 0 sky130_fd_pr__nfet_01v8 W=2 L=0.15
VDS d 0 1.8
VGS g 0 0
.control
dc VGS 0 0.6 0.002
let id = -i(VDS)
meas dc ioff FIND id AT=0
.endc
ioff = 1.812835e-12: the leak of the simulator, plus a little of the device.
gmin lowered
.lib sky130 tt
.options temp=-40 gmin=1e-18
XM1 d g 0 0 sky130_fd_pr__nfet_01v8 W=2 L=0.15
VDS d 0 1.8
VGS g 0 0
.control
dc VGS 0 0.6 0.002
let id = -i(VDS)
meas dc ioff FIND id AT=0
.endc
ioff = 1.283695e-14: the transistor's own off current.
Both measured on ngspice 42. With the default, the reading is about 1.80 pA too high at −40, 27 and 125 °C alike: 10−12 S × 1.8 V.
Asked in interviews
What is subthreshold conduction?
Below threshold the channel is weakly inverted and carriers cross from source to drain by diffusion over a barrier the gate controls. The current is exponential in VGS: ID ∝ exp(VGS/(n·UT)). It is why an off transistor still leaks, and why weak inversion gives the highest gm/ID.
What is subthreshold swing, and what limits it?
S is the gate voltage per decade of current, n·UT·ln 10. With n = 1 it is about 60 mV/dec at room temperature, set by the thermal spread of carrier energies, so a conventional MOSFET cannot switch more steeply. Real devices have n above 1: this SKY130 NMOS measures 94 mV/dec.
Why does leakage rise with temperature, and how would you measure it in SPICE?
UT grows with T, so the swing grows, and the threshold falls; both raise the current at VGS = 0. Measured here: 0.0128 pA at −40 °C, 1.02 pA at 27 °C, 152.7 pA at 125 °C. In SPICE, sweep the gate, read the current at 0 V, and lower gmin first: the default 1e-12 S adds about 1.8 pA at 1.8 V.
Try it
Run the netlist. Each dc sweep is followed by two meas lines: the current at VGS = 0, and TRIG ... TARG, which returns the VGS step between the 1 nA and 10 nA crossings. That step is the swing in volts per decade. option temp=125 sets the temperature for the next analysis.
Now delete the .options gmin=1e-18 line and run again. Predict which readings move: the three off currents should each grow by about 1.8 pA, which only matters where the device leaks less than that. Then open Plots and compare the slopes of the three temperatures.
Run the netlist to draw its plots here.
ioff_27 = 1.019962e-12 s_27 = 9.397217e-02 targ= 3.738026e-01 trig= 2.798305e-01 ioff_125 = 1.527228e-10 s_125 = 1.245587e-01 targ= 2.257872e-01 trig= 1.012285e-01 ioff_m40 = 1.283695e-14 s_m40 = 7.317984e-02 targ= 4.755366e-01 trig= 4.023568e-01 ioff_vds01 = 1.034624e-13Check yourself
Remember
- Below threshold the drain current is exponential in VGS: a straight line on a log axis, carried by diffusion over a barrier.
- The subthreshold swing S = n·UT·ln 10 is the gate voltage per decade: 59.6 mV/dec at best at 27 °C, 94.0 mV/dec measured for this SKY130 NMOS.
- The off current is the current at VGS = 0; it rises with temperature (0.0128 pA at −40 °C to 152.7 pA at 125 °C here) and with VDS (DIBL).
- SPICE's default gmin of 10−12 S adds about 1.8 pA at 1.8 V: lower it before you trust a leakage number.