Transistors - BJT & FET
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: at .
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 , and the transistor has , , Early voltage .
Design targets: quiescent collector current , collector-emitter voltage , and the emitter resistor should drop .
(a) Derive expressions for and from the DC operating point, then compute their numerical values. (4 marks)
(b) For a stiff divider, set the divider current to . Derive and compute and . (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 where . Compute , , and the numerical gain. (6 marks)
(d) Derive the sensitivity of to for this bias scheme and show analytically why the emitter degeneration stabilises the Q-point. Quantify the fractional change in if 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 . 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: , , , , body-effect coefficient , .
(a) Derive in saturation, starting from the square-law drain current, expressed both as a function of and of . For , , compute and (ignore for the current). (5 marks)
(b) With source-to-body bias , compute the new threshold voltage using and determine the new at the same . Comment on the design implication for stacked transistors. (5 marks)
(c) Subthreshold conduction follows with ideality factor . Derive the subthreshold swing (mV/decade) and compute it at 300 K. Explain physically why cannot go below for a conventional MOSFET. (5 marks)
(d) Write Python code that plots vs across both subthreshold and above-threshold regions (a single continuous curve is not required — describe how you stitch them), and numerically extracts 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, relay coil. is chosen as (overdrive), , , driven from a 3.3 V microcontroller pin. Compute the required base resistor 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 , , 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 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 reduces gate delay by 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) and (4 marks)
KVL around output loop: . (2 marks)
(using ; strictly mA → k). (2 marks)
(b) , (4 marks)
. Divider current . Base voltage .
. (2 marks) . (2 marks)
(Accept k if base current neglected — state assumption.)
(c) Gain proof (6 marks)
Small-signal model: replace BJT with current source, , and from output to emitter. With emitter fully bypassed, emitter is AC ground. (1) Output node: , and (input across referenced to AC ground). (2) Hence (1)
Numbers: . (1) . . . (1)
(d) Sensitivity to (4 marks)
Thévenin base: (open-circuit) , . Base loop: , with , : (2) When , , independent of — this is the stabilising effect of degeneration. (1)
Compute k, V. mA. mA. Fractional change for a change in . (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) derivation (5 marks)
Saturation: . (2) Using : , so (1)
Numbers ( V): . (1) . (1)
(b) Body effect (5 marks)
. (2)
New V. . (2)
Implication: in stacked (series) transistors, the upper device has , raising its and drastically reducing drive current (here A, a drop) — degrades speed; designers must upsize or minimise body bias. (1)
(c) Subthreshold swing (5 marks)
(for ). Swing . const, so (2) At 300 K: . (2)
Physical floor: even for ideal (perfect gate coupling, no depletion-cap loading), mV/dec at 300 K. It stems from the Boltzmann tail of the carrier energy distribution — thermionic injection over the barrier means can rise at most -fold per . 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 ; slope extraction uses only the exponential region so the fit yields mV/dec. Marks: subthreshold model (2), above-threshold (1), slope→S extraction (2).