P&R 工具怎样摆放和连线:EDA 入门 03
本文承接 从 RTL 到 GDS 的物理实现阶段。概念版 P&R 见 布局布线 P&R 入门,布图规划见 Floorplan 入门;本文聚焦 P&R 工具吃什么、按什么阶段改数据库、失败如何回流。
一、P&R 不是“自动布线按钮”
P&R(Place and Route)工具要在有限芯片面积里同时满足时序、布线拥塞、电源、时钟、信号完整性和制造规则。它操作的是一个不断增加物理信息的数据库,而不是一次性从网表“生成图片”。
| 输入 | 内容 | 缺失/错误的后果 |
|---|---|---|
| 门级网表 | 标准单元、宏单元和连接关系 | unresolved 单元、层次错乱 |
| LEF | 单元尺寸、pin、obstruction、金属方向 | 摆放和接线坐标错误 |
| LIB/MMMC | 多模式多角点时序功耗模型 | 只在单角点假收敛 |
| SDC | 时钟、IO、例外和模式约束 | setup/hold 检查口径错误 |
| DEF/floorplan | die、core、宏、blockage、track | 宏位置和拥塞失控 |
| 技术文件 | 金属层、via、routing rule、天线规则 | DRC 大量违例 |
| 电源意图/UPF | domain、isolation、power switch | 电源域连接和低功耗检查失败 |
输出包括物理数据库、DEF、更新后的网表/SDC、SPEF、GDSII/OASIS 候选版图、时序/拥塞/DRC/功耗报告。
二、物理实现阶段流

- Floorplan:确定 die/core 边界、IO、宏单元、硬 IP、blockage、halo、fence 和利用率。SRAM/PHY 等宏的位置决定数据通路长度、电源压力和布线通道。
- 电源规划:建立 ring、stripe、rail、via 和 power switch 连接。规划太密浪费绕线资源,太疏产生 IR-drop。
- Placement:全局布局先求大致位置,详细布局再合法化到 row/site,同时考虑时序、拥塞和最大转换/负载。
- CTS:插入时钟缓冲/反相器树,平衡 latency/skew,处理时钟门控 ICG、分频时钟和 useful skew。
- Routing:global route 规划通道,detail route 在 track 上画具体金属和 via;随后修短路、开路、间距、天线和拥塞。
- PostRoute:提取真实 SPEF,跑多角点 setup/hold、功耗、IR、DRC/LVS 前置检查,并生成 ECO。
三、为什么每个阶段都要设检查门
P&R 的错误有明显的“放大效应”:placement 阶段挪动一个单元很便宜,route 完再修可能牵动大量金属;宏位置到 postroute 才改,几乎等于重做后端。
| 检查门 | 必看指标 | 不建议带入下一步的情况 |
|---|---|---|
| Floorplan | 宏 pin 方向、通道、利用率、die area | 大宏挡住主干通道、数据路径跨全芯片 |
| Power | stripe 间隔、rail via、电压降预估 | 全局 IR 超预算或电源开关孤岛 |
| Placement | congestion、timing 估计、overflow | 局部拥塞红热、关键路径横跨宏缝隙 |
| CTS | skew、latency、clock DRC、功耗 | 时钟树长且偏斜不可解释 |
| Route | short/open、spacing、antenna、SI | DRC 未收敛或拥塞导致大量 detour |
| PostRoute | setup/hold、SPEF、EM/IR、leakage | 黄金 STA/物理验证还存在未批准违例 |
四、P&R 中最常见的三类“不是后端一个人能修”的问题
1. Floorplan 先天拥塞
如果多个高带宽模块共享同一狭窄通道,或者 SRAM 端口背对数据来源,routing 工具只能绕远线。表现为 global route overflow、长线延迟、同一区域反复 DRC。根治往往要移动宏、调整 pin 方向,甚至改 RTL 数据通路组织。
2. 时钟约束和时钟结构不一致
CTS 看到的时钟根、generated clock、分频关系和 SDC 不一致时,会生成错误平衡域;异步时钟被当成同步时钟平衡,会插入大量无意义缓冲。CTS 后时钟延迟变真实,setup/hold 结果重排是正常现象,但要能解释差异。
3. 电源网络只在最后看
电源条带占用金属资源,IR-drop 又受宏位置和开关活动影响。等 routing 完成才加 stripe,会与信号线抢轨道。成熟流程会在 floorplan 后做早期功耗/电压降估计,并保留足够电源通道。
五、增量 ECO:为什么后端不是每次重来
后端后期发现少量逻辑错误或时序违例,通常走 ECO(Engineering Change Order):
- 功能 ECO:在网表中改少量门连接或 spare cell,重新接局部线;
- 时序 ECO:resize、insert buffer、移动单元、删除多余缓冲;
- 金属 ECO:尽量只改高层金属,利用 spare cell 降低掩模成本。
ECO 后必须重新提取 SPEF、跑 STA/LEC/DRC/LVS。只改网表不更新版图、或只改版图不做等价检查,都会造成数据库不一致。
常见误区
| 误区 | 更准确的理解 |
|---|---|
| P&R 就是自动布线 | 布线只是后半段,floorplan、电源、placement、CTS 决定大部分结果 |
| 利用率越低越好 | 过低会拉长连线、增加功耗和成本;要留 ECO/拥塞余量而非空洞 |
| CTS 后时序变差是工具 bug | 时钟从虚拟模型变成真实树,结果必须重算并收敛 |
| DRC 是最后一键清零 | 天线、间距、密度问题常来自 floorplan 和 routing 结构 |
| P&R 内 timing clean 等于签核 | 还要用认证工具、认证 corner 和 SPEF 做黄金签核 |
总结
P&R 工具把逻辑网表放进由 LEF/DEF 和工艺规则定义的真实坐标系统,在 floorplan、电源、placement、CTS、routing 的每一级数据库中持续权衡时序、拥塞、电源和可制造性,最终吐出可提取 SPEF、可交签核的物理版图。 学好 P&R 的关键不是记某个命令,而是知道每个阶段允许改什么、哪些问题必须退回 floorplan 或 RTL,以及为什么后期只能靠受控 ECO 小步收口。