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
# 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
| Field | Type | Required | Description |
|---|---|---|---|
design_ref | string | Yes | Design instance ID (post-route; includes GDS/DEF) |
nets | string[] | No | Net names to extract (full chip if omitted) |
incremental | bool | No | Incremental extraction (changed regions only) |
extraction_mode | "estimate"|"in-design"|"correlated" | No | Extraction accuracy mode |
| Return field | Type | Description |
|---|---|---|
spef_ref | string | Generated SPEF reference ID in iDB |
rc_network | RCNetwork | RC network topology and parameters (programmatic access) |
extracted_nets | int | Number of nets extracted in this run |
correlation_score | float | Extraction 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 │
└──────────┘ └──────────┘ └──────────┘
Related resources
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 →