Home Knowledge Base Parasitic extraction

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:

The extraction equation. For a single wire segment, the parasitic RC creates a distributed transmission-line delay approximated by:

$$\tau_{\text{50\%}} \approx 0.38 \cdot R_{\text{total}} \cdot C_{\text{total}} = 0.38 \cdot \frac{\rho \cdot L}{W \cdot T} \cdot (C_{\text{gnd}} + C_{\text{coupling}}) \cdot L$$

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:

ModeWhat is computedAccuracyRuntimeUse case
R-onlyResistance of each wire segmentLow (timing rough)MinutesEarly estimation, IR-drop
RC (lumped)One R and one C per netMediumMinutesPost-synthesis estimation
RC (distributed)Multi-segment RC pi/T models per netHigh (±3–5%)HoursSTA sign-off, SI analysis
RLCR + C + L (frequency-dependent)HighestMany hoursHigh-speed I/O, power grid
Field-solver3D electromagnetic solve per structureReferenceDaysCalibration, 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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.

parasitic extractionpexrcxresistance capacitance3d field solvercoupling capacitanceqrc extraction

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.