PDN Impedance Analyzer & Decoupling Optimizer
Model PCB power-delivery-network impedance including plane-pair cavity resonances. Specify board geometry, VRM bandwidth, and a flat target impedance. The tool computes cavity resonances (Novak Green's function), then uses a genetic algorithm to find the optimal combination of decoupling capacitors that keeps Z_PDN below your target across the entire frequency range.
How It Works
Power-delivery network impedance determines how cleanly a PCB delivers current to ICs. The target is a flat Ztarget from DC to the highest switching frequency — if |ZPDN(f)| exceeds this target, simultaneous switching noise causes voltage droops that degrade performance or cause logic errors.
This tool models two physical effects missed by lumped-element spreadsheets:
- Plane-pair cavity resonances — the power and ground planes form a 2D rectangular cavity. At resonant frequencies fmn = (c₀/2√εr)√((m/a)² + (n/b)²), the impedance peaks sharply. These resonances can push |Z| far above the target even when lumped decoupling looks adequate.
- Capacitor self-resonance — each MLCC has a series resonance frequency SRF = 1/(2π√LC) where its impedance is minimal (≈ ESR). Above SRF it becomes inductive. The optimizer selects combinations across multiple value decades to achieve broadband suppression.
The genetic algorithm sweeps integer capacitor counts across 7 standard MLCC values, minimising max(|ZPDN|/Ztarget) over the full frequency range.
Related Calculators
FAQ
Why does Z_PDN spike at certain frequencies even with decoupling capacitors?+
These are plane-pair cavity resonances. The power/ground plane pair acts as a 2D electromagnetic cavity resonating at frequencies determined by board dimensions and dielectric constant. Decoupling capacitors can suppress these resonances when placed correctly, but a purely lumped model misses them entirely. The tool shows which resonant modes are contributing so you can target capacitor placement near anti-resonance nodes.
What does the convergence history plot show?+
The GA fitness function is max(|Z_PDN|/Z_target) — the ratio of the worst impedance violation to the target. A value of 1.0 means Z_PDN just touches the target at one frequency. Below 1.0 means the target is fully met everywhere. The convergence history shows how this fitness improved over generations. If it plateaus well above 1.0, try relaxing the target impedance or increasing the capacitor budget.