2  Carrier statistics

Open in Colab  Run this chapter’s code in Google Colab (no installation).

Slides 10–17 and 25: electron and hole concentrations, effective density of states, mass action law, intrinsic Fermi level, average electron energy, the meaning of \(E_F\), Table 3.1.

2.1 Key relations

The electron concentration in the CB is the area under \(g_{cb}(E)f(E)\) (slide 10). When \(E_c-E_F\gg k_BT\) (a non-degenerate semiconductor) the Fermi–Dirac function reduces to a Boltzmann tail and the integral is analytic (slides 11–13):

\[ n=N_c\exp\!\left[-\frac{E_c-E_F}{k_BT}\right],\qquad p=N_v\exp\!\left[-\frac{E_F-E_v}{k_BT}\right],\qquad N_{c,v}=2\left(\frac{2\pi m_{e,h}^*k_BT}{h^2}\right)^{3/2}. \]

Their product does not depend on \(E_F\). This is the mass action law (slide 14), valid in equilibrium and in the dark:

\[ np=n_i^2=N_cN_v\exp\!\left(-\frac{E_g}{k_BT}\right). \]

In an intrinsic semiconductor \(n=p=n_i\), which places the Fermi level slightly off mid-gap (slide 15): \(E_{Fi}=E_v+\tfrac12E_g-\tfrac12k_BT\ln(N_c/N_v)=E_v+\tfrac12E_g-\tfrac34k_BT\ln(m_e^*/m_h^*)\). Electrons in the CB have an average energy \(E_c+\tfrac32k_BT\) above the band edge, like the atoms of an ideal gas (slide 16).

2.2 Electrons and holes in the bands, live

Choose a material, a temperature and a Fermi-level position. The panel integrates \(g(E)f(E)\) numerically (no Boltzmann approximation) and compares the result with the formulas above. Move \(E_F\) inside a band to see the Boltzmann formula fail: that is a degenerate semiconductor (Section 2.6).

2.3 Table 3.1 and the effective masses

Show the Python
rows = {}
for m, p in sl.MATERIALS.items():
    mass = lambda N: (N/2)**(2/3)*sl.h**2/(2*np.pi*sl.kB*300)/sl.me
    rows[m] = {"a (nm)": p["a"]*1e9, "Eg (eV)": p["Eg"], "χ (eV)": p["chi"],
               "Nc (cm⁻³)": f"{p['Nc']/CM3:.2e}", "Nv (cm⁻³)": f"{p['Nv']/CM3:.2e}",
               "ni table (cm⁻³)": f"{p['ni']/CM3:.1e}",
               "ni = √(NcNv)e^(−Eg/2kT)": f"{np.sqrt(p['Nc']*p['Nv'])*np.exp(-p['Eg']/(2*sl.kT()))/CM3:.1e}",
               "ε_r": p["eps_r"], "μe (cm²/Vs)": p["mu_e"]/sl.CM2, "μh (cm²/Vs)": p["mu_h"]/sl.CM2,
               "me*/me": round(mass(p["Nc"]), 3), "mh*/me": round(mass(p["Nv"]), 3)}
pd.DataFrame(rows).T
Table 2.1: Table 3.1 of the slides (300 K), with n_i recomputed from √(NcNv) exp(−Eg/2kT) and the density-of-states effective masses implied by Nc and Nv.
a (nm) Eg (eV) χ (eV) Nc (cm⁻³) Nv (cm⁻³) ni table (cm⁻³) ni = √(NcNv)e^(−Eg/2kT) ε_r μe (cm²/Vs) μh (cm²/Vs) me*/me mh*/me
Ge 0.565 0.66 4.13 1.04e+19 6.00e+18 2.3e+13 2.3e+13 16.0 3900.0 1900.0 0.556 0.385
Si 0.5431 1.11 4.05 2.80e+19 1.20e+19 1.0e+10 8.7e+09 11.8 1450.0 490.0 1.076 0.612
InP 0.5868 1.35 4.5 5.20e+17 1.10e+19 3.0e+07 1.1e+07 12.6 4600.0 150.0 0.075 0.577
GaAs 0.5653 1.42 4.07 4.70e+17 7.00e+18 2.1e+06 2.1e+06 13.0 8500.0 400.0 0.071 0.427
AlAs 0.5661 2.17 3.5 1.50e+19 1.70e+19 1.0e+01 9.5e+00 10.1 200.0 100.0 0.71 0.771

The recomputed \(n_i\) agrees with the table to within the uncertainty of the data (the slide notes that \(n_i\) of Si varies between books; \(9.7\times10^9\) cm\(^{-3}\) is the modern value). One correction: the slide prints \(N_v=6.0\times10^{19}\) cm\(^{-3}\) for Ge, but the textbook and the mass action law both require \(6.0\times10^{18}\) cm\(^{-3}\), which is used here.

2.4 Average energy and the Boltzmann tail (slide 16)

Show the Python
kT = sl.kT(300)
E = np.linspace(0, 12*kT, 3000)
nE = np.sqrt(E)*np.exp(-E/kT)                       # g(E) f(E) up to a constant
mean = np.trapezoid(E*nE, E)/np.trapezoid(nE, E)
fig, ax = plt.subplots(figsize=(7.5, 3.4))
ax.fill_between(E*1e3, nE/nE.max(), alpha=0.25, lw=0); ax.plot(E*1e3, nE/nE.max())
ax.axvline(kT/2*1e3, color=sl.INK2, ls=":", lw=1.2); ax.axvline(mean*1e3, color=sl.PALETTE[1], ls="--", lw=1.5)
ax.text(kT/2*1e3, 1.02, " peak kT/2", fontsize=8, color=sl.INK2); ax.text(mean*1e3, 0.9, f" mean = {mean/kT:.3f} kT", fontsize=8)
ax.set(xlabel="E − E_c (meV)", ylabel="n_E (normalised)"); plt.show()
Figure 2.1: Electron distribution n_E(E) in the CB of a non-degenerate semiconductor at 300 K. It peaks at E_c + kT/2 and its mean is E_c + 3kT/2, the kinetic energy of an ideal-gas atom.

2.5 Intrinsic concentration and temperature

\(n_i\propto T^{3/2}\exp(-E_g/2k_BT)\). The exponential dominates, so \(\ln n_i\) against \(1/T\) is nearly a straight line with slope \(-E_g/2k_B\). The bandgap itself shrinks as \(T\) rises (Varshni law, Chapter 9), which is included below.

Show the Python
T = np.linspace(200, 800, 400)
fig, ax = plt.subplots()
for m in ("Ge", "Si", "GaAs"):
    ni = sl.n_i(m, T)/CM3
    ax.semilogy(1000/T, ni, label=m)
    Tx = T[np.argmin(abs(np.log(ni/1e15)))]
    if ni.max() > 1e15: ax.plot(1000/Tx, 1e15, "o", color=ax.lines[-1].get_color(), ms=6)
ax.axhline(1e15, color=sl.INK2, ls="--", lw=1)
sec = ax.secondary_xaxis("top", functions=(lambda x: 1000/x, lambda T: 1000/T)); sec.set_xlabel("T (K)")
ax.set(xlabel="1000/T (K⁻¹)", ylabel="n_i (cm⁻³)"); ax.legend(); plt.show()
Figure 2.2: Intrinsic carrier concentration of Ge, Si and GaAs against 1000/T (Nc, Nv ∝ T^{3/2}, Varshni bandgap). The horizontal line is a typical doping of 10¹⁵ cm⁻³: above the crossing temperature the material becomes intrinsic again.
Show the Python
out = {}
for m in ("Ge", "Si", "GaAs"):
    p = sl.MATERIALS[m]
    for T in (250, 300, 400):
        Nc, Nv = p["Nc"]*(T/300)**1.5, p["Nv"]*(T/300)**1.5
        out[(m, T)] = {"n_i (cm⁻³)": f"{sl.n_i(m, T)/CM3:.2e}",
                       "E_Fi − midgap (meV)": round(-0.5*sl.kT(T)*np.log(Nc/Nv)*1e3, 1)}
pd.DataFrame(out).T
Table 2.2: Intrinsic concentration and intrinsic Fermi level E_Fi − (E_v + E_g/2) at three temperatures.
n_i (cm⁻³) E_Fi − midgap (meV)
Ge 250 8.81e+11 -5.9
300 2.30e+13 -7.1
400 1.54e+15 -9.5
Si 250 7.84e+07 -9.1
300 1.00e+10 -11.0
400 4.92e+12 -14.6
GaAs 250 3.93e+03 29.1
300 2.10e+06 34.9
400 6.11e+09 46.5

In GaAs the light electron mass (\(N_c\ll N_v\)) pushes \(E_{Fi}\) about 40 meV above mid-gap at room temperature.

2.6 When Boltzmann fails

The exact result is \(n=N_c\,\mathcal F_{1/2}(\eta)\) with \(\eta=(E_F-E_c)/k_BT\) and the Fermi–Dirac integral \(\mathcal F_{1/2}\). The Boltzmann formula is the limit \(\mathcal F_{1/2}(\eta)\to e^\eta\):

Show the Python
eta = np.linspace(-6, 6, 241)
F = sl.fermi_half(eta)
fig, ax = plt.subplots(figsize=(7.5, 3.6))
ax.semilogy(eta, F, label="exact  F₁/₂(η)"); ax.semilogy(eta, np.exp(eta), "--", label="Boltzmann  e^η")
ax.axvspan(-3, 6, color=sl.PALETTE[7], alpha=0.06); ax.text(-2.9, 200, "within 3kT of the band edge", fontsize=8, color=sl.INK2)
ax.set(xlabel="η = (E_F − E_c)/k_BT", ylabel="n / N_c"); ax.legend(); plt.show()
print("error of Boltzmann at η = -3, -1, 0, +2:", [f"{(np.exp(e)/sl.fermi_half(e) - 1)*100:.0f} %" for e in (-3, -1, 0, 2)])
Figure 2.3: Exact Fermi–Dirac integral versus the Boltzmann approximation. The error is about 10 % at η ≈ −1 (E_F one kT below E_c) and explodes when E_F enters the band (degenerate semiconductor, slide 28).
error of Boltzmann at η = -3, -1, 0, +2: ['2 %', '12 %', '31 %', '162 %']

2.7 What the Fermi level means (slide 17)

\(E_F\) is the electrochemical potential of electrons. In equilibrium, in the dark and without applied voltage, it is flat across any system of materials in contact. An applied voltage \(V\) separates the Fermi levels at the two ends by \(\Delta E_F=eV\). This single rule builds every band diagram in the following chapters: pn junctions (Chapter 4), heterojunctions (Chapter 8), and the quasi-Fermi levels of a forward-biased LED.

  • Density-of-states masses. Si has six ellipsoidal CB valleys with \(m_l=0.98\), \(m_t=0.19\). Show that \(m^*_\text{dos}=6^{2/3}(m_lm_t^2)^{1/3}=1.08\,m_e\) and recover \(N_c\) of Table 3.1.
  • Joyce–Dixon. Invert \(n=N_c\mathcal F_{1/2}(\eta)\) to get \(E_F\) for a given \(n\). Compare the Joyce–Dixon series with a numerical root (scipy.optimize.brentq on sl.fermi_half).
  • Arrhenius plots. Fit \(\ln(n_iT^{-3/2})\) vs \(1/T\) for Si between 250 and 500 K. Which bandgap do you get, and why does it differ from \(E_g(300\text{ K})\)? (Hint: Varshni with a linear \(T\) term.)
  • Two-dimensional and one-dimensional DOS. Repeat the counting of slide 4 in 2D and 1D: you get a constant and a \(1/\sqrt{E}\) density of states. The 2D case is the quantum well (Chapter 10).
  • Kasap, Optoelectronics and Photonics, sec. 3.1–3.2.
  • S. M. Sze and K. K. Ng, Physics of Semiconductor Devices, ch. 1 (carrier statistics, \(\mathcal F_{1/2}\) approximations).
  • Ioffe Institute semiconductor database, https://www.ioffe.ru/SVA/NSM/Semicond/ (band parameters, \(n_i(T)\)).

2.8 Try it yourself

  1. With the live panel, find the temperature at which intrinsic Ge has \(n_i=10^{15}\) cm\(^{-3}\). Check with the figure.
  2. Compute \(N_c\) for GaAs from \(m_e^*=0.067m_e\) and compare with Table 3.1.
  3. Show that \(\frac{d\ln n_i}{d(1/T)}=-\frac{E_g}{2k_B}-\frac32T\) and estimate how much the \(T^{3/2}\) factor biases a graphical \(E_g\) from 300 to 400 K.
  4. Where is \(E_{Fi}\) in InP? Is the shift from mid-gap larger or smaller than \(k_BT\)?