Skip to content
Extraction Engine · CURRENT

iRCX · RC extraction

Parasitic RC extraction engine. Agents can inspect extraction per net and run incremental extraction on dirty tiles only—avoiding the cost of full-chip re-extraction.

Open-source EDAAgent-callableIncremental extractionGPL-3.0
agent — ircx
# Agent-driven RC extraction
[iRCX ] mode       in-design
[iRCX ] nets extracted     12
[iRCX ] incremental       yes
[iRCX ] correlation       0.97
→ spot-extract critical nets only
iMapsynthesisiFPfloorplaniPDNpoweriPLplacementiCTSclockiTOoptimizationiRTroutingiSTAtimingAiEDAdesign dataiPCLlayout modeliMapsynthesisiFPfloorplaniPDNpoweriPLplacementiCTSclockiTOoptimizationiRTroutingiSTAtimingAiEDAdesign dataiPCLlayout model
Post-route / pre-signoffCritical step
AgentCallable
Incremental + full-chipDual mode
GPL-3.0License

Core capabilities

iRCX (RC Extraction) is iEDA's parasitic extraction engine. It extracts interconnect resistance (R) and capacitance (C) from layout geometry and outputs standard SPEF (Standard Parasitic Exchange Format). Accurate RC extraction is a prerequisite for signoff timing analysis (iSTA) and power analysis (iPA)—without precise parasitics, timing and power results are estimates, not analysis.

iRCX's key value for Agents is incremental extraction. In full-chip flows, a complete RC extraction can take tens of minutes to hours. When Agents modify a small set of routes during ECO, re-extracting the entire chip is wasteful. iRCX supports incremental mode (incremental=true): Agents re-extract only dirty tiles or specified net lists where routing changed, then merge results back into the existing SPEF database—compressing extraction time from hours to seconds.

Agents use iRCX in these scenarios: critical-net fine analysis—list nets on timing-critical paths and call iRCX.extract(nets=[...]) for precise RC on those nets instead of full-chip extraction; post-ECO incremental update—after routing ECO modifies nets, specify changed nets for incremental extraction, then re-run STA to verify fixes; extraction mode selection—pick accuracy by flow stage: estimate mode in early flow (fast wirelength/statistical models), in-design mode in physical implementation (field solver on actual metal geometry), correlated mode at signoff (calibrated against commercial tools).

iRCX extraction uses a 2.5D field-solver framework: layout is layered into conductor/dielectric stacks with accurate width, spacing, and thickness modeling per metal layer. Besides standard SPEF, iRCX outputs an internal RCNetwork structure—Agents can access R/C per wire segment, coupling capacitance pairs, and RC tree topology for GNN features or delay-prediction model training.

Agent calling patterns

Python
MCP
Tcl
# Agent calls iRCX for RC extraction
from ieda_client import IEDAClient

client = IEDAClient()

# Full-chip extraction (in-design mode)
rc = client.call("iRCX.extract",
    design_ref="snap_7f3a",
    extraction_mode="in-design")

print(f"Extracted nets: {rc['extracted_nets']}")

# Agent extracts critical nets only (incremental mode)
rc = client.call("iRCX.extract",
    design_ref="snap_7f3a",
    nets=["net_1234", "net_5678", "clk_net"],
    incremental=True)

# Agent checks extraction correlation and accuracy
rc = client.call("iRCX.extract",
    design_ref="snap_7f3a",
    extraction_mode="correlated")
print(f"Correlation score: {rc['correlation_score']}")
{
  "tool": "iRCX.extract",
  "arguments": {
    "design_ref": "snap_7f3a",
    "nets": ["net_1234"],
    "incremental": true
  }
}
# Tcl interactive RC extraction
iRCX::set_design snap_7f3a
iRCX::set_extraction_mode in-design
iRCX::set_incremental true
iRCX::extract -nets {net_1234 net_5678}
iRCX::write_spef -output snap_7f3a.spef
iRCX::report_correlation

Input / output contract

FieldTypeRequiredDescription
design_refstringYesDesign instance ID (post-route; includes GDS/DEF)
netsstring[]NoNet names to extract (full chip if omitted)
incrementalboolNoIncremental extraction (changed regions only)
extraction_mode"estimate"|"in-design"|"correlated"NoExtraction accuracy mode
Return fieldTypeDescription
spef_refstringGenerated SPEF reference ID in iDB
rc_networkRCNetworkRC network topology and parameters (programmatic access)
extracted_netsintNumber of nets extracted in this run
correlation_scorefloatExtraction correlation vs. reference tool (correlated mode)

Role in the flow

    ··· Upstream steps ···
         │
  ┌─────────────┐
  │    iRT      │  Routing complete (includes metal geometry)
  │   Routing    │
  └──────┬──────┘
         │  DEF + LEF + tech
         ▼
  ┌─────────────┐
  │   iRCX     │  ← Current tool: RC parasitic extraction
  │ RC Extract   │
  └──────┬──────┘
         │  SPEF
         ├──────────────┬──────────────┐
         ▼              ▼              ▼
  ┌──────────┐  ┌──────────┐  ┌──────────┐
  │  iSTA    │  │  iPA/iIR │  │  iTO     │
  │ Timing   │  │  Power   │  │ ECO opt  │
  └──────────┘  └──────────┘  └──────────┘
Upstream: iRT (post-route layout geometry) Downstream: iSTA (timing) · iPA (power) · iTO (ECO optimization) Collaborates with: iSTA/iPA accuracy; incremental mode pairs with iTO ECO loops

Paper

Nabors K, White J. "FastCap: A Multipole Accelerated 3-D Capacitance Extraction Program." IEEE TCAD, 1991.

View →

Paper

Choudhury U, Sangiovanni-Vincentelli A. "Automatic Generation of Analytical Models for Interconnect Capacitances." IEEE TCAD, 1995.

View →

Related tool

iSTA · Timing analysis — primary SPEF consumer; extraction accuracy drives signoff timing quality.

iSTA →

Related tool

iPA · Power analysis — dynamic power depends on RC network charge/discharge energy.

iPA →

Related tool

iRT · Routing — routing geometry is RC extraction input; ECO route changes trigger incremental extraction.

iRT →

GitHub

iRCX source lives in the iEDA repository extraction modules.

GitHub →

Extract precisely, analyze accurately

Incremental mode extracts critical nets on demand—no more waiting for full-chip re-extraction.