布线拥塞与物理违例:报告怎么读、迭代怎么修(D4)
布线算法原理(迷宫/斯坦纳)在 EDA 算法,阶段流与拥塞早期预算见 D1 Innovus、D2 Floorplan;本篇讲布线后违例报告怎么读、怎么迭代修复。串扰的签核级分析见 crosstalk/SI 签核,foundry deck 的 DRC 签核见 E3 Calibre。
一、布线分两级,违例也分两类
P&R 布线不是一次完成:
- 全局布线(Global Route, GR):不画真实线,只规划每条 net 经过哪些 GCell(网格单元),输出拥塞地图(每个 GCell 需求走线数 vs 可用轨道数);
- 详细布线(Detail Route, DR):在 GR 引导下在具体轨道上画真实金属几何,处理间距、通孔、DRC。
所以问题分两层看:GR 阶段的 overflow 是「能不能布得下」的预测,DR 阶段的 DRC 是「实际几何违不违规」。GR 大片红但 DR 侥幸布完,签核 DRC 也多半要还。

二、拥塞(congestion):先读热图再动手
| 指标 | 含义 | 危险信号 |
|---|---|---|
| overflow | 超容 GCell 数/走线数 | 连续成片、跨多个 GCell |
| overflow 量级 | 超出多少条 | >5%~10% 且集中 |
| 利用率热图 | 各区域轨道占用 | 宏边缘、模块边界深红 |
| 不可布线 net | DR 放弃的线 | 任何一条都必须清 |
拥塞的根因往往不在布线本身,按从局部到根本的顺序排:
- 局部:某些高扇出 net 走太远、buffer 树扎在热点——调 buffer 位置/尺寸、引导绕开;
- 布局:该区域利用率过高、宏 halo 不足把标准单元挤进窄道——局部降 density、加 placement blockage、重摆宏(D2);
- 结构/RTL:大量宽总线横穿、巨型 mux/crossbar、SRAM 端口飞线——这才是真因,要回 RTL 拆 bank、改互连结构、加流水级把长跨接切断(呼应 X1 交接契约 的 floorplan→架构回灌)。
新手最常见错误:一看到拥塞就「开更多布线层 / 让工具再努力点」。层资源是全局的,结构性拥塞靠加层治标不治本,还可能把线绕得更长、时序更差。
三、DRC:short/open/spacing/via/密度
详细布线后 + Calibre 签核会出几何违例,常见族:
| 违例 | 表现 | 常见根因/修法 |
|---|---|---|
| short(短路) | 不同 net 金属/通孔相连 | 轨道争抢、off-grid pin;局部重布、修 pin |
| open(开路) | 同 net 没连上/缺通孔 | DR 没收敛、天线切断后没接回;必须清零 |
| spacing | 同层间距不足 | 拥塞区压线;预留间距、换层 |
| via enclosure/array | 通孔包围不足/电流密度 | 加冗余通孔(redundant via,兼改善 EM/良率) |
| density | 金属填充比例 | metal fill dummy(注意模拟/敏感节点) |
P&R 内置 DRC 是工艺的子集近似,最终一律以 Calibre foundry deck 为准;先进节点的多重曝光 coloring、pinch/bridge 等只能靠签核 deck 抓。
四、天线效应(ANT):制造过程中的损伤
等离子刻蚀长金属时,连在栅氧上的金属像「天线」收集电荷,电压积累可击穿栅氧。违例用连栅金属面积/周长比衡量。修复:
- 跳线(metal jumper):长连栅线在高金属层「跳」一下,刻蚀低层时栅不连着大片金属——布线器可自动插;
- 天线二极管:在栅附近加泄放二极管;
- 缓冲器插入本身也常把长栅连线切断。
天线属签核 deck 强制项(E3),但在 P&R 阶段开启天线避让布线能避免末期大量返工。
五、串扰(SI/crosstalk):布线带来的时序与噪声
相邻平行线通过耦合电容互相影响:翻转的 aggressor 在 victim 上感应毛刺或改变其延迟。布线越密、线间距越小(先进节点)越严重。两类后果:
- 噪声(glitch):静态 victim 被感应出毛刺,若毛刺足够大且被触发器/敏感端捕获 → 功能错误;
- 延迟增量(delta delay):aggressor 与 victim 同向翻转加速、反向翻转减速,可能制造/加剧 setup/hold 违例。
定位与缓解(工具与签核协同):
- 用签核 SI 分析(耦合 SPEF + 同步翻转窗口)找高串扰 net,见 crosstalk SI 签核;
- 物理缓解:加大关键 net 间距(spacing/non-default rule NDR)、加屏蔽(shielding,两侧并地线)、把受害线换到耦合更弱的层、插入缓冲缩短被扰线长;
- 时序缓解:对受扰关键路径做 sizing/buffer,配合 MMMC/SI 签核 用 POCV 统计口径;
- 别全局无脑加间距——那会引爆拥塞,只针对签核认定的少数 aggressor/victim 对。
六、迭代收敛顺序(别乱修)
1) GR 拥塞热图:成片热点先回布局/floorplan,局部点再调 buffer
2) DR:先清零 open/short(正确性),再清 spacing/via
3) ANT:开天线避让,剩余跳线/二极管
4) SI:签核认定的串扰对做间距/屏蔽/换层/sizing
5) 任何改布线 → 重提 SPEF → 重签受影响时序(X3 作废链)
6) 最终全部以 foundry deck + 多角签核为准,P&R 内部结果只用于迭代布线修复永远在和时序、拥塞、面积做三角权衡,单点「加资源」很少是最优;越早(floorplan/RTL)解决结构问题,代价越低。
相关与延伸
- 同线:D1 Innovus、D2 Floorplan、D3 CTS、D5 收敛、E3 Calibre。
- 数据:S4 CTS/布线、S6 物理验证、F2 LEF/DEF。
- 设计侧:crosstalk SI、片上信号完整性。
总结
布线违例要分两级读:全局布线的 GCell overflow 热图回答「布不布得下」,详细布线和 Calibre deck 的 short/open/spacing/via/密度回答「几何合不合规」,P&R 内置 DRC 永远只是近似、最终以 foundry 签核 deck 为准;拥塞修复按局部 buffer→布局降密度重摆宏→回 RTL 拆 bank 切流水的顺序追结构根因,而不是无脑加布线层,open/short 必须清零、冗余通孔兼改善 EM,天线靠跳线或天线二极管泄放刻蚀电荷,串扰则用签核 SI 找定 aggressor/victim 后只对少数线做间距/NDR/屏蔽/换层/sizing;每轮改线都要重提 SPEF 重签时序,并牢记在拥塞、时序、面积的三角权衡里,越早把问题推回 floorplan 和 RTL 代价越低。