物理综合与布局深入
更新时间:2026-09-25。先进节点常说一句话「timing is placement」——到布线阶段才暴露的时序和 DRC 问题,绝大多数在布局阶段就已经注定。本篇接着 寄生参数提取 讲:当互连 RC 成为延迟主体后,综合工具为什么必须一边优化逻辑、一边在脑子里摆布局。
本文要回答的问题
- 逻辑综合和物理综合到底差在哪?为什么 wireload model 时代的方法在深亚微米以后会系统性失准?
- 物理综合怎样在没有真实版图时估算线长?虚拟布局、零连接互连模型各自解决什么问题?
- 拥塞(congestion)地图是怎么算出来的,它为什么能提前预测几个小时后布线器会不会失败?
- 合法化(legalization)在做什么?为什么一次「把单元推到格点上」的小动作可能毁掉前面攒下的时序?
- utilization、pin density、宏模块通道这些物理量,分别会以什么方式在签核阶段反扑?
- floorplan 和宏位置为什么被称为「一次性决定」,物理综合能在多大程度上挽救一个糟糕的平面规划?
一、从逻辑综合到物理综合:延迟的重心搬到了线上
早期工艺(约 0.25μm 以上)里,门延迟占路径总延迟的八九成,连线又短、耦合又弱。综合工具只要把 RTL 翻译成门、做逻辑优化和映射,再用一个统计性的 wireload model(按 fanout 查表给出「这根线大概多长、挂多少电容」)估算互连,结果和最终版图的差距可以接受。这套流程里,综合和布局布线是两个串行、彼此只通过网表打交道的阶段。
进入深亚微米以后,门延迟随工艺缩小快速下降,互连 RC 却因为线更细、更长、耦合更强而相对上升。到 0.18μm 以下,关键路径上互连延迟开始与门延迟持平甚至反超;到先进节点,一根跨越多个 placement row 的长线,其延迟可能比路径上所有门加起来还大。这时 wireload model 的统计假设崩了:它只看 fanout,不知道两个单元实际相隔多远,而同样驱动 4 个负载,紧挨在一起和散布在芯片四角,线长能差几十倍。综合按「线很短」选出的电路,到 P&R 里发现全是长线,于是大量插 buffer、仍然时序违规,不得不回头重做——典型的 综合—布线迭代不收敛。
物理综合(physical synthesis)的核心改动,就是把布局信息提前拉进综合内部循环:工具在做逻辑优化、门尺寸调整、缓冲插入的同时,维护一个不断细化的粗略/虚拟布局,每个单元大致在哪、线大概多长,都基于真实坐标估算,而不是查 fanout 表。优化和布局交替进行:一次布局给出线长与 RC,时序据此更新,再驱动下一轮换尺寸、移动单元、插缓冲。这样交出的网表,本身就是「按它将来真实摆放的样子」优化出来的,与下游 P&R 的落差大幅缩小。
| 对比项 | 逻辑综合(wireload) | 物理综合 |
|---|---|---|
| 互连估算 | 按 fanout 查表,统计假设 | 基于虚拟布局的坐标与线长 |
| 优化对象 | 主要是门/逻辑级 | 逻辑 + 布局 + 缓冲联合优化 |
| 关键延迟来源 | 门延迟主导 | 互连 RC 主导 |
| 与 P&R 的关系 | 串行,靠网表交接 | 内部含布局循环,交接落差小 |
| 典型风险 | 综合—布线反复迭代 | 计算量大、依赖 floorplan 质量 |
| 适用工艺 | 约 0.18μm 以上 | 0.18μm 以下,先进节点必需 |
需要强调:物理综合不是「先综合再快速布局」的简单拼接,而是把布局变成优化内核里的一等公民。判断一份网表是不是真正物理综合产物,一个实用信号是看它的缓冲结构——物理综合插入的 buffer 往往贴着长线的中继位置分布,而 wireload 网表里的 buffer 数量与位置常常和真实线长对不上。
二、虚拟布局与零连接互连:没有金属时怎么估 RC
物理综合面对的是一个看似矛盾的处境:优化需要准确的线长和延迟,但准确线长要等布线,布线又要等网表定稿。它的办法是用一系列逐级精化的估计模型把这个先有鸡还是先有蛋的问题剪开。
第一层是虚拟布局(virtual placement):工具把当前网表的单元做一次快速、不追求合法化的摆放,得到每个单元的近似坐标。这一步不画金属,只求几何上合理——让有连接关系的单元倾向于靠近、把数据通路沿某个方向铺开。有了坐标,就能用半周长线长(HPWL,bounding box 的半周长)等方法估算每根网线的长度,再换算成电容电阻。
第二层是互连延迟模型的演进。早期的 零连接互连模型(zero-interconnect-load 或理想线模型) 干脆假设线没有延迟,只用来推演逻辑;它快但完全忽略互连。物理综合实际采用的是介于两者之间的做法:用虚拟布局线长配合简化的 Elmore / 矩量延迟模型,先不考虑详细的屏蔽和邻近耦合,得到「够不够用」的一阶 RC;随着布局细化,再换成更精确的拓扑(如 Steiner 树)甚至带耦合的估计。
第三层是缓冲估计。长线在先进节点必须靠插 buffer 切成若干段才能控制延迟(这就是所谓 repeater insertion),而最优缓冲数量和位置直接取决于线长。物理综合在虚拟布局上就能判断「这条预估 1200μm 的线大约需要 3 级中继」,于是提前把 buffer 纳入网表与布局,避免布线后才发现线太长、补插又无处可放。
这三层叠起来的意义在于:每一次逻辑决策(要不要 retime、要不要把两输入门换成更大驱动、要不要复制一个高扇出驱动器)都立刻能在近似坐标和近似 RC 上看到时序后果。误差仍然存在,但它是「可以随迭代收敛的误差」,而不是 wireload 那种方向性的系统偏差。进入 P&R 后工具还会做一次更物理的优化,本质上是同一个「布局—时序—缓冲」循环在更高保真度上的延续。
三、拥塞驱动:在没有一根金属时预测布线会不会爆
布局阶段最容易被新手忽视、却最能决定成败的量是拥塞(congestion)。它回答的问题不是「线长不长」,而是「将来这么多线挤过这块区域,布线轨道够不够」。一个时序看起来很好、单元也排得整齐的布局,可能因为某条通道要穿过的网线远超轨道容量,在详细布线阶段变成大量 DRC 和 rip-up/reroute,甚至根本布不通。
物理综合把芯片划分成规则的小格(gcell / global routing bin),对每个格子估算两件事:需求是基于当前虚拟布线(global route)穿过该格边界的网线数量,供给是该方向上可用的布线轨道数(受金属层数、轨道间距、blockage、宏单元引脚影响)。需求超过供给的格子就在拥塞热图上标红。工具据此做拥塞驱动的布局调整:把产生过多连线的单元从热点挪开、在宏模块之间留出更宽的通道、降低局部利用率,甚至在逻辑上复制驱动器以分担扇出。
拥塞预测之所以有效,是因为它捕捉的是拓扑而非最终几何:哪怕详细布线还没做,「有多少线必须从 A 区跨到 B 区」在布局确定后就基本定死了。图中的循环正是物理综合和现代布局器的内核——先估穿线,再对着热点调整,反复几轮直到热图上没有连片的红。读到热图时要区分两类问题:全局拥塞说明整片利用率或宏规划不现实,光靠挪单元救不回来;局部热点往往是某个高扇出网络或宏引脚堆在一处,可以定向处理。
与拥塞相关但更细的物理量是 pin density(引脚密度)。拥塞看的是走线轨道,pin density 看的是局部单元引脚的密集程度。即使轨道够,一个区域引脚过密也会让详细布线在穿孔(via)层无洞可下、或让局部可布线性骤降。数据通路、跨时钟域握手、重复器阵列都是常见的 pin 热点。物理综合会把 pin density 作为仅次于拥塞的放置约束,避免出现「线能走、但找不到洞连进单元」的局面。
四、合法化:把单元放到格点上,且尽量不扰动
物理综合和布局器内部的单元位置一开始是连续、重叠、悬空的——只是为估线长服务的「草稿坐标」。真正能交给详细布线的布局必须满足制造厂的物理约束:每个标准单元要严格对齐到放置 site(横向等距格点)、落在 row(单元行)内、互不重叠、不压住 blockage。把草稿布局变成满足这些硬约束的布局,这一步就是合法化(legalization)。
合法化通常分两段。先是 global placement(全局布局),允许单元暂时重叠,目标是把时序、线长、拥塞的整体形态优化到最好;再是合法化,用尽量小的位移把每个单元「吸」到最近的合法位置。听起来只是平移,实际很棘手:把一堆单元往有限的空行里塞,必然相互推挤,一次合法化可能让某个关键单元被推出几百微米,原本贴着它放的中继 buffer 全错位,时序立刻恶化。因此先进流程不是「优化一次再合法化一次」,而是合法化后重新跑时序、再做增量优化,多轮收敛。
合法化之后还有 detailed placement(详细布局)阶段,做局部精修:交换相邻单元、沿行平移、把同一条路径上的单元拉得更紧,在保持合法的前提下挤出线长和时序余量。整个过程的约束可以概括成下面的关系。
评估一次布局质量,不能只看合法化后「是否全部变绿」,而要看合法化引入的位移扰动有多大。如果工具为了合法化把大量单元做了长距离搬运,说明前面的全局布局给的密度分布不现实(典型是局部利用率顶到 90% 以上),后面时序多半要返工。把 utilization 控制在工具留有余地的水平,本质上是在给合法化留「不推挤关键单元」的自由度——这也直接关系到后面 ECO 有没有插单元的空位。
五、utilization 与 ECO 空间:现在排得越满,后面越被动
**utilization(利用率)**指标准单元面积占可放置面积的比例。它是 floorplan 阶段就要定、并贯穿布局的一个旋钮。直觉上「排满点、芯片小点」似乎划算,但物理上存在明显的边际代价:
- 利用率越高,合法化越靠强推挤完成,关键单元更易被推远,时序更差;
- 拥塞和 pin density 随密度非线性上升,七八十 percent 还可控,过了某个阈值布线难度陡增;
- 最现实的一条:后期 ECO(见 物理 ECO)需要插 buffer、换大单元,这些动作都要就近的空位。一个利用率 85% 以上的 block,签核阶段往往找不到能插单元的合法位置,只能大动布局,metal-only ECO 也无从谈起。
所以成熟团队会给不同性质的模块定不同的目标利用率:纯随机逻辑可以高一些,拥塞敏感、预计要反复 ECO 的关键模块刻意压低,并显式放置一批 spare cell(备用单元),供后期只改金属连线的 metal-only ECO 使用。把「现在省的面积」和「后面失去的收敛自由度」放在一起权衡,而不是单看面积数字,是这一节最重要的判断。
六、floorplan 与宏模块:物理综合救不回的「一次性决定」
物理综合再强,也是在给定的 floorplan 里跳舞。floorplan 决定芯片尺寸、宏模块(SRAM、PHY、硬核)的位置与朝向、电源网络、IO 与主要数据通道。其中宏模块摆放几乎是「一次性决定」:它们体积大、不能像标准单元那样自由滑动,位置一旦定下,所有挂在宏上的逻辑都得围着它排,拥塞通道和长线走向随之锁定。
好的宏摆放遵循数据流:让有大量数据交换的宏彼此靠近、按管线方向依次排开,使中间的随机逻辑带是连续、宽度合理的一条带;宏的引脚朝向通道,而不是背对或互相顶住。坏的宏摆放只看面积塞得下不管连接,常见后果是宏围成死角、唯一的通道被迫穿过整个芯片,物理综合无论怎么优化标准单元,跨宏的长线和那条堵死的通道都消除不掉——这属于 floorplan 级缺陷,必须回到平面规划层面解决。
物理综合与 floorplan 之间是双向但不对称的关系:工具能在好 floorplan 里把时序和可布线性收敛得很干净,也能对轻微的宏位置问题通过缓冲和局部调整缓解;但它改变不了宏的坐标和电源网络。因此实践中 floorplan 往往要先做几轮「试布局」,用物理综合快速跑一遍、看热图和长线,再回头调宏位置,确认 floorplan 本身可收敛后才进入完整优化。把问题挡在 floorplan 阶段,比让它一路拖到 signoff 便宜得多。
七、交接与迭代:从物理综合到 P&R 再到 signoff
物理综合产出的不是「最终答案」,而是一份带高质量布局起点的网表与约束。下游 P&R 会用更精确的 RC、时钟树(见 CTS)和详细布线继续优化,signoff STA 再用最终 SPEF 和 MMMC 场景做裁决。这条链路的迭代成本随阶段指数上升,所以物理综合阶段的目标不是追求单点最优,而是把方向性错误消灭干净:
- 时序上,确认关键路径在多个角下都有余量,而不是只在一个乐观角收敛;
- 物理上,确认拥塞热图、pin density、利用率没有结构性热点;
- 交接上,确认例外约束、generated clock、宏边界约束完整可追溯,避免下游因为约束理解偏差而白跑。
一个常见反模式是「物理综合看着过了就直接往下推」,到 signoff 才发现在某个慢角加 SI 的组合下大面积违规。原因往往是综合阶段用的 RC 估计过于乐观、或没有看足够的场景。正确做法是在物理综合阶段就用接近签核的角和 derate(见 OCV/AOCV/POCV)做交叉检查,让「过」的定义与签核口径对齐。
| 阶段 | 主要保真度 | 此阶段必须消灭的问题 |
|---|---|---|
| 虚拟布局/物理综合 | 估计线长、近似 RC | 长线、缓冲缺失、明显拥塞、方向错误 |
| 合法化/详细布局 | 真实坐标、行/格点约束 | 重叠、密度热点、关键单元位移 |
| P&R(CTS/布线) | 真实时钟、详细 RC | 时钟偏斜、可布线性、局部 SI |
| signoff STA/SI | 最终 SPEF、MMMC | 角点违规、串扰 delta delay |
常见坑
- 只看面积不看数据流地摆宏:宏塞下了,跨宏长线和死角通道却在 floorplan 就锁死,物理综合救不回来。
- 把利用率拉到极限:合法化靠强推挤、关键单元被推远,且签核 ECO 找不到空位,等于预支了后面所有自由度。
- 忽视 pin density 局部热点:轨道够但找不到穿孔连进单元,详细布线阶段才爆。
- 「综合过了」用的是乐观角:没按接近签核的角和 derate 检查,到 MMMC signoff 大面积返工。
- 只看合法化是否全绿、不看位移扰动:长距离搬运后的合法布局时序早已面目全非。
- 不留 spare cell / ECO 通道:后期被迫从 metal-only ECO 升级为重做布局,改动成本陡增。
这一篇在知识体系里的位置
本篇位于物理实现链路中段:上承把互连变成延迟主体的 寄生 RC 提取,向下直接对接 全局布线与 DFM 与 CTS;布局阶段留下的时序债要靠 物理 ECO 偿还,而最终是否收敛由 MMMC STA 按 OCV/AOCV/POCV 口径裁决。把这些环节连起来看,物理综合的价值就是用最高性价比的估计,把「注定不收敛」的设计挡在最贵的阶段之前。
总结
先进节点互连 RC 主导延迟,wireload 只看 fanout 的统计估算会系统性失准,物理综合因此把虚拟布局、线长估计和缓冲插入放进同一个优化内核,让每个逻辑决策都基于「它将来真实摆放的样子」;它用 gcell 穿线需求对轨道供给生成拥塞热图、用 pin density 与 utilization 守住可布线性,并通过合法化把草稿坐标变成对齐 site/row 的合法布局且尽量少推挤关键单元。floorplan 和宏位置按数据流一次性锁定了长线与通道,物理综合救不回违背数据流的平面规划;越往后迭代越贵,所以这一阶段的真正目标不是单点时序最优,而是用接近签核的角把方向性错误、拥塞热点和 ECO 空间问题提前消灭,为布线和 signoff 的一次收敛铺好底。