本节摘要:收敛的第一战场不在布线后,而在综合与布局:约束驱动映射、时序驱动摆放、优化引擎的尺寸调整与缓冲插入都在这里发生。本节讲清各阶段引擎的职责与精度边界,并解释为什么"越早越便宜"是收敛工程的第一原则。
某个周五下午,项目例会上的争议很典型:综合报告说 WNS 为负 0.05,后端要求前端改 RTL,前端反问为什么不能布线后再修。答案藏在精度与成本的乘法里——综合阶段的估算粗糙,负 0.05 可能是虚惊;但一旦拖到布线后,同样的 0.05 可能意味着动金属层与重跑验证。本节的任务是把各阶段的"能看见什么、能改什么"讲清楚,让你有能力判断一个违例应该死在哪个阶段。
逻辑综合把 RTL 映射为门级网表,时序驱动体现在三处。映射选择:同一个布尔功能有多种门的组合(两级 NAND 还是 AND-OR 链、X1 还是 X4 驱动),综合器按约束的松紧分配——紧路径上给强单元、浅逻辑,松路径上给省电的小单元。结构决策:寄存器重定时(跨组合级移动寄存器位置)、逻辑复制(高扇出信号克隆多份驱动)、操作平衡(加法树改华莱士树)这类改变网表结构的优化,只有综合阶段做才是"免费的"。约束兑现检查:综合后的时序报告虽然基于估算线长,但"约束本身写错"(第四章)会在这里原形毕露——估算阶段就大面积负 slack 的设计,布线后只会更糟。
综合引擎的优化循环值得看一眼原始形态(各家工具语法不同,逻辑一致):
compile_ultra -timing_high_effort_sync ;# 时序优先模式 # 引擎内部反复执行: # 1. 全量时序更新(估算线长的 STA) # 2. 找违例路径 → 选手段(改尺寸/加缓冲/重定时/改映射) # 3. 应用修改 → 回到 1,直到 WNS/TNS 达标或手段用尽
布局把单元摆到版图上,时序驱动体现在关键路径的单元被拉近、高扇出网络被展开(复制驱动单元、分配负载簇)。布局后的估算精度已经接近布线的八九成——这是"布局后修正"优于"布线后修正"的原因:此时改位置还很容易,布完线再改位置就要动绕线。时钟树综合(CTS)单独成阶段,它按偏斜目标在时钟网络上插缓冲树,1.3 说的"预 CTS 偏斜预算可回收"就发生在这一步之后:真实偏斜已知,时钟不确定度里的预算项可以回收,建立账整体放松一截。
布线后优化是前段手段的收尾:绕线工具知道真实线长后,做最后一轮 buffer 插入、尺寸调整与层提升(关键网挪高层金属,3.2 的账)。此阶段的手段与 ECO 高度重叠,差别在量级:布线后优化动几十上百条路径,ECO 只动个位数。
| 阶段 | 线长信息 | 可用手段 | 改动成本 | 典型精度偏差 |
|---|---|---|---|---|
| 综合 | 估算(扇出/距离模型) | 映射、重定时、逻辑复制、尺寸 | 最低(重跑综合) | 一至三成 |
| 布局 | 坐标估算 | 位置调整、局部复制、预布线优化 | 低 | 一成上下 |
| 时钟树 | 时钟网真实化 | 偏斜平衡、不确定度回收 | 低 | 时钟账精确化 |
| 布线后 | 真实绕线 | buffer、尺寸、层提升 | 中 | 接近签核值 |
| ECO | 签核级 | 最小修改集 | 高(验证回跑) | 签核级 |
读表的方法:精度偏差列与改动成本列的乘积,就是"拖到这个阶段才修"的总代价。收敛管理的核心指标因此不是某一次报告的 WNS,而是违例消除的阶段分布——好项目的违例在综合与布局阶段就基本清零,布线后只剩零星收尾;坏项目的违例一路滚到 ECO,团队整月耗在验证回跑上。
前段优化最大的敌人不是某个违例,而是估算与现实的系统性偏差。偏差有方向性:综合工具的线负载假设偏乐观时,布线后所有长线路径集体恶化 10% 到 20%。对付它有成熟的机制——偏差回灌:每个阶段存档的 QoR 快照(6.1 提过的杠杆)在下一阶段对比后,把观测到的偏差按路径类别折算成预算修正,写回综合约束(例如对跨模块路径统一收紧 0.1ns)。两三轮迭代后,综合阶段的数字就具备了预测力。这套机制的成本几乎为零,却是"布线后惊喜"的唯一系统性解药——单靠布线后优化,永远在追赶而不是领先。
想少在布线后修,前段有三个杠杆。约束质量杠杆:set_max_transition 与 set_max_fanout 这类护栏在综合阶段就阻止翻转率恶化(3.1 的链条),比布线后补救便宜一个量级。QoR 快照杠杆:每个阶段存档时序快照(WNS、TNS、违例端点数、关键路径列表),阶段间对比能提前暴露"估算与现实的系统性偏差",比如某类路径布线后总是恶化 15%,那就在综合阶段给它多留 15% 预算。RTL 合作杠杆:结构性问题(超深组合链、跨模块长路径)只能靠改 RTL 解决,后端工程师要能把瓶颈翻译成前端听得懂的语言——"这两级之间隔了九级逻辑,能不能插一级寄存器"比"帮我修时序"有效得多。
把"越早越便宜"落成制度,靠的是阶段门禁:综合出网表的准入条件、布局交布线的准入条件,白纸黑字。最小配置四条:综合阶段 check_timing 零残留且估算 WNS 不差于周期的一成——低于此线的网表不进布局;布局阶段估算偏差按类别回灌完成且关键路径级数分布无异常值;CTS 完成后时钟树的偏斜与插入延迟落在预算内,不确定度的预 CTS 项按实测回收;布线后全量 STA 的保持违例必须当轮清零——保持修复拖到 ECO 是最贵的浪费。门禁的价值不在挡人,在把"这个阶段该干的活"变成显式契约,返工的责任边界随之清晰。
前段手段用尽仍有残余违例,就进入布线后的精细修复与 ECO。下一节先看 ECO 的流程纪律——签核前夜的每一刀都要又准又小。