Skip to content
Power Engine · CURRENT

iPA/iIR · Power & IR-drop analysis

Activity-provenance power breakdown, causal power-to-IR-drop tracing, and automatic hotspot detection. Agents can pass VCD/SAIF activity files for dynamic power profiling, identify top contributing modules, and cross-correlate power hotspots with IR-drop hotspots.

Power Engine CURRENT Tcl API Python SDK MCP
agent — iPA/iIR
# Agent calls power analysis with activity file
>>> client.call("iPA.analyze",
...   design_ref="snap_7f3a",
...   scenario="func_typical",
...   mode="dynamic",
...   activity_file=vcd_ref)
[iPA] total power               128.5 mW
[iPA] dynamic / leakage         94.2 / 34.3
[iIR] IR-drop map ready         worst=42mV
→ hot_spots: [core/alu, core/l2_cache]
iPA powerdynamic analysisleakage estimateiIR IR-dropVCD activityhotspot detectpower-IR traceiPA powerdynamic analysisleakage estimateiIR IR-dropVCD activityhotspot detectpower-IR trace

Core capabilities

Activity-provenance power breakdown

iPA supports static (no activity file) and dynamic (VCD/SAIF) power calculation. In dynamic mode, iPA computes per-cell switching activity in each time window from the activity file and aggregates by module hierarchy. Via iPA.analyze, Agents get total_power, dynamic/leakage components, and per-module power breakdown—tracing exactly which functional scenario and submodule contribute most power.

Power-to-IR-drop causal tracing

iIR builds on iPA power results to analyze IR-drop across the power grid, mapping high-power modules to grid nodes and IR-drop values. Agents can query the root-cause module for each IR-drop hotspot instead of receiving context-free voltage-drop numbers. That enables targeted local P/G reinforcement rather than blindly adding stripes globally.

Automatic hotspot detection

iPA/iIR synthesize power density and IR-drop severity into a hotspot list. Each entry includes module name, coordinate bounds, power density, peak IR-drop, and severity (critical/warning/info). Agents can pass hotspot lists directly to iPDN as target regions for local P/G reinforcement, closing the power-integrity optimization loop.

Agent calling patterns

iPA/iIR expose three equivalent calling protocols.

Python
MCP
Tcl

Python SDK

from ieda import Client

client = Client("http://localhost:9099")

# Dynamic power analysis with activity file
result = client.call(
    "iPA.analyze",
    design_ref="snap_7f3a",
    scenario="func_typical",
    mode="dynamic",
    activity_file=vcd_ref,
    intent_ref="power_profile_v1",
)

print(result.total_power)        # 128.5 (mW)
print(result.power_breakdown)    # {"dynamic": 94.2, "leakage": 34.3}
print(result.ir_drop_map)        # <binary grid>
print(result.hot_spots)          # ["core/alu", "core/l2_cache"]

# Static IR-drop check only
ir = client.call(
    "iIR.analyze",
    design_ref="snap_7f3a",
    pdn_ref="pdn_v3",
)
print(ir.worst_drop)           # 42 (mV)

Input / output contract

Request Schema — iPA.analyze

ParameterTypeRequiredDefaultDescription
design_refstringYesdesign snapshot reference
mode"static" | "dynamic"YesStatic (no activity file) or dynamic (VCD/SAIF) power analysis
scenariostringYesOperating scenario name (e.g. func_typical)
activity_filestringNo (static mode)""VCD/SAIF activity file path or reference (required in dynamic mode)
intent_refstringYesAgent intent reference

Result Schema

FieldTypeDescription
total_powerfloatTotal power (mW)
power_breakdownobject{dynamic, leakage} components
ir_drop_mapbinaryIR-drop heatmap grid data
hot_spotsobject[]Hotspot list with module name, IR-drop value, and severity
warningsstring[]Non-fatal warning messages

Role in the flow

                 ┌──────────┐
                 │   iPL    │  placement complete
                 └────┬─────┘
                      │
                      ▼
                 ┌──────────┐
                 │  iPDN    │  power grid
                 └────┬─────┘
                      │
                      ▼
                 ┌──────────┐
                 │  iCTS    │  Clock tree synthesis
                 └────┬─────┘
                      │
                      ▼
                 ┌──────────┐
                 │   iRT    │  routing complete
                 └────┬─────┘
                      │
                      ▼
┌──────────────────────────────────────────┐
│            iPA / iIR  ◆                 │
│  power calculation (static/dynamic)                │
│  IR-drop analysis → hotspot output            │
│  ↑ Input: placement + routing + RC parasitics + activity files │
│  ↓ Output: power breakdown + IR map      │
└──────────────────┬───────────────────────┘
                   │
                   ▼
          ┌──────────────┐
          │    iPNP      │  local P/G reinforcement
          └──────────────┘
Upstream dependenciesiRT (routing), iRCX (RC extraction), iPDN (power grid), VCD/SAIF activity files
Downstream consumersiPNP (local P/G reinforcement), iPDN (power grid iteration), iThermal (thermal analysis)
Concurrent interactioniSTA provides clock-tree power weights; iRCX provides accurate parasitics for dynamic power calculation

Found IR-drop hotspots? Reinforce the power grid

Pass iPA/iIR hotspot reports directly to iPDN or iPNP for local P/G network reinforcement.