Skip to content

Case Study: 5G n78 PA Stackup — Three Small Proofs

Goal: prove MagicON's stackup numbers are trustworthy without a multi-day verification project. The full case study is split into three tiny experiments. Each one targets a single number, takes about an hour in a solver, and stands alone — you can stop after Experiment 1 if that's all the confidence you need.

Scenario: a 5G n78 small-cell PA at 3.5 GHz, 4 W dissipation, 4-layer FR408HR-class stackup, 50 × 50 mm board.


Setup (do this once, ~5 minutes)

In the MagicON GUI:

  1. Open /tools/stackup.
  2. Configure the form:
  3. Build Type: Single Lamination
  4. Frequency (GHz): 3.5
  5. DC Current (A): 1
  6. Layer Count: 4
  7. Target Finished Thickness: 62 mils (1.57 mm)
  8. Click Regenerate Stackup.
  9. Banner should read: Tg 180 °C (FR408HR) · lead-free safe and Compliance: 17/17 passed.

That's the baseline build for all three experiments.


Experiment 1 — Microstrip Z₀

Claim: MagicON's 50 Ω microstrip width is within ±2 % of HFSS.

MagicON side

Open the Impedance & Signal → Impedance Calculator panel. Microstrip tab. Target = 50 Ω. Read off:

  • Trace width W
  • Dielectric thickness h
  • Dk at 3.5 GHz
  • Cu thickness t

Write those four numbers down.

HFSS side

Build a 20 mm microstrip with the exact W / h / t / Dk above. Wave ports at both ends, de-embed to the trace edge. Solve at 3.5 GHz.

Compare

Quantity MagicON HFSS pass criterion
Z₀ at 3.5 GHz 50.0 Ω 49.0–51.0 Ω (±2 %)

If HFSS lands inside the band, MagicON's impedance model is validated for this build — stop here if that's all you needed.

Time budget: 30–45 min in HFSS.


Experiment 2 — Insertion loss vs. frequency

Claim: MagicON's loss/mm tracks HFSS within ±15 % up to ~10 GHz.

Pre-requisite: Experiment 1 (re-uses the same trace).

MagicON side

Open the Loss Analysis panel. Set:

  • Foil Profile: Standard ED
  • Roughness Model: Hammerstad

Read off the loss table (1 → 20 GHz). Note the totals at 3.5 GHz and 10 GHz.

HFSS side

Re-use the Experiment 1 model. Enable Huray roughness (snowball radius 0.5 µm, area-ratio 14). Sweep 1 → 10 GHz. Extract dB/mm at 3.5 GHz and 10 GHz.

Compare

Quantity MagicON (Hammerstad) HFSS (Huray) pass criterion
dB/mm @ 3.5 GHz ~0.045 within ±15 %
dB/mm @ 10 GHz ~0.11–0.12 within ±15 %

Above ~15 GHz, expect MagicON to read 10–20 % low — switch the dropdown to a Huray-class model in MagicON if you care about mmWave.

Time budget: 20 min, since the model already exists.


Experiment 3 — Junction temperature

Claim: MagicON's T_j prediction is within ~10 °C of Icepak (and conservative-leaning low, so budget the gap).

MagicON side

Open the Thermal Analysis panel. Click Edit assumptions:

  • Power dissipation: 4.0 W
  • Board area: 25 cm² (override the 10 cm² default)
  • Ambient: 60 °C

Configure the via array (Via Design panel): 4 × 4 array, 0.30 mm drill, 25 µm Cu plating, copper-filled, 0.6 mm pitch.

Read off:

  • Via array R_th
  • Spreading R_th
  • Junction temp T_j

Click Re-run server analysis — confirm Python parity solver agrees with the TS pipeline within 0.5 °C. (If it doesn't, that's a MagicON bug, not a verification failure.)

Icepak side

Build a 50 × 50 × 1.57 mm board with the 4-layer stackup (FR408HR k = 0.65 W/m·K, 1 oz inner Cu, 0.5 oz outer Cu). Place a 4 × 4 mm thermal pad on top with the 4 × 4 via array beneath. Set:

  • PA dissipation: 4.0 W
  • T_ambient: 60 °C
  • Top + bottom: natural convection, h = 5 W/m²·K
  • Sides: adiabatic

Solve steady-state.

Compare

Quantity MagicON Icepak pass criterion
Via array R_th ~17.9 K/W 18–22 K/W (within 5–15 %)
T_j ~109 °C 115–119 °C (MagicON 5–10 °C low)

The bottleneck (Core1 dielectric) should be the same answer in both tools — that's the structural-agreement check, more important than the absolute number.

Time budget: ~1 hour for Icepak setup, ~10 min to solve.


What this proves (and what it doesn't)

After all three experiments:

  • Validated: Z₀ to ±2 %, loss to ±15 % below 10 GHz, T_j to ±10 °C, R_th to ±15 %.
  • Not validated (intentionally out of scope): mmWave loss above 15 GHz, crosstalk, cyclic warpage, via-barrel fatigue. Those need separate experiments — or, more realistically, full-wave / mechanical sign-off as a separate workflow.

That's enough to use MagicON as the architecture-decision tool for Sub-6 GHz builds. Sign-off still goes through HFSS + Icepak (and Mechanical for fatigue), but you reach those tools with the right architecture in hand.


Reproducibility checklist

  • Setup: 4-layer / 1.57 mm / 3.5 GHz stackup regenerated, banner shows Tg 180 °C + 17/17 compliance.
  • Exp 1: Z₀ comparison (1 number) — pass/fail.
  • Exp 2: loss at 3.5 + 10 GHz (2 numbers) — pass/fail.
  • Exp 3: T_j and via R_th (2 numbers) — pass/fail.
  • Record deltas. Anything outside the pass band is either a MagicON regression or a solver-setup error worth investigating.

File references (for code-side audits)

Layer Path
Stackup GUI page frontend/src/pages/tools/StackupTool.tsx
Thermal panel frontend/src/components/Stackup/UnifiedThermalAnalysis.tsx
Edit-assumptions popover frontend/src/components/Stackup/EditAssumptionsPopover.tsx
Server-side parity solver backend/services/solver/thermal_solver.py
Impedance cross-check frontend/src/utils/impedance/impedanceCrossCheck.ts

Document version 2.0 — simplified. Each experiment is independent; do as many as you need.