KiCad 8 to KiCad 9 PCB Layout Migration Blueprint: Netlist Parity, Padstack Geometries, and Differential Impedance Rules
With the annual major release cycle of the KiCad EDA Suite, migrating complex multi-layer high-speed digital and RF PCB designs between major versions requires systematic verification. Upgrading .kicad_pro, .kicad_sch, and .kicad_pcb project trees without a formal pre-flight audit can introduce silent netlist mismatches, altered copper clearance geometries, and clearance violation flags in Design Rule Check (DRC).
Here is a battle-tested engineering checklist to migrate production PCB designs safely while maintaining 100% netlist parity and impedance control.
1. Version Control & Isolated Baseline Artifacts
Before opening any production project in a newer KiCad version:
- Commit all uncommitted working trees in Git.
- Tag the repository release (e.g.,
git tag v1.2-kicad8-baseline). - Export an ASCII IPC-D-356 netlist from the current KiCad 8 layout (
File > Export > Netlist > IPC-D-356). This serves as your immutable physical comparison gold standard.
2. Upgrading Schematic Symbol Libraries & Power Symbols
KiCad 8 and 9 introduced dedicated pin-to-pin electrical rule checks and improved graphic styling. When opening an older schematic in KiCad 9:
-
Cache Rescue Dialog: If symbols were modified locally or vendor libraries were updated on your workstation, KiCad prompts to rescue changed symbols into
<project>-rescue.kicad_sch. Always accept the rescue, ensuring the schematic continues to use the exact pin mappings that produced the physical board layout. -
Power Symbol Global Net Renaming: Inspect all power flags (
+3V3,VCC_IO,GND). Ensure custom power symbols declare thePowerattribute properly so that ERC does not generate falsePin connected to other pins, but not driven by any pinwarnings.
3. High-Speed Differential Impedance & Layer Stackup Integrity
During major PCB format updates, copper layer thickness parameters and dielectric constant ($D_k / \varepsilon_r$) profiles in the Board Setup table may be recalculated if custom material stackups were defined:
Board Setup > Physical Stackup:
Layer 1 (F.Cu): 35 µm (1 oz) Microstrip
Dielectric 1 (Prepreg 1080): 75 µm, Dk = 4.2, Df = 0.015
Layer 2 (In1.Cu): 35 µm Reference Ground Plane
When routing 90 $\Omega$ USB 2.0 / USB 3.x differential pairs or 100 $\Omega$ PCIe Gen 4 lanes, a $10\,\mu\text{m}$ variance in prepreg thickness during stackup re-import alters characteristic trace impedance ($Z_0$) by several ohms, risking signal integrity reflections:
$$Z_{0,microstrip} \approx \frac{87}{\sqrt{\varepsilon_r + 1.41}} \ln\left(\frac{5.98 \cdot h}{0.8 \cdot w + t}\right)$$
Before re-running global copper zone fills, verify your layer stackup numbers against our Multi-Layer PCB Impedance Profile & Stackup Engineering Guide.
4. Copper Pour Zone Fill Refactoring & Thermal Reliefs
KiCad 9 enhances zone fill algorithms, particularly around teardrop filleting and micro-via thermal reliefs:
-
Re-fill All Zones: Press
Bto initiate a global copper polygon rebuild across all inner and outer layers. - Inspect Thermal Spoke Widths: Check ground pin pads on high-current inductors and buck converters. Verify that four-spoke thermal connections haven't shrunk below trace ampacity limits.
- Diff Netlist Check: Export a fresh IPC-D-356 netlist from KiCad 9 and run a line-by-line diff against the baseline exported in Step 1. Every copper bridge and net connectivity must align perfectly.
For detailed best practices on hierarchical schematic design and bus aliases, review our guide on KiCad Schematic & Netlist Engineering Standards.
Top comments (0)