Content is user-generated and unverified.

Apple C1 Class-AB PA Optimization

From Over-Optimistic Model to Physically Defensible Result

Design investigation writeup · n78 (3.55 GHz) · TSMC N3E · Angelov device model


Executive summary

Target specification: 26 dBm RF output at the antenna for 5G NR band n78 (3.55 GHz), using a single-stage class-AB CMOS PA built on TSMC N3E with the Angelov large-signal device model. Matching is a lumped 1-stage L-match with finite-Q passives. System losses: 1.5 dB fixed front-end + synthesized matching loss.

Final honest result: the optimizer returns two Pareto-equivalent optima depending on whether Pout or PAE is prioritized:

  • Point A (max Pout): 29.2% system PAE / 50.8% device PAE at 25.8 dBm antenna output. W = 800 μm, Vdd = 3.5 V, Ropt = 12 Ω, Vgs,q = 0.375 V, Tj = 44 °C.
  • Point B (max PAE): 30.9% system PAE / 51.3% device PAE at 25.0 dBm antenna output. W = 600 μm, Vdd = 3.7 V, Ropt = 18.7 Ω, Vgs,q = 0.370 V, Tj = 39.5 °C.

Both operate at BVdss/Vdd = 2.2× (90% of breakdown stress at Psat). They sit on the same frontier — Point B trades 0.8 dB of antenna power for 1.7 points of system PAE, primarily by using a smaller device at a lower impedance-transformation ratio (18.7 Ω → 50 Ω vs 12 Ω → 50 Ω), which drops match loss from 0.88 dB to 0.66 dB. Which is "better" depends on the spec — for strict 26 dBm minimum, Point A has margin; for battery life at the expense of link budget, Point B is preferable.

This was reached through parameter corrections and constraint-physics fixes, not a matching-network topology change. The investigation surfaced five distinct issues across 22 simulator revisions; each revision fixed a real problem and the final numbers are defensible against published integrated CMOS PA benchmarks.

Key insight: the final PAE was bottlenecked not by harmonic termination (as initially hypothesized) but by the interaction between BVdss reliability clamp and loadline impedance. Relaxing BVdss/Vdd from 2.0× to 2.2× unlocked a previously-excluded basin of smaller, right-sized devices running honestly at saturation. The headline lesson: reliability constraints are design parameters, not hard physical walls.


Investigation arc

Four major simulator revisions, each fixing a specific class of error. The progression from 53% (v9) down to 36% (v22) and back up to 51% (final) illustrates how easily an efficiency number can be either inflated by unphysical assumptions or suppressed by over-conservative ones.

RevNameDev PAESys PAEStatus
v9Harmonic-shorted~53%~32%Unphysical upper bound — V(2f₀)=V(3f₀)=0 enforced by construction
v21Full HB, one-sided clamp58.6%36.6%Optimizer exploited clamp — Vds pinned produced scaled waveform
v22Two-sided clamp, BVdss = 2.0×36.2%19.9%Honest but over-constrained — tight BVdss excluded right-sized basin
FinalBVdss = 2.2×, same physics50.8–51.3%29.2–30.9%Pareto frontier — Point A (max Pout) or Point B (max PAE)

Technical issues identified and resolved

1. One-sided Vds clamp (v21 → v22)

Symptom: Optimizer converged on configurations where peak Vds was pinned at 2·Vdd with 5–10 points of unexplained PAE gain.

Root cause: The HB solver originally clamped Vds ≥ Vknee (to prevent unphysical negative voltages) but had no ceiling. For single-tone operation with harmonic shorts this was invisible because V₁ naturally bounds peak Vds at Vdd + V₁ ≤ 2·Vdd. Under multi-harmonic operation, a 3rd-harmonic open could lift peak Vds well above 2·Vdd with nothing to stop it.

Fix: Replaced one-sided clamp with two-sided Vknee ≤ Vds(θ) ≤ BVdss. Clamp scales all harmonic voltage phasors proportionally when either limit is exceeded, tracking clampHits (any-side) and highClampHits (BVdss-side only) as separate counters.

2. Clamp counter accumulation during HB iteration (v22 refinement)

Symptom: The first fix over-rejected: every class-B candidate showed clampHits > 0 during early HB iterations because the fundamental phasor hadn't yet settled. Optimizer filter rejected all viable configs, leaving bestConfig = null and rendering undefined for every field.

Fix: Reset clamp counters immediately before the final applyClamp() call so they reflect only the converged-waveform state. Early-iteration transient clamp activity is solver behavior, not physics. A config whose settled waveform rides within BVdss/Vknee now passes even if it touched the clamp during convergence.

3. One-sided Pout target gate (oversized-in-backoff artifact)

Symptom: Every surviving config in the top-10 list had W ≥ 1200 μm, Ropt < 10 Ω, and device PAE clustered at 22–25% across 2× in width and 17% in Vdd. No right-sized devices ever appeared.

Root cause: The Pout-target filter was pout_dbm ≥ device_target − 0.3 — one-sided. Oversized devices starting the Vin search at default Vin = 0.1 V produced Pout 2–3 dB above target on the first iteration. The log-step Vin adjustment couldn't converge downward in 12 iterations, and the final unconverged Pout of 29–30 dBm trivially passed a ≥ target gate.

Fix: Changed to symmetric |pout_dbm − device_target| ≤ 0.3. Configs must hit target within ±0.3 dB. Added explicit vin_converged flag so non-converging Vin searches are rejected outright instead of propagating the final unconverged value through.

4. Bias mapping collapsed class-B regime (class-A hidden behind conduction-angle slider)

Symptom: Even after earlier fixes, device PAE ceiling capped at ~25%. Reviewer analysis showed that at Vgs = Vth with the Angelov parameters (vth=0.25, p1=2.8, λ=0.18), the device still conducts at 60% of peak current — the tanh transition isn't sharp enough, and a conduction-angle slider ranging α = 180°–280° can't produce true sub-Vth bias.

Fix: Replaced the indirect conduction-angle → Vgs,q mapping with a direct Vgs,q sweep from Vth − 0.15 V to Vpk + 0.10 V in 25 mV steps. This exposes class-B/C operating points (50–100 mV below Vth) that the α-based mapping geometrically couldn't reach. The Apply button reverse-solves the conduction angle from the winning Vgs,q so the visible slider still reflects applied bias.

5. λ (channel-length modulation) set to FinFET-aggressive value

Symptom: Pdc inflated by (1+λ·Vds) = 1.74× at Vdd = 4.1 V with λ = 0.18 V⁻¹. That's consistent with short-channel digital-optimized FinFET but unrealistic for a PA-specific thick-oxide device, and directly capped drain efficiency at ~45% even in ideal class-B.

Fix: Changed lambda: 0.18 → 0.05. Thick-oxide PA devices run in the 0.02–0.05 V⁻¹ range. This one-line change lifted the efficiency ceiling from ~25% to ~36% at the same operating point — an 11-point gain just from using the right process-parameter regime. The value is annotated inline in the code so future maintainers see the reasoning.

6. BVdss vs loadline basin exclusion (final unlock)

Symptom: Even with all previous fixes, every top-10 candidate had W ≥ 1200 μm and Ropt between 5 and 10 Ω. Right-sized 400–800 μm devices at Ropt ≈ 15–25 Ω never survived filtering.

Root cause: At BVdss/Vdd = 2.0× with Vdd = 3.5 V, peak-Vds headroom is only 3.5 V. A right-sized device driven to 26 dBm requires V₁ ≈ 3.4 V fundamental swing, which clamps. The optimizer correctly filtered these configs as highClampHits > 0, leaving only oversized-in-backoff configurations as survivors.

Fix: Exposed BVdss/Vdd as a UI slider (1.5×–2.5× range, default 2.0×). With 2.2× the headroom rises to 4.1 V, unlocking the right-sized basin. The optimizer returns two Pareto-equivalent optima — W = 800 μm / Ropt = 12 Ω as the max-Pout winner, and W = 600 μm / Ropt = 18.7 Ω as the max-PAE winner — both at Vgs,q ≈ 0.37 V. No simulator physics changed; the design parameter was just made visible.


Final configuration — Pareto frontier

The optimizer returns two operating points at the same BVdss/Vdd = 2.2× reliability setting. Both are honest, physically defensible, and within the published class-AB envelope. Choose based on what the downstream spec prioritizes.

ParameterPoint A — max PoutPoint B — max PAENotes
Device width W800 μm600 μmB is a smaller device
Vdd3.5 V3.7 VBoth within N3E core Vdd range
Vgs,q0.375 V0.370 VShallow class-AB, ~120 mV above Vth
Ropt (loadline)12 Ω18.7 ΩB needs less impedance transformation
BVdss / Vdd ratio2.2×2.2×7.7 V peak-Vds limit in both
Matching topology1-stage L1-stage LRopt → 50 Ω, Q_L=10, Q_C=40
Match insertion loss0.88 dB0.66 dBB drops 0.22 dB from lower Q_needed
Front-end loss (fixed)1.5 dB1.5 dBFilter + switch + routing budget
Device Pout28.2 dBm27.2 dBmB gives up 1.0 dB at device output
System Pout25.8 dBm25.0 dBmB gives up 0.8 dB at antenna
Device PAE50.8%51.3%Essentially the same
System PAE29.2%30.9%B wins by 1.7 pts from lower match loss
Peak Vds7.26 V7.14 VBoth ~0.95 × BVdss — aggressive but within margin
Tj44 °C39.5 °CB runs cooler (smaller Pdc)

How to read the trade. Point B converts ~0.8 dB of antenna power into ~1.7 PAE points. The mechanism is transparent: a smaller device at higher Vdd has higher Ropt, a 2.7× impedance ratio (18.7 → 50 Ω) vs Point A's 4.2× ratio (12 → 50 Ω), which drops the L-match Q_needed from 1.75 to 1.30. Insertion loss in a Q-limited L-match scales with Q_needed, so B's 0.66 dB match loss vs A's 0.88 dB match loss follows analytically — it's not a solver accident.

Which to quote. For strict 26 dBm minimum link-budget compliance (typical 5G NR n78), Point A has the margin. For battery-life-dominated designs where the 0.8 dB can be recovered by a slightly higher-gain antenna or reduced margin elsewhere, Point B's PAE lead translates directly into mW of saved DC power at full-rate transmission.


Additional diagnostic tooling added

Beyond the optimizer fixes, several diagnostic capabilities were added to support physical-validity checks rather than trusting the solver blindly:

  • 2nd / 3rd-harmonic reactive sweeps on the Load Pull tab. Hold Z(f₀) = Ropt and vary X₂ or X₃ along the imaginary axis. A clean single-peak curve on 2f₀ confirms legitimate continuous class-J mode; multiple peaks or sharp spikes flag numerical resonance.
  • Full Γ(2f₀) phase contour at |Γ| = 0.95. Sweeps the full Smith-chart edge and locates where the actual matching network's Z(2f₀) sits on the PAE envelope. The PAE RECOVERABLE badge quantifies what a harmonic trap could legitimately recover. At the final operating point this value is 0.2 pts, which correctly indicates that a trap is not the right lever for this design.
  • PA Class comparison tab. Runs five configurations (Class B, J, F with 3rd, F with 3rd+5th, F⁻¹) at the same device/bias/drive point, sweeping only the harmonic terminations. Shows Vds(θ) and Ids(θ) overlaid so the student sees that class-F's efficiency gain comes from flattening Vds, not from anything happening to the channel current.
  • Width tradeoff sweep on the System tab. Each of ~42 gate widths runs a full HB + matching solve, showing system PAE, Ropt, Tj, and compression headroom as continuous curves. Makes the Pareto structure of the feasible set visually explicit.
  • Reliability panel. Live peak-Vds readout against BVdss with color-coded status; BVdss-side clamp-hit counter (red when > 0) vs knee-side clamp-hit counter (informational). Separates the reliability-critical side from the normal-class-B-saturation side of the clamp.
  • OIP3 validity flag. Tagged dim with a ⚠ clamped warning when the IP3 extraction point hits the Vds clamp, since the 3:1 IM3 slope assumption fails there. The number is still shown for reference but the styling makes clear it shouldn't be trusted.
  • Console diagnostic output. Every optimizer run logs a summary line (candidates / Vin fails / Tj overtemp / BVdss clamped / valid) plus a top-10 table with per-config W, V, Vgs,q, Ropt, device and system PAE, gain, peak Vds, Tj, and harmonic dissipation. Makes the feasible-set shape inspectable.

Known limitations

Gain is reported as transducer power gain with idealized Pin

The simulator defines Pin = Vin² / (2·50) — available source power into a 50 Ω reference — not the power actually absorbed at the gate. At 3.55 GHz a 600–800 μm device has |Z_in| ≈ 60–80 Ω (reactive, set by Cgs), so a real-world conjugate-matched driver would deliver significantly less power than the formula accounts for. Reported gain is therefore systematically inflated by approximately 10–15 dB compared to a physical transducer gain measurement.

Importantly, PAE is unaffected. Because Pin is small in absolute terms relative to Pdc, the (Pout − Pin)/Pdc ratio is dominated by Pdc and barely moves even if Pin were doubled. The PAE number is defensible; the gain number is not. An on-screen caveat annotation under the OPTIMAL CONFIG card makes this explicit.

Matching network uses lumped L-match, no harmonic traps

The matching topology is a 1-stage L-match with finite-Q passives (Q_L = 10, Q_C = 40). Load-pull analysis at the final operating point confirms that Z(2f₀) from this topology happens to land in a favorable region of the Γ(2f₀) contour — PAE RECOVERABLE with an ideal |Γ| = 0.95 harmonic trap is only ~0.2 points. Adding a 2f₀ trap is therefore not worthwhile for this specific design. It would become relevant if the optimizer were given a wider Vdd or W range where the matching network's native Z(2f₀) falls into a less favorable region.

Angelov parameters are process-typical, not silicon-calibrated

N3E model parameters (vth, vpk, p1–p3, α, λ, Cgs/Cgd scales) are derived from published N3 FinFET RF characterization (fT ~350 GHz, fmax ~400 GHz) and adjusted toward thick-oxide PA device values where appropriate. They are defensible as process-typical but not calibrated against measured silicon. A production design would require S-parameter and DC I-V extraction from actual device data.


Benchmark against published results

29.2–30.9% system PAE at 25.0–25.8 dBm at 3.55 GHz on CMOS without envelope tracking or DPD is within the published range for integrated sub-6 GHz CMOS PAs:

Design classPAE at PsatNotes
Integrated CMOS class-AB PA, no DPD/ET30–35%Published literature
Integrated CMOS with class-F trap38–45%Adds 2f₀ short
GaN class-J (for reference, different process)55–65%Not applicable to CMOS
Apple C1 production modem efficiency~38%Includes ET + DPD + full chain
This simulator — final result29.2–30.9%Class-AB, lumped L-match, no DPD/ET (Pareto pair)

Point B's 30.9% lands squarely inside the no-ET/DPD class-AB envelope; Point A's 29.2% sits 1 point below the lower edge. The small gap is attributable to: (a) conservative 1.5 dB fixed front-end loss in the budget, (b) lumped-LC matching with Q_L = 10 rather than distributed/shielded inductors with Q ≥ 15, and (c) absence of 2f₀ harmonic trap. Each of these is a specific, testable architectural addition rather than a modeling error.


Pedagogical takeaways

For graduate instruction in EL703r (Healthcare Technology / RF IC Design), the investigation illustrates five principles that generalize well beyond this specific design:

  1. Ideal bounds are not achievable bounds. v9's 53% PAE with harmonic shorts was a mathematically correct upper bound but not a realizable design target. Any number derived under perfect-X assumptions (harmonic shorts, Q = ∞, zero Rg) should be quoted with the caveat attached.
  2. Optimizer exploits are simulator bugs, not features. v21's 59% PAE came from the solver scaling Vds against a one-sided clamp. The higher number was seductive but unphysical. Any optimizer that finds dramatically better numbers than literature should be audited for exploitation of a constraint that isn't really there.
  3. Reliability margin is a design parameter. BVdss/Vdd = 2.0× vs 2.2× is a stress choice, not a physical constant. Hardcoding it as a wall excludes valid designs. Exposing it as a slider lets the reliability/efficiency trade be negotiated consciously.
  4. Filter semantics matter more than filter values. One-sided vs two-sided gates, cumulative vs converged-pass counters, default values for unconverged searches — each of these changed the feasible set structurally. Two lines of code moved the final PAE by 30 points.
  5. Always verify the dominant lever before changing topology. The Γ(2f₀) contour diagnostic answered the question would a harmonic trap help? with a specific number (+0.2 pts) rather than an intuition. The right answer turned out to be no — fix the BVdss constraint instead, which saved ~200 lines of matching-synthesis code that wasn't going to pay for itself.

Final disposition

The simulator now returns physically defensible numbers across the full UI. Each fix traced to a specific category of error, each diagnostic addition has a specific use case, and the final 29.2–30.9% system PAE band lands inside the published envelope for its design class. The artifact is suitable for use as a teaching tool (illustrating the arc of RF PA design reasoning) and as a starting point for future extensions (envelope tracking, Doherty architectures, harmonic-trap matching synthesis).

The pathway to higher PAE — if desired in a follow-up project — is clear and specific: add a 2f₀ series-LC trap at the drain to access the class-F basin. This is estimated to yield another 3–5 points of PAE but requires matching-synthesis extensions in the ~200-line range. The current artifact provides the diagnostic (PAE RECOVERABLE on the Γ-phase contour) that makes the cost-benefit of that change quantitative rather than speculative.

Content is user-generated and unverified.
    Apple C1 Class-AB PA Optimization: Design Investigation | Claude