PCB buck ringing

You ask

How hard does the switch node ring with this layout?

Wobbl runs

Terminal
$ wobbl simulate buck_loose.kicad_pcb "how hard does the switch node ring with this layout?" \  --netlist buck.cir --no-open
The buck_loose board, as the run left it at 54.45 nH

Loose

The buck_loose board, as the run left it at 54.45 nH

Tight

Hot loop inductance 54.45 nH

Loose

31.5 V

MARGINAL

Tight

31.3 V

MARGINAL

Open the full report

Checks, numbers and charts

MARGINALbuck_loose.kicad_pcb has 5 routed nets on 2 layers, with trace impedances from 82.9 to 113 ohm. The longest, SW, runs 39.6 mm with 19.3 nH, 2.81 pF and 19.5 mohm. In buck.cir the layout raises the peak across D1 from 13.2 V on the schematic alone to 31.5 V, ringing at 168 MHz.

Nets
5
Impedance
82.9 to 113 ohm
Worst crosstalk
none found
Confidence
medium
  • passmesh convergence
  • passconnectivity
  • warnreturn path
summary.txt
MARGINAL. buck_loose.kicad_pcb has 5 routed nets on 2 layers, with trace impedances from 82.9 to 113 ohm. The longest, SW, runs 39.6 mm with 19.3 nH, 2.81 pF and 19.5 mohm. In buck.cir the layout raises the peak across D1 from 13.2 V on the schematic alone to 31.5 V, ringing at 168 MHz. Confidence: medium. return path: 4 nets run mostly over no plane (VIN, SW, VOUT, G), so their return current takes whatever copper is near and their impedance is only a boundnets: 5impedance: 82.9 to 113 ohmworst crosstalk: none foundsections solved: 3 Checks:  [pass] mesh convergence: the most used trace's impedance moved from 82.9 to 82.9 ohm on a finer mesh (0.026%)  [pass] connectivity: every net's pads are joined by its copper  [warn] return path: 4 nets run mostly over no plane (VIN, SW, VOUT, G), so their return current takes whatever copper is near and their impedance is only a bound Assumptions:  - Stackup: kicad stackup.  - Quasi static TEM cross sections of each trace with its planes; solder mask, plating and surface roughness are left out, and loss is only the DC resistance of the copper.  - Crosstalk is for a 1 ns edge on the aggressor.  - KiCad 8 board, file format version 20240108.  - Parasitics joined 9 of 11 pad connections and 4 net capacitances to the schematic buck.cir, each pad hanging off its net's main chip pad through the copper between them.  - The parts are modeled as the netlist gives them. Ideal switches and diodes without reverse recovery ring longer than real ones, whose losses damp the ringing. Suggested fixes:  - Put a ground pour under VIN: A plane right under the trace gives the return current a path next to it, which sets its impedance and cuts its loop inductance.  - Put a ground pour under SW: A plane right under the trace gives the return current a path next to it, which sets its impedance and cuts its loop inductance. Images: board: images/board.png, ringing: images/ringing.pngReport: report.html

MARGINALbuck_tight.kicad_pcb has 5 routed nets on 2 layers, with trace impedances from 60.2 to 113 ohm. The longest, VIN, runs 21.7 mm with 7.87 nH, 2.17 pF and 5.33 mohm. The worst crosstalk is 0.1% between G and GND over 0.6 mm at a 1 ns edge. In buck.cir the layout raises the peak across D1 from 13.2 V on the schematic alone to 31.3 V, ringing at 79.4 MHz.

Nets
5
Impedance
60.2 to 113 ohm
Worst crosstalk
0.1%
Confidence
high
tight summary.txt
MARGINAL. buck_tight.kicad_pcb has 5 routed nets on 2 layers, with trace impedances from 60.2 to 113 ohm. The longest, VIN, runs 21.7 mm with 7.87 nH, 2.17 pF and 5.33 mohm. The worst crosstalk is 0.1% between G and GND over 0.6 mm at a 1 ns edge. In buck.cir the layout raises the peak across D1 from 13.2 V on the schematic alone to 31.3 V, ringing at 79.4 MHz. Confidence: high. passed mesh convergence, closed form, connectivitynets: 5impedance: 60.2 to 113 ohmworst crosstalk: 0.1%sections solved: 3 Checks:  [pass] mesh convergence: the most used trace's impedance moved from 60.2 to 60.2 ohm on a finer mesh (0.021%)  [pass] closed form: the most used trace, a microstrip on F.Cu, is 60.2 ohm and the closed form for its average dielectric gives 60.3 ohm (0.12% apart, the field solve keeps each layer of the stackup)  [pass] connectivity: every net's pads are joined by its copper Assumptions:  - Stackup: kicad stackup.  - Quasi static TEM cross sections of each trace with its planes; solder mask, plating and surface roughness are left out, and loss is only the DC resistance of the copper.  - Crosstalk is for a 1 ns edge on the aggressor.  - KiCad 8 board, file format version 20240108.  - Parasitics joined 5 of 6 pad connections and 4 net capacitances to the schematic buck.cir, each pad hanging off its net's main chip pad through the copper between them.  - The parts are modeled as the netlist gives them. Ideal switches and diodes without reverse recovery ring longer than real ones, whose losses damp the ringing. Images: board: images/board.png, ringing: images/ringing.pngReport: report.html

Run it yourself

Terminal
$ git clone https://github.com/sohan-bhat/wobbl$ cd wobbl/examples/pcb-buck-ringing && ./run.sh

The part, the script and every output are in examples/pcb-buck-ringing on GitHub.