物理设计签核前收敛:在 P&R 工具里把 setup/hold 一起收绿(D5)
本篇是 P&R 工具内的收敛(Innovus/ICC2 用内置分析迭代到可交付);用独立黄金引擎(PrimeTime/Tempus)做最终判定与 PT-ECO 是 E1/E5。设计侧手法见 时序收敛基本手法、案例见 物理 ECO 收敛。阶段见 D1,时钟见 D3 CTS。
一、核心节奏:先 setup,后 hold
postroute 时序违例两类:**setup(数据到得太晚)**和 hold(数据到得太早,被同一拍误采)。它们的修复互相牵连,顺序错了会反复「修好 A 打破 B」:
| setup 违例 | hold 违例 | |
|---|---|---|
| 物理含义 | 路径太长,一个周期传不完 | 路径太短,新值太快窜到下一级 |
| 修复方向 | 缩短数据延迟(快 cell、插流水、useful skew) | 增加数据延迟(插延迟单元/缓冲) |
| 副作用 | 可能改变布线、影响别的路径 | 加延迟可能轻微恶化 setup |
| 主要出现时机 | 全流程都可能 | CTS/真实时钟后才大量暴露 |
先 setup 后 hold 的原因:修 setup 常要加 buffer、换大尺寸 cell、重布线,这些动作会改变路径延迟,可能动到 hold;而 hold 修复多是在终点前插延迟单元(delay insertion),改动局部、基本不缩短任何路径,放在 setup 收敛后做不易返工。先 hold 后 setup 几乎必然返工。

二、修复手段工具箱(按代价排序)
工具在 ECO 阶段自动/半自动选用,理解代价才能引导它:
- cell sizing(调尺寸):把关键路径单元换驱动更强的版本,缩短延迟;反之非关键路径换小尺寸省功耗。最常用、扰动小;
- 阈值档互换(HVT/LVT swap):LVT 快但漏电大,HVT 慢但省电。关键路径上 LVT,非关键填 HVT 回收漏电——工具做多阈值优化;
- 插 buffer / 重整 buffer 树:切分长连线、改善高扇出;但加 buffer 增面积功耗、占布线资源;
- Vt/层/间距:关键 net 用低耦合层、NDR(与 D4 串扰 协同);
- useful skew:让 capture 时钟有意晚到一点借时间(D3),不增数据路径,但会把压力传给下游、对 hold 敏感,必须多角认可;
- 重摆/重布局部:把关键链单元摆近、缩短飞线;
- 回 RTL/架构:插流水级、重排关键运算、降频——面性塌方(WNS 小但 TNS 巨大)只能靠这层(C3 QoR 决策)。
原则:先用扰动小、可逆的(sizing/Vt),再用加 buffer、useful skew,最后才动结构;并且每一步都在多角下评估,别单角最优。
三、多角(MMMC)同时收敛
单角收绿没有意义——芯片要在所有签核角下工作(见 E2 MMMC)。工具在 postroute ECO 时同时看多个 scenario:
- setup 看慢角(ss/低压/不利温度 + 大延迟 RC),hold 看快角(ff/高压/小延迟 RC);
- 一个修复不能在 A 角变好、B 角变坏:工具做多角共同优化,选对所有角都不恶化的方案;
- OCV/AOCV/POCV 降额与 CRPR 要和签核口径一致,否则「实现绿、签核红」(D3、E1)。
四、设计规则与非时序违例不能欠账
收敛时序的同时必须保持电气/物理规则干净,否则后布线寄生放大后更难收:
max_capacitance / max_fanout / max_transition:sizing/加 buffer 后要复查,强驱动长 net 反而可能 cap 超限;- 时钟相关 ECO(动到时钟路径)必须回 CTS/时钟 ECO 流程,不能在数据 ECO 里乱改时钟树;
- 物理 DRC、拥塞不能为救时序被牺牲到签核不过(D4)。
五、可布线性(routability):最好的收敛是早期预防
postroute 苦苦 ECO 的违例,很多在 floorplan/place 期就注定了。routability-driven 的早期动作:
- floorplan 控利用率、宏留 halo、按数据流摆宏(D2);
- place 阶段就开拥塞驱动(congestion-driven)而不是只看线长,避免 place「时序绿但布不通」;
- CTS 预留时钟通道与 spare cell(给 ECO 和 post-mask 留弹性,见 E5 metal ECO);
- 早期用全局布线拥塞图(D4)而不是只看估计线延迟决策。
六、工具内绿 ≠ 签核绿:交接纪律
P&R 内置时序引擎用的寄生精度、降额模型、串扰口径通常比黄金签核工具略乐观/略有差异。postroute 在工具里收敛后,要:
- 导出最终网表 + 签核精度 SPEF(不是工具内部估计)+ SDC,交 PrimeTime/Tempus;
- 用 PT-ECO/Tempus ECO 在黄金引擎里生成最终时序修复指令,再反标回 P&R 落地、重提 SPEF(E5 闭环);
- 反复直到黄金签核在所有 scenario 零 setup/hold 负 slack、无未约束端点,才进入流片签字。
所以 D5 的「收敛」是把设计推到可交付给签核引擎的状态,真正的裁判永远是独立黄金 STA。
相关与延伸
- 同线:D1 Innovus、D2 Floorplan、D3 CTS、D4 布线违例。
- 签核:E1 黄金 STA、E2 MMMC、E5 收口 ECO。
- 设计侧:时序收敛手法、物理 ECO 案例、MMMC 高级 STA。
总结
P&R 内收敛要严格按先 setup 后 hold 推进,因为救 setup 的 sizing、加缓冲和重布线会改变路径延迟、可能动到 hold,而 hold 靠终点前插延迟单元修复、改动局部不缩短路径,放最后才不返工;修复手段按 sizing/Vt 互换、buffer、NDR、useful skew、局部重摆、回 RTL 打拍的代价由小到大选用,且每一步都必须在 setup 慢角、hold 快角的多 MMMC 场景下共同优化、降额与 CRPR 对齐签核口径,同时不欠 max_cap/fanout、不牺牲可布线性;最高明的收敛是在 floorplan/place 阶段用拥塞驱动和全局布线热图做早期预防,最后必须把最终网表加签核精度 SPEF 交独立黄金引擎、用 PT/Tempus-ECO 反标迭代——工具内的绿只是「可交付」,黄金 STA 多角零违例才是真的收敛。