Skip to content
POWER · CURRENT

iPDN/iPNP · power/ground network build & reinforcement

Agents can inspect PDN structure, verify power integrity, and generate reinforcement plans for IR-drop hotspots—without rerunning the entire PDN flow.

POWER CURRENT Python SDK MCP Tcl API
agent — iPDN
# Agent inspects PDN and fixes IR-drop
>>> client.call("iPDN.build",
...   design_ref="snap_8a2b",
...   effort="standard")
[iPDN] power grid built        layers=6
[iPDN] integrity check passed  ir_drop=2.3%
[iPNP] local reinforcement     hotspots=3
→ design_ref: snap_8a2b_v2
iPDN powerGrid buildIR-Drop checkiPNP reinforceStrap routingVia stackEM analysisiDB databaseiPDN powerGrid buildIR-Drop checkiPNP reinforceStrap routingVia stackEM analysisiDB database

Core capabilities

Power/ground network construction

iPDN automatically builds multi-layer power grids including global straps, trunks, and via stacks. With effort="standard", Agents run the full grid build; with effort="estimate", they get structural assessment only without writing physical data.

PDN structure inspection

Agents call iPDN.inspect to check current PDN topology, inter-layer connectivity, and IR-drop at critical nodes. Results return a structured topology graph and a weakness list for downstream reinforcement.

Power integrity verification

Integrated with iPA IR-drop analysis, iPDN verifies power integrity after PDN construction. Returns maximum current density per metal layer, IR-drop in hotspot regions, and EM risk scores.

Reinforcement plan generation

For IR-drop hotspots, Agent-callable iPDN.reinforce generates local reinforcement plans—adding straps, widening metal, or inserting vias. Each plan includes estimated IR-drop improvement and area overhead.

iPNP local reinforcement

iPNP complements iPDN with localized power-grid patching. Agents can reinforce P/G in specified hotspot regions without changing the global PDN—ideal for ECO-stage power fixes.

Agent calling patterns

iPDN/iPNP expose three equivalent calling protocols.

Python
MCP
Tcl

Python SDK

from ieda import Client

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

# Build power grid
result = client.call(
    "iPDN.build",
    design_ref="snap_8a2b",
    effort="standard",
    intent_ref="intent_v3",
)

# Local reinforcement for hotspot
reinforce = client.call(
    "iPNP.reinforce",
    design_ref="snap_8a2b_v2",
    hotspots=[(120, 340), (780, 210)],
)
print(reinforce.ir_drop_after)  # 1.1%

Input / output contract

Request Schema — iPDN.build

ParameterTypeRequiredDefaultDescription
design_refstringYesdesign snapshot reference
effort"estimate" | "standard"Yesestimate: assess only, no write; standard: full build
intent_refstringYesAgent intent reference for provenance tracking
layer_stackstring[]Noauto-detectMetal layers used for the power grid

Result Schema

FieldTypeDescription
design_refstringNew design snapshot reference
layer_countintNumber of metal layers used
ir_drop_maxfloatMaximum IR-drop percentage
em_scorefloatEM risk score (0–1)
hotspotscoordinate[]IR-drop hotspot coordinate list

Role in the flow

     iFP (Floorplan)
         │
         ▼
  ┌──────────────┐
  │    iPDN  ◆  │  power/ground network construction
  │  iPNP (local)  │  reinforcement and patching
  └──────┬───────┘
         │
         ▼
  ┌──────────────┐
  │     iPL      │  Global / legalize / detailed place
  └──────────────┘
Upstream dependenciesiFP (floorplanning provides macro and IO placement)
Downstream consumersiPL (pre-placement requires power grid), iPA/iIR (power and IR-drop analysis)
Post-check requirediPA verifies IR-drop; failures trigger iPNP local reinforcement loop

Ensure power integrity

After PDN construction, use iPA to verify IR-drop and power distribution—confirm the power grid meets all constraints.