布局布线 P&R 入门:place → CTS → route 三步到底在干什么
更新时间:2026-09-05。本文是「集成电路大类 · 芯片设计」**入门层(beginner)**第十四篇新正文。布局规划 划好了大格局(macro 靠边、core 区、电源网格),但成千上万个标准单元还没摆到具体位置、引脚之间也还没连线。把网表真正「落成」硅片上几何图形的核心步骤就是 P&R(Place & Route,布局布线)。系统流程见 物理实现上手,做完后的时序检查见 静态时序分析入门。
本文要回答的问题
- P&R 具体分哪几步?每步在干什么?
- 「布局」和「布线」为什么要分开?时钟为什么要单独搞一棵树?
- 工具怎么决定一个门摆哪里、一根线怎么走?
- P&R 做完输出什么?离流片还有多远?
一、总览:三步走
二、① 布局(placement):给每个门一个坐标
布局要把网表里每一个标准单元放到 core 区的具体位置(floorplan 只定了 macro 和大区,没定小门)。目标有几个互相拉扯的维度:
- 时序:有关键时序关系的单元摆近一点,缩短连线(连线越长延迟越大,见 时序为什么不满足);
- 布线拥塞(congestion):别把单元堆到某处导致线走不出去;
- 功耗/散热:高翻转单元别挤成热点。
工具用算法(近似优化)反复迭代:先粗摆、再根据估算的线长和时序微调。布局结果直接决定了后面 CTS 和 routing 的质量——这和 floorplan 一脉相承,都是「位置决定时序」。
三、② 时钟树综合(CTS):让时钟「同时」到达
时钟是特殊信号:它要接到每一个触发器,而且要求大家几乎同时收到时钟沿(偏差 clock skew 要小,见 时钟与复位)。
如果时钟从一个点直接拉到成千上万个触发器,近处先到、远处后到,偏差巨大。CTS 的做法是搭一棵平衡的树:时钟源经过一层层缓冲器(buffer)分叉,像二叉树一样均匀扩散到所有触发器,并让每条路径长度尽量相等。这样时钟沿像广播一样「齐步走」到达。CTS 通常在布局之后、普通信号布线之前做,因为时钟优先级高、要占好资源。
四、③ 布线(routing):用多层金属把线真正连上
布局定了「门在哪」,布线要定「每根连线走哪条金属路径」。芯片有多层金属(下层细而密、走短局部线;上层粗、走长距离/电源/时钟),布线工具要:
- 把单元引脚按网表连接关系连起来;
- 遵守设计规则(DRC):线宽、线间距、过孔等不能违反工艺要求,否则工厂造不出来;
- 避开障碍、不串线(不同信号不能短路),还要尽量缩短关键线、降低耦合串扰。
布线分全局布线(先规划大致通道)和详细布线(定到具体金属几何)。布线完成后,电路第一次有了真实的连线寄生参数(电阻电容)。
五、布线之后:提取延迟、STA 签核、出版图
P&R 完成后还没完:
- 参数提取(extraction):从实际金属几何算出每根线的真实 RC 延迟;
- 静态时序分析(STA):用真实延迟检查所有路径是否满足建立/保持时间(见 STA 入门),不满足就回头调布局/布线/缓冲,反复迭代;
- 物理验证:DRC(设计规则)、LVS(版图与原理图一致性)等;
- 出版图数据 GDSII/OASIS,交给 foundry 做光罩、流片(见 GDSII 与版图、tape-out 是什么)。
所以 P&R 不是一次跑完,而是「布局→CTS→布线→提取→STA→不满足再调整」多轮收敛的过程(完整细节见 物理实现上手)。
六、这一篇在知识体系里的位置
- 想先了解摆块、电源网格、利用率这些前置决策 → 布局规划是什么;
- 想知道布线后怎么判断时序过关、setup/hold 是什么 → 时序为什么不满足、静态时序分析入门;
- 想看全流程工具链和后端术语 → 物理实现上手、芯片设计全流程;
- 想知道最终交给工厂的图纸是什么 → GDSII 与版图、tape-out 是什么。
总结
一句话总结:布局布线 P&R 是把门级网表落成硅片几何图形的核心,分三步——布局 placement 给每个标准单元在 core 区定具体坐标、在时序和布线拥塞之间权衡;时钟树综合 CTS 单独搭一棵经缓冲器层层分叉、长度均衡的时钟树,让时钟沿低偏差地同时到达所有触发器;布线 routing 用多层金属(下层密走短线、上层粗走长线/电源/时钟)按网表把引脚连上并严守 DRC 设计规则;布线后提取真实连线 RC 延迟、用 STA 检查 setup/hold,不满足就回头调整,多轮收敛后通过 DRC/LVS 物理验证、出版图 GDSII 交 foundry 流片——P&R 本质是「位置与时序的反复收敛」,而它的上限在很大程度上由前置的 floorplan 决定。