布局布线实操:Innovus/ICC2 的五段式流水线(D1)
数据流侧见 S3 floorplan/布局、S4 CTS/布线。本篇讲工具操作:Innovus(原 EDI)与 ICC2 如何组织脚本、每阶段吃什么吐什么、checkpoint 怎么打、报告怎么读,以及「实现工具绿 ≠ 签核绿」这个永恒的口径问题。算法原理见 EDA 算法。
一、init:一次把 MMMC 与物理视图装齐

init_design 前必须备齐:tech/cell LEF(F4)、多角 .lib(F3)、网表、约束(SDC)、UPF,并通过 view 定义把 setup/hold/RC 角绑成 MMMC 场景。init 阶段的 floorplan DEF、电源意图、库角任何一个错配,后面几十小时 run 全废,所以 init 后要做 power-domain、层/track、宏合法性的检查再继续。
二、五段命令骨架(Innovus / ICC2 对照)
| 阶段 | Innovus | ICC2 | 关键产物 |
|---|---|---|---|
| floorplan | floorPlan、addRing/addStripe、placeInstance(宏) | initialize_floor_plan、create_* | DEF、电源网络 |
| power | sroute、globalNetConnect | connect_pg_net | PG 连通 |
| place | placeDesign(含 pre-place 优化) | place_opt | 布局后 DEF/网表 |
| CTS | ccopt_design/clockDesign | clock_opt | 时钟树、spec |
| route | routeDesign(NanoRoute) | route_auto/route_eco | routed DEF/GDS |
每段结束打 checkpoint(保存完整数据库)并出阶段报告——X4 的 release/scratch 纪律在这里落地:checkpoint 在 scratch,过里程碑才 promote。
三、各阶段 QoR 怎么读
| 阶段 | 指标 | 坏味道 |
|---|---|---|
| floorplan | 宏间距/通道、电源降预算、die utilization | 宏堵死通道、strap 不够 |
| place | 拥塞热区(overflow/congestion map)、利用率、legalized 漂移、预估 WNS | 平均值绿但局部红 |
| CTS | skew/latency、CTS 后 hold 违例、时钟功耗占比 | 长 leaf、跨域时钟没约束 |
| route | DRC/短线(open/short)数量、wirelength、信号 EM、串扰窗口 | 违例只降不收、反复 repair |
- 拥塞要在 place 阶段就处理(加 halo/软遮挡/调宏位/降局部密度),等到 route 才修代价大十倍;
- CTS 后 hold 普遍新增,因为时钟真实延迟落地,工具用插缓冲修,注意缓冲爆炸对功耗/面积的反噬;
- route DRC 看趋势(呼应 X5 看板):2000→200→2 是收敛,震荡不降是结构问题。
四、实现绿 ≠ 签核绿
Innovus 内嵌的时序引擎用于优化收敛,但最终时序以黄金 STA(PrimeTime/Tempus,见 E1)为准,差异来源:
治理:route 后导出网表+DEF→签核级提取 SPEF→黄金 STA;把签核结果以 ECO 时序(X3)回灌实现工具修复,严禁直接在 P&R 工具里用其内嵌时序宣布签收。
五、典型翻车点
| 症状 | 根因 | 处置 |
|---|---|---|
| init 通过但域全错 | UPF/PG net 未连 | init 后电源连通性检查门禁 |
| route 阶段大面积 DRC | place 拥塞未处理 | 拥塞热区前置到 place 解决 |
| CTS 后 hold 爆炸 | 跨域/异步时钟约束缺 | 补齐时钟关系与例外 |
| 签核比实现差 200ps | 寄生/模型口径差 | 签核 SPEF+POCV,ECO 回灌 |
| run 无法续跑 | 未存 checkpoint | 每段强制 save+报告 |
相关与延伸
- 数据流:S3、S4;格式:LEF/DEF F4、SPEF/SDF F5。
- 黄金签核:E1 PrimeTime;设计概念:物理设计。
总结
P&R 是「init 装齐 MMMC/LEF/网表/SDC/UPF→floorplan 电源规划→place 把拥塞解决在早期→CTS 控 skew 并修 hold→route 把 DRC 收到清零」的五段式,每段打 checkpoint 出报告;拥塞看热区、DRC 看趋势,而实现工具的内嵌时序永远不是签收依据——必须用签核级 SPEF 进黄金 STA 再把 ECO 回灌。