Parasitic extraction is the EDA process of computing the unintended resistance (R), capacitance (C), and inductance (L) of every wire, via, and device terminal in a chip's physical layout — numbers that are invisible in the schematic but dominate real-world performance at advanced nodes. A 10 mm wire at 5 nm has ~500 ohms of resistance and ~0.5 pF of capacitance that don't appear in the original netlist; without extraction, timing analysis would be off by 50–100% and the chip would fail at speed. Parasitic extraction transforms an idealized netlist into a physically-accurate model that sign-off tools (STA, power, SI) can trust.
What "parasitics" are. In a schematic, a wire is a zero-resistance, zero-capacitance ideal conductor. In real silicon, every metal segment has:
- Resistance (R): proportional to length, inversely proportional to cross-sectional area. At sub-20 nm widths, Fuchs-Sondheimer size effects raise Cu resistivity 3–5x above bulk (see the CFS copper-interconnect keyword).
- Capacitance (C): between the wire and every neighboring conductor — adjacent wires (coupling cap), wires above/below (plate cap), and the substrate. Determines RC delay and crosstalk.
- Inductance (L): significant only for wide, long wires at high frequency (power grid, clock distribution, I/O buses). Creates Ldi/dt voltage noise.
The extraction equation. For a single wire segment, the parasitic RC creates a distributed transmission-line delay approximated by:
For a typical M1 wire at 5 nm (width 14 nm, length 100 um): $R$ ~ 500 ohm, $C$ ~ 0.5 pF, delay ~ 95 ps — comparable to multiple gate delays. This is why BEOL RC — not transistor speed — limits frequency at advanced nodes.
Extraction accuracy levels:
| Mode | What is computed | Accuracy | Runtime | Use case |
|---|---|---|---|---|
| R-only | Resistance of each wire segment | Low (timing rough) | Minutes | Early estimation, IR-drop |
| RC (lumped) | One R and one C per net | Medium | Minutes | Post-synthesis estimation |
| RC (distributed) | Multi-segment RC pi/T models per net | High (±3–5%) | Hours | STA sign-off, SI analysis |
| RLC | R + C + L (frequency-dependent) | Highest | Many hours | High-speed I/O, power grid |
| Field-solver | 3D electromagnetic solve per structure | Reference | Days | Calibration, custom structures |
How extraction tools work. The extraction engine (Synopsys StarRC, Cadence QRC/Quantus, Siemens Calibre xRC) reads the physical layout (GDS or DEF), the technology file (layer stackup: thickness, spacing, dielectric k-values per layer), and computes capacitance and resistance for every net:
1. Geometry processing: Identify all conductors and dielectrics in the cross-section around each net. 2. Pattern matching: For each wire segment, look up precomputed capacitance coefficients from a library of canonical 2D/3D structures (calibrated against field-solver reference). 3. Resistance computation: Segment the wire into pieces, compute R per segment from resistivity, width, thickness, via resistance. 4. Coupling identification: Find all neighboring nets within the interaction radius and compute mutual capacitance. 5. Output: A SPEF (Standard Parasitic Exchange Format) or DSPF file containing the RC network for every net — consumed by STA and power tools.
Coupling capacitance and crosstalk. At tight metal pitches (20–28 nm), the coupling capacitance between adjacent wires can exceed the ground capacitance. This means a switching neighbor can inject voltage noise into a quiet victim wire (crosstalk), causing timing violations. Extraction must compute both the total capacitance AND the per-aggressor coupling caps so that signal-integrity analysis can check crosstalk-induced delta-delay.
<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif">
<rect x="0" y="0" width="760" height="470" fill="#0d1117"/>
<text x="380" y="28" fill="#e6edf3" font-size="21" font-weight="700" text-anchor="middle">Parasitic Extraction Technical Microarchitecture</text>
<text x="380" y="48" fill="#8b98a5" font-size="12" text-anchor="middle">Detailed Domain Pipeline, Architectural Blocks & Engineering Performance Optimization (ID 12620)</text>
<!-- INFRA MICROSERVICES DAG (4 Stage Workflow) -->
<g transform="translate(25, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">1. Client / Ingress</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">API Gateway</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">TLS Termination</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">Rate Limiting & Auth</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Zero Trust Boundary</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Load Balancer</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Round-Robin / LeastConn</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">Health Probes (gRPC/HTTP)</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">High Availability LB</text>
</g>
<g transform="translate(205, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">2. Microservices</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">Stateless Workers</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">Kubernetes Pod Clusters</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">HPA Auto-scaling</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Fault-Tolerant</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Service Mesh</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Istio / Envoy Proxy</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">mTLS Encryption</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Distributed Tracing</text>
</g>
<g transform="translate(385, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">3. Cache & Messaging</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">Distributed Cache</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">Redis Cluster / Memcached</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">Sub-millisecond Read</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Write-Through Policy</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Event Bus</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Kafka / RabbitMQ</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">Asynchronous Queues</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">At-least-once Delivery</text>
</g>
<g transform="translate(565, 75)">
<rect width="165" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
<text x="82.5" y="25" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">4. Persistence Tier</text>
<rect x="12" y="45" width="141" height="110" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="70" fill="#c4b5fd" font-size="10" font-weight="700" text-anchor="middle">Primary DB</text>
<text x="82.5" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">PostgreSQL / MySQL</text>
<text x="82.5" y="110" fill="#8b98a5" font-size="9" text-anchor="middle">ACID Transactions</text>
<text x="82.5" y="130" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">Multi-AZ Failover</text>
<rect x="12" y="170" width="141" height="130" fill="#0d1117" stroke="#30363d" rx="4"/>
<text x="82.5" y="195" fill="#e6edf3" font-size="10" font-weight="700" text-anchor="middle">Read Replicas</text>
<text x="82.5" y="215" fill="#8b98a5" font-size="9" text-anchor="middle">Horizontal Read Scale</text>
<text x="82.5" y="235" fill="#8b98a5" font-size="9" text-anchor="middle">Automated Backups</text>
<text x="82.5" y="265" fill="#3fb950" font-size="8" font-weight="700" text-anchor="middle">99.999% Uptime SLA</text>
</g>
<!-- Key insight bar -->
<rect x="25" y="415" width="710" height="22" rx="3" fill="#0b1220" stroke="#233043" stroke-width="0.8"/>
<text x="380" y="430" fill="#fbbf24" font-size="9" font-weight="700" text-anchor="middle">Key Insight: Optimal Parasitic Extraction architecture balances performance throughput, systemic latency, and physical constraints.</text>
<text x="380" y="460" fill="#6b7684" font-size="11" text-anchor="middle">Technical specification & verification reference for Parasitic Extraction (Row ID 12620)</text>
</svg>
Extraction at advanced nodes — what changes. At 5 nm and below: (1) coupling capacitance exceeds ground capacitance at the tightest pitches — crosstalk dominates; (2) via resistance becomes significant (each via is ~5–20 ohm at M1); (3) multi-patterning creates metal-line asymmetry that extraction must capture; (4) back-end low-k damage from etch raises effective k and must be modeled. Total extraction runtime for a full GPU at 3 nm: 24–72 hours on a large compute farm.
Parasitic extraction and the CFS platform. The CFS Interconnect Simulator at /interconnect models the Fuchs-Sondheimer resistivity and distributed RC delay that extraction computes. The low-k dielectric keyword covers the capacitance environment. The electromigration keyword covers the current-density limits that extraction-derived currents are checked against. Together they represent the physical reality that separates a schematic from a working chip.
Explore 500+ Semiconductor & AI Topics
From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.