MOSFET Operation: Threshold, Regions, Body Effect & Subthreshold

From MOS capacitor to transistor. Learn MOSFET structure (gate stack, source, drain, body, channel), NMOS/PMOS, enhancement and depletion devices, channel formation and inversion charge Q_inv = C_ox(V_GS − V_T), gradual-channel derivation of the triode and saturation equations, pinch-off, channel-length modulation, body effect, subthreshold (weak-inversion) conduction and swing S, mobility degradation with vertical field, temperature effects on V_T and mobility (ZTC point), output/transfer characteristics, R_DS(on), g_m and r_o, leakage components, and why MOSFET 'saturation' differs from BJT saturation — with Python computing drain currents, body-effect thresholds, subthreshold swing and I_on/I_off.

Add source and drain regions to a MOS capacitor and the inversion layer becomes a conducting channel between them. The gate controls its charge; the drain voltage drives carriers along it. This simple structure, repeated billions of times, is the basis of modern electronics.

The long-channel square-law model explains the regions of operation; subthreshold conduction and body effect explain why real circuits leak and why threshold depends on source potential.

An analogy

The gate is a tap that fills a shallow channel with water (inversion charge); the drain voltage tilts the channel so water flows. Tilt it enough and the channel runs dry at the drain end (pinch-off) — the flow then depends only on how much the tap lets in, not on further tilting.

Regions of operation

For an NMOS:

Second-order effects

Channel-length modulation: the pinch-off point moves toward the source with V_DS, shortening the effective channel (λ ∝ 1/L). Mobility degradation: strong vertical fields press carriers against the interface, reducing µ_eff (θ parameter). Velocity saturation (short channels) makes I_D grow linearly rather than quadratically with overdrive. Temperature: V_T falls ~1–3 mV/K while mobility falls ∝ T^(−1.5): at low V_GS current rises with T, at high V_GS it falls — a zero-TC bias point exists.

Subthreshold conduction

Below threshold, a weak inversion layer carries a diffusion current exponential in V_GS. The swing S = 2.3(kT/q)(1 + C_d/C_ox) cannot beat 60 mV/dec at room temperature in a conventional MOSFET (the 'Boltzmann tyranny'), which limits how far V_T and V_DD can be lowered without raising leakage — motivating FinFETs (better C_ox coupling) and steep-slope devices like TFETs.

Leakage components

Subthreshold leakage (dominant), gate tunnelling through thin oxides, junction leakage (S/D to body), gate-induced drain leakage (GIDL) under high drain–gate fields, and punch-through in short channels. Leakage grows exponentially with temperature and is a first-order constraint in low-power design.

Formulas

Worked example: Saturation current

Given: µC_ox 200 µA/V², W/L 20, V_GS − V_T 0.3 V

Find: I_D.

Answer: 180 µA

Worked example: Region check

Given: V_GS 1.2, V_T 0.4, V_DS 0.5

Find: Region.

Answer: Triode

Worked example: Leakage from V_T shift

Given: S 80 mV/dec, V_T lowered 160 mV

Find: Leakage factor.

Answer: 100×

NMOS structure and channel

        Gate (poly or metal)
        ═══════════════════
  n⁺ S  ░░░ gate oxide ░░░  n⁺ D        V_GS > V_T: electron inversion layer
   ▓▓▓▓ ━━━ channel ━━━━━ ▓▓▓▓         V_DS small: uniform channel (resistor)
          p-type body (B)              V_DS ≥ V_GS − V_T: channel pinches off at drain
  Body diode: p-body → n⁺ drain (in discrete MOSFETs body tied to source)

The source supplies electrons to the inversion layer; the drain collects them. The body (substrate) sets the depletion charge and threshold. Enhancement devices need V_GS > V_T > 0 to conduct; depletion devices have a built-in channel (V_T < 0).

Drain current, body effect, subthreshold swing and I_on/I_off

import math
# Long-channel MOSFET: drain current, body effect, subthreshold swing, on/off ratio, temperature
q, eps_si, eps_ox, VT = 1.602e-19, 11.7 * 8.854e-14, 3.9 * 8.854e-14, 0.02585
tox, Na, mu = 5e-7, 1e17, 400.0
Cox = eps_ox / tox
W, L, Vth = 10e-4, 1e-4, 0.5
k = mu * Cox * W / L
for VDS in (0.1, 0.5, 2.0):
    VGS = 1.5
    Vov = VGS - Vth
    ID = k * (Vov * VDS - VDS**2 / 2) if VDS < Vov else 0.5 * k * Vov**2
    print(f"VGS 1.5 V, VDS {VDS:.1f} V: ID = {ID*1e3:.3f} mA ({'triode' if VDS < Vov else 'saturation'})")
phiF = VT * math.log(Na / 9.65e9)
gamma = math.sqrt(2 * q * eps_si * Na) / Cox
for VSB in (0, 1, 2):
    print(f"body effect: VSB = {VSB} V -> VT = {Vth + gamma*(math.sqrt(2*phiF+VSB)-math.sqrt(2*phiF)):.3f} V (gamma = {gamma:.2f} V^0.5)")
Cd = math.sqrt(q * eps_si * Na / (4 * phiF))
S = 2.303 * VT * (1 + Cd / Cox) * 1e3
print(f"subthreshold swing S = {S:.0f} mV/decade (ideal 60)")
Ion = 0.5 * k * (1.0 - Vth) ** 2
Ioff = 1e-7 * (W / L) * 10 ** (-Vth / (S / 1e3))  # I at VGS = VT ~ 0.1 uA*W/L (rule of thumb)
print(f"at VDD = 1 V: Ion = {Ion*1e3:.3f} mA, Ioff ~ {Ioff*1e12:.3f} pA, Ion/Ioff = {Ion/Ioff:.1e}")
# VGS 1.5 V, VDS 0.1 V: ID = 0.262 mA (triode)
# VGS 1.5 V, VDS 0.5 V: ID = 1.036 mA (triode)
# VGS 1.5 V, VDS 2.0 V: ID = 1.381 mA (saturation)
# body effect: VSB = 0 V -> VT = 0.500 V (gamma = 0.26 V^0.5)
# body effect: VSB = 1 V -> VT = 0.616 V (gamma = 0.26 V^0.5)
# body effect: VSB = 2 V -> VT = 0.703 V (gamma = 0.26 V^0.5)
# subthreshold swing S = 68 mV/decade (ideal 60)
# at VDD = 1 V: Ion = 0.345 mA, Ioff ~ 0.046 pA, Ion/Ioff = 7.5e+09

A 10/1 µm NMOS with a 5 nm oxide delivers ~1.4 mA in saturation. Raising the source above the body by 2 V increases V_T by 0.2 V (body effect — important in stacked transistors and source followers). Depletion capacitance makes S = 68 mV/dec instead of the ideal 60; with V_T = 0.5 V the long-channel device achieves a huge I_on/I_off. Scaled devices trade V_T and leakage much less comfortably.

Common mistakes

Applications

Key takeaways

Going further