Explore / Methods & Algorithms / Finishing / Parasitic Extraction

Parasitic Extraction

Finishing industry 1991 onward Nabors and White (FastCap); pattern-based extractors fast with pattern tables accuracy against speed

The idea

After routing, timing and power depend on the resistance and capacitance of the real wires, not on estimates. Resistance is local:

R = Rsheet × length ÷ width
  • R resistance of one straight wire segment
  • Rsheet sheet resistance of the layer, set by its material and thickness
  • length, width the drawn dimensions of the segment

plus the resistance of every via along the way. Capacitance is not local. Each wire couples to the substrate, to the layers above and below, and to its neighbors on the same layer, and at small pitches the neighbor coupling dominates. The exact answer comes from solving the electrostatic field around the conductors. Field solvers such as FastCap (Nabors and White, 1991) do this with boundary elements accelerated by multipole expansions, but even so they are far too slow for the billions of wire segments on a chip.

Production extractors are therefore pattern-based. Before any design is extracted, a field solver characterizes a library of typical cross-sections for the process (a wire with neighbors at various spacings, with and without metal above and below) into tables. The extractor then scans the layout, identifies the configuration around each segment, looks up its capacitance, and writes a netlist of resistors and capacitors for the timer.

Watch it work: one wire, turned into resistors and capacitors

One routed net beside two neighbours, with illustrative values. The walkthrough computes each segment's resistance from its shape, looks up its capacitance in a pattern table, and assembles the network that timing analysis reads.

The fine print

Pattern tables are only as good as their coverage. Unusual geometry falls between the patterns, so accuracy is checked by comparing against a field solver on sample structures. Coupling capacitance also depends on whether the neighbors switch at the same time; extraction reports it as separate coupling capacitors and leaves the interpretation to timing analysis.

Where you meet it today

OpenRCX, OpenROAD's extractor, works from a per-process rules file of this kind, and extract_parasitics runs in the flow's final report before sign-off timing. The timing catalog's interconnect pages pick up where extraction leaves off.

References and further reading