Level 5 — Mastery

Transistors - BJT & FET

90 minutes60 marksprintable — key stays hidden on paper

Chapter: 2.4 Transistors: BJT & FET Level: 5 — Mastery (cross-domain: math + physics + coding, build/prove) Time limit: 90 minutes Total marks: 60

Instructions: Answer all three questions. Show all derivations. Where code is requested, write clean, runnable Python (NumPy/SciPy allowed). State every physical assumption. Use ...... notation for mathematics. Physical constants: kT/q=25.85 mVkT/q = 25.85\text{ mV} at T=300 KT = 300\text{ K}.


Question 1 — BJT Common-Emitter Amplifier: Design, Prove, Simulate (22 marks)

A silicon NPN transistor is used in a single-supply common-emitter amplifier with a voltage-divider bias network. Supply VCC=12 VV_{CC} = 12\text{ V}, and the transistor has β=150\beta = 150, VBE(on)=0.7 VV_{BE(on)} = 0.7\text{ V}, Early voltage VA=80 VV_A = 80\text{ V}.

Design targets: quiescent collector current ICQ=1.0 mAI_{CQ} = 1.0\text{ mA}, collector-emitter voltage VCEQ=6.0 VV_{CEQ} = 6.0\text{ V}, and the emitter resistor should drop 1.2 V1.2\text{ V}.

(a) Derive expressions for RCR_C and RER_E from the DC operating point, then compute their numerical values. (4 marks)

(b) For a stiff divider, set the divider current to 10×IBQ10\times I_{BQ}. Derive and compute R1R_1 and R2R_2. (4 marks)

(c) Prove from the Ebers–Moll / small-signal model that the mid-band voltage gain of a CE stage with a fully bypassed emitter resistor is Av=gm(RCro)A_v = -g_m (R_C \parallel r_o) where ro=VA/ICQr_o = V_A / I_{CQ}. Compute gmg_m, ror_o, and the numerical gain. (6 marks)

(d) Derive the sensitivity of ICQI_{CQ} to β\beta for this bias scheme and show analytically why the emitter degeneration stabilises the Q-point. Quantify the fractional change in ICQI_{CQ} if β\beta doubles to 300 (keep the same resistor values). (4 marks)

(e) Write a Python function q_point(beta) that solves the DC bias loop (Thévenin base equivalent) and returns ICQI_{CQ}. Use it to confirm your answer to (d). (4 marks)


Question 2 — MOSFET Physics: Transconductance, Body Effect, Subthreshold (20 marks)

An NMOS transistor has process parameters: μnCox=200 μA/V2\mu_n C_{ox} = 200\ \mu\text{A/V}^2, W/L=10W/L = 10, Vth0=0.5 VV_{th0} = 0.5\text{ V}, λ=0.02 V1\lambda = 0.02\text{ V}^{-1}, body-effect coefficient γ=0.4 V1/2\gamma = 0.4\ \text{V}^{1/2}, 2ϕF=0.7 V2\phi_F = 0.7\text{ V}.

(a) Derive gmg_m in saturation, starting from the square-law drain current, expressed both as a function of VGSVthV_{GS}-V_{th} and of IDI_D. For VGS=1.0 VV_{GS} = 1.0\text{ V}, VSB=0V_{SB}=0, compute IDI_D and gmg_m (ignore λ\lambda for the current). (5 marks)

(b) With source-to-body bias VSB=1.5 VV_{SB} = 1.5\text{ V}, compute the new threshold voltage using Vth=Vth0+γ(2ϕF+VSB2ϕF)V_{th} = V_{th0} + \gamma\left(\sqrt{2\phi_F + V_{SB}} - \sqrt{2\phi_F}\right) and determine the new IDI_D at the same VGS=1.0 VV_{GS} = 1.0\text{ V}. Comment on the design implication for stacked transistors. (5 marks)

(c) Subthreshold conduction follows ID=I0e(VGSVth)/(nVT)(1eVDS/VT)I_D = I_0\, e^{(V_{GS}-V_{th})/(n\,V_T)}\left(1 - e^{-V_{DS}/V_T}\right) with ideality factor n=1.5n = 1.5. Derive the subthreshold swing SS (mV/decade) and compute it at 300 K. Explain physically why SS cannot go below 60 mV/decade\sim 60\text{ mV/decade} for a conventional MOSFET. (5 marks)

(d) Write Python code that plots log10(ID)\log_{10}(I_D) vs VGSV_{GS} across both subthreshold and above-threshold regions (a single continuous curve is not required — describe how you stitch them), and numerically extracts SS from the subthreshold slope. Give the code and the expected extracted value. (5 marks)


Question 3 — Switching & Cross-Device Comparison (18 marks)

(a) A BJT is used to switch a 5 V, 100 Ω100\ \Omega relay coil. βsat_forced\beta_{sat\_forced} is chosen as 2020 (overdrive), VCE(sat)=0.2 VV_{CE(sat)} = 0.2\text{ V}, VBE(sat)=0.8 VV_{BE(sat)} = 0.8\text{ V}, driven from a 3.3 V microcontroller pin. Compute the required base resistor RBR_B and the power dissipated in the transistor when ON. Prove the transistor is in saturation. (6 marks)

(b) The same load is switched by an NMOS with RDS(on)=0.5 ΩR_{DS(on)} = 0.5\ \Omega, VGS(th)=1.2 VV_{GS(th)} = 1.2\text{ V}, driven by the same 3.3 V pin. Compute the ON-state power dissipation in the MOSFET and compare with the BJT. Derive the general condition (in terms of load current) at which the MOSFET becomes more efficient than the BJT switch. (6 marks)

(c) Short-channel effects: as gate length LL scales down, explain quantitatively (with the relevant scaling relations) the trade-off between switching speed and subthreshold leakage/DIBL. Then prove that constant-field scaling by factor κ\kappa reduces gate delay by κ\kappa while keeping the electric field constant — state what happens to power density and why this "Dennard scaling" eventually broke down. (6 marks)


End of paper.

Answer keyMark scheme & solutions

Question 1

(a) RCR_C and RER_E (4 marks)

KVL around output loop: VCC=ICQRC+VCEQ+VREV_{CC} = I_{CQ}R_C + V_{CEQ} + V_{RE}. RC=VCCVCEQVREICQ=1261.21.0 mA=4.81 mA=4.8 kΩR_C = \frac{V_{CC} - V_{CEQ} - V_{RE}}{I_{CQ}} = \frac{12 - 6 - 1.2}{1.0\text{ mA}} = \frac{4.8}{1\text{ mA}} = 4.8\text{ k}\Omega (2 marks)

RE=VREIEQ1.21.0 mA=1.2 kΩR_E = \frac{V_{RE}}{I_{EQ}} \approx \frac{1.2}{1.0\text{ mA}} = 1.2\text{ k}\Omega (using IEQICQI_{EQ}\approx I_{CQ}; strictly IE=IC(1+1/β)=1.0067I_E = I_C(1+1/\beta)=1.0067 mA → RE1.19R_E \approx 1.19 kΩ\Omega). (2 marks)

(b) R1R_1, R2R_2 (4 marks)

IBQ=ICQ/β=1.0/150=6.67 μAI_{BQ} = I_{CQ}/\beta = 1.0/150 = 6.67\ \mu\text{A}. Divider current Idiv=10IBQ=66.7 μAI_{div} = 10 I_{BQ} = 66.7\ \mu\text{A}. Base voltage VB=VBE+VRE=0.7+1.2=1.9 VV_B = V_{BE} + V_{RE} = 0.7 + 1.2 = 1.9\text{ V}.

R2=VB/Idiv=1.9/66.7 μA=28.5 kΩR_2 = V_B/I_{div} = 1.9/66.7\ \mu\text{A} = 28.5\text{ k}\Omega. (2 marks) R1=(VCCVB)/(Idiv+IBQ)=(121.9)/(66.7+6.67) μA=10.1/73.3 μA=137.7 kΩR_1 = (V_{CC}-V_B)/(I_{div}+I_{BQ}) = (12-1.9)/(66.7+6.67)\ \mu\text{A} = 10.1/73.3\ \mu\text{A} = 137.7\text{ k}\Omega. (2 marks)

(Accept R1(VCCVB)/Idiv=151.5R_1\approx (V_{CC}-V_B)/I_{div} = 151.5 kΩ\Omega if base current neglected — state assumption.)

(c) Gain proof (6 marks)

Small-signal model: replace BJT with gmvbeg_m v_{be} current source, rπr_\pi, and ror_o from output to emitter. With emitter fully bypassed, emitter is AC ground. (1) Output node: vout=gmvbe(RCro)v_{out} = -g_m v_{be}(R_C \parallel r_o), and vbe=vinv_{be} = v_{in} (input across rπr_\pi referenced to AC ground). (2) Hence Av=voutvin=gm(RCro).A_v = \frac{v_{out}}{v_{in}} = -g_m(R_C\parallel r_o).\qquad\blacksquare (1)

Numbers: gm=ICQ/VT=1.0 mA/25.85 mV=38.68 mSg_m = I_{CQ}/V_T = 1.0\text{ mA}/25.85\text{ mV} = 38.68\text{ mS}. (1) ro=VA/ICQ=80/1 mA=80 kΩr_o = V_A/I_{CQ} = 80/1\text{ mA} = 80\text{ k}\Omega. RCro=(4.880)/(84.8)=4.528 kΩR_C\parallel r_o = (4.8\cdot80)/(84.8) = 4.528\text{ k}\Omega. Av=38.68 mS×4.528 kΩ=175.1A_v = -38.68\text{ mS}\times 4.528\text{ k}\Omega = -175.1. (1)

(d) Sensitivity to β\beta (4 marks)

Thévenin base: VTH=VBV_{TH} = V_B (open-circuit) =VCCR2/(R1+R2)= V_{CC}R_2/(R_1+R_2), RTH=R1R2R_{TH}=R_1\parallel R_2. Base loop: VTH=IBRTH+VBE+IEREV_{TH} = I_B R_{TH} + V_{BE} + I_E R_E, with IE=(β+1)IBI_E = (\beta+1)I_B, IC=βIBI_C=\beta I_B: IC=β(VTHVBE)RTH+(β+1)RE.I_C = \frac{\beta(V_{TH}-V_{BE})}{R_{TH} + (\beta+1)R_E}. (2) When (β+1)RERTH(\beta+1)R_E \gg R_{TH}, IC(VTHVBE)/REI_C \to (V_{TH}-V_{BE})/R_E, independent of β\beta — this is the stabilising effect of degeneration. (1)

Compute RTH=R1R2=137.728.5=23.6R_{TH}=R_1\parallel R_2 = 137.7\parallel 28.5 = 23.6 kΩ\Omega, VTH=VB=1.9V_{TH}=V_B=1.9 V. IC(150)=150(1.90.7)/(23.6k+1511.2k)=180/(23.6+181.2)k=180/204.8k=0.879I_C(150) = 150(1.9-0.7)/(23.6\text{k}+151\cdot1.2\text{k}) = 180/(23.6+181.2)\text{k}=180/204.8\text{k}=0.879 mA. IC(300)=300(1.2)/(23.6k+3011.2k)=360/(23.6+361.2)k=360/384.8k=0.9356I_C(300) = 300(1.2)/(23.6\text{k}+301\cdot1.2\text{k}) = 360/(23.6+361.2)\text{k}=360/384.8\text{k}=0.9356 mA. Fractional change =(0.93560.879)/0.879=+6.4%= (0.9356-0.879)/0.879 = +6.4\% for a 100%100\% change in β\beta. (1)

(e) Code (4 marks)

def q_point(beta, VCC=12, R1=137.7e3, R2=28.5e3, RE=1.2e3, VBE=0.7):
    VTH = VCC * R2/(R1+R2)
    RTH = R1*R2/(R1+R2)
    IC = beta*(VTH - VBE)/(RTH + (beta+1)*RE)
    return IC
 
print(q_point(150)*1e3, "mA")  # ~0.879 mA
print(q_point(300)*1e3, "mA")  # ~0.936 mA
frac = (q_point(300)-q_point(150))/q_point(150)
print(frac*100, "%")           # ~6.4 %

Marks: correct Thévenin (1), correct loop equation (2), correct confirmation of (d) (1).


Question 2

(a) gmg_m derivation (5 marks)

Saturation: ID=12μnCoxWL(VGSVth)2I_D = \tfrac12\mu_nC_{ox}\frac{W}{L}(V_{GS}-V_{th})^2. gm=IDVGS=μnCoxWL(VGSVth).g_m = \frac{\partial I_D}{\partial V_{GS}} = \mu_nC_{ox}\frac{W}{L}(V_{GS}-V_{th}). (2) Using IDI_D: (VGSVth)=2ID/(μnCox(W/L))(V_{GS}-V_{th}) = \sqrt{2I_D/(\mu_nC_{ox}(W/L))}, so gm=2μnCoxWLID.g_m = \sqrt{2\mu_nC_{ox}\tfrac{W}{L}\,I_D}. (1)

Numbers (Vov=1.00.5=0.5V_{ov}=1.0-0.5=0.5 V): ID=12(200μ)(10)(0.5)2=12(2000μ)(0.25)=250 μAI_D = \tfrac12(200\mu)(10)(0.5)^2 = \tfrac12(2000\mu)(0.25) = 250\ \mu\text{A}. (1) gm=(200μ)(10)(0.5)=1.0 mSg_m = (200\mu)(10)(0.5) = 1.0\text{ mS}. (1)

(b) Body effect (5 marks)

Vth=0.5+0.4(0.7+1.50.7)=0.5+0.4(2.20.7)V_{th} = 0.5 + 0.4(\sqrt{0.7+1.5} - \sqrt{0.7}) = 0.5 + 0.4(\sqrt{2.2}-\sqrt{0.7}) =0.5+0.4(1.48320.8367)=0.5+0.4(0.6466)=0.5+0.2586=0.7586 V= 0.5 + 0.4(1.4832 - 0.8367) = 0.5 + 0.4(0.6466) = 0.5 + 0.2586 = 0.7586\text{ V}. (2)

New Vov=1.00.7586=0.2414V_{ov} = 1.0 - 0.7586 = 0.2414 V. ID=12(2000μ)(0.2414)2=(1000μ)(0.05829)=58.3 μAI_D = \tfrac12(2000\mu)(0.2414)^2 = (1000\mu)(0.05829) = 58.3\ \mu\text{A}. (2)

Implication: in stacked (series) transistors, the upper device has VSB>0V_{SB}>0, raising its VthV_{th} and drastically reducing drive current (here 25058 μ250\to58\ \muA, a 4.3×4.3\times drop) — degrades speed; designers must upsize WW or minimise body bias. (1)

(c) Subthreshold swing (5 marks)

IDe(VGSVth)/(nVT)I_D \propto e^{(V_{GS}-V_{th})/(nV_T)} (for VDSVTV_{DS}\gg V_T). Swing S=(d(log10ID)dVGS)1S = \left(\frac{d(\log_{10}I_D)}{dV_{GS}}\right)^{-1}. log10ID=(VGSVth)nVTln10+\log_{10}I_D = \frac{(V_{GS}-V_{th})}{nV_T\ln10}+const, so S=nVTln10.S = n V_T \ln 10. (2) At 300 K: S=1.5×25.85 mV×2.3026=89.3 mV/decadeS = 1.5 \times 25.85\text{ mV}\times 2.3026 = 89.3\text{ mV/decade}. (2)

Physical floor: even for ideal n=1n=1 (perfect gate coupling, no depletion-cap loading), Smin=VTln10=59.560S_{min}=V_T\ln10 = 59.5\approx 60 mV/dec at 300 K. It stems from the Boltzmann tail of the carrier energy distribution — thermionic injection over the barrier means IDI_D can rise at most ee-fold per VTV_T. Sub-60 requires non-thermionic mechanisms (tunnel FETs, negative-capacitance). (1)

(d) Code (5 marks)

import numpy as np
kT_q = 0.02585           # V
n = 1.5
Vth = 0.5
kp = 200e-6; WL = 10     # µCox * W/L
I0 = 1e-9                # subthreshold prefactor (assumed)
 
Vgs = np.linspace(0.0, 1.2, 500)
Id = np.where(
    Vgs < Vth,
    I0*np.exp((Vgs-Vth)/(n*kT_q)),            # subthreshold
    0.5*kp*WL*(np.maximum(Vgs-Vth,0))**2 + I0  # above-threshold (continuity offset)
)
 
# extract S from subthreshold region
mask = (Vgs > 0.1) & (Vgs < Vth-0.05)
slope = np.polyfit(Vgs[mask], np.log10(Id[mask]), 1)[0]  # decades per volt
S = 1000/slope    # mV/decade
print("S =", S, "mV/dec")   # ~89.3
 
# import matplotlib.pyplot as plt
# plt.semilogy(Vgs, Id); plt.xlabel('Vgs'); plt.ylabel('Id')

Stitching: the two regions are joined near VGS=VthV_{GS}=V_{th}; slope extraction uses only the exponential region so the fit yields S89.3S\approx89.3 mV/dec. Marks: subthreshold model (2), above-threshold (1), slope→S extraction (2).