跳到主要内容
Power Engine · CURRENT

iPA/iIR · 功耗与 IR-Drop 分析

支持 activity-provenance 的功耗分解、功率到 IR-Drop 的因果追溯,以及热斑自动识别。Agent 可传入 VCD/SAIF 活动文件做动态功耗剖析,定位顶层贡献模块,并将功耗热点与 IR-Drop 热点交叉关联。

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

核心能力

Activity-Provenance 功耗分解

iPA 支持静态 (无活动文件) 和动态 (VCD/SAIF) 两种功耗计算模式。动态模式下,iPA 根据活动文件在每个时间窗口内计算单元的开关活动率,并按模块层级汇聚。Agent 通过 iPA.analyze 可获得 total_power、dynamic/leakage 分量、以及 per-module 的功耗占比 breakdown——精确追溯到哪个功能场景的哪个子模块贡献了最大功耗。

功率到 IR-Drop 因果追溯

iIR 在 iPA 功率计算基础上分析电源网络的 IR-Drop 分布,建立"高功率模块 -> 对应电源网络节点 -> IR-Drop 值"的因果映射。Agent 可查询每个 IR-Drop 热点的 root cause 模块,而非仅获得无上下文的电压降数值。这使得 Agent 能够提出有针对性的局部 P/G 加固建议,而非盲目地全局增加 stripe。

热斑自动识别

iPA/iIR 综合功耗密度与 IR-Drop 严重程度生成 hotspot 列表,每个热点包含模块名、坐标范围、功耗密度、IR-Drop 峰值和严重等级 (critical/warning/info)。Agent 可将热点列表直接传入 iPDN 作为局部 P/G 强化的目标区域,形成闭环的电源完整性优化流程。

Agent 调用方式

iPA/iIR 提供三种等价的调用协议。

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)

输入/输出契约

Request Schema — iPA.analyze

参数类型必需默认值说明
design_refstring设计快照引用
mode"static" | "dynamic"静态 (无活动文件) 或动态 (VCD/SAIF) 功耗分析
scenariostring工作场景名称 (如 func_typical)
activity_filestring否 (static 时)""VCD/SAIF 活动文件路径或引用 (dynamic 模式必需)
intent_refstringAgent 意图引用

Result Schema

字段类型说明
total_powerfloat总功耗 (mW)
power_breakdownobject{dynamic, leakage} 分量
ir_drop_mapbinaryIR-Drop 热力图网格数据
hot_spotsobject[]热斑列表,含模块名、IR-Drop 值、严重等级
warningsstring[]非致命警告信息

在流程中的位置

                 ┌──────────┐
                 │   iPL    │  布局完成
                 └────┬─────┘
                      │
                      ▼
                 ┌──────────┐
                 │  iPDN    │  电源网络
                 └────┬─────┘
                      │
                      ▼
                 ┌──────────┐
                 │  iCTS    │  时钟树综合
                 └────┬─────┘
                      │
                      ▼
                 ┌──────────┐
                 │   iRT    │  布线完成
                 └────┬─────┘
                      │
                      ▼
┌──────────────────────────────────────────┐
│            iPA / iIR  ◆                 │
│  功耗计算 (static/dynamic)                │
│  IR-Drop 分析 → hotspot 输出            │
│  ↑ 输入: 布局+布线+RC寄生+活动文件        │
│  ↓ 输出: power breakdown + IR map      │
└──────────────────┬───────────────────────┘
                   │
                   ▼
          ┌──────────────┐
          │    iPNP      │  局部 P/G 加固
          └──────────────┘
上游依赖iRT (布线)、iRCX (RC 提取)、iPDN (电源网络)、VCD/SAIF 活动文件
下游消费者iPNP (局部 P/G 加固)、iPDN (电源网络迭代)、iThermal (热分析)
并发交互iSTA 提供 clock-tree 功耗权重;iRCX 提供精确寄生用于动态功耗计算

发现 IR-Drop 热点?加固电源网络

将 iPA/iIR 的 hotspot 报告直接传入 iPDN 或 iPNP 做局部 P/G 网络强化。