3. 拥塞度量指标与报告解读
拥塞分析的核心不是“看一眼热力图”,而是把设计规则违例、布线资源供需关系和工具报告中的数值对应起来。Innovus 在全局布线和详细布线阶段会输出多类拥塞指标,它们描述的是同一物理问题的不同侧面:overflow 回答“资源超了多少”,congestion map 回答“超在哪里”,hotspot 回答“哪里最危险”,global route congestion 回答“全局布线预估是否可行”,detailed route violation 回答“实际布线是否真的失败”。理解这些指标的统计口径和相互关系,才能判断拥塞是局部可修还是全局性资源不足。
一、overflow:拥塞的量化基础
Innovus 将芯片划分为若干全局布线单元(Gcell),每个 Gcell 在水平、垂直方向各有可用的布线轨道数(track)。当某方向的需求量超过供给量时,超出部分即为 overflow:
overflow_h = max(0, demand_h - supply_h)
overflow_v = max(0, demand_v - supply_v)
total_overflow = Σ(overflow_h + overflow_v)
其中 demand 是该 Gcell 内所有 net 的布线需求折算值,supply 是扣除障碍、电源网格、预留轨道后的可用轨道数。overflow 为 0 表示该 Gcell 资源够用;大于 0 表示必须绕行或降级。需要特别注意:overflow 是“超出的轨道数”,不是百分比。一个 overflow=3 的 Gcell 比 overflow=1 的 Gcell 严重三倍,但两者都属于局部拥塞,未必导致布线失败。
Innovus 常用报告命令如下:
reportCongestion -overflow
reportCongestion -hotspot
reportCongestion -congestionMap
reportCongestion -summary
执行 reportCongestion -summary 后,典型输出会给出 total overflow、max overflow、overflow Gcell 数量、hotspot 数量等汇总值。判断时先看 max overflow 和 overflow Gcell 占比:若 max overflow 很大但 Gcell 数量很少,通常是局部结构问题;若 overflow Gcell 占比超过 5%~10%,则更可能是 floorplan 或全局资源分配问题。
二、congestion map:空间分布的可视化
congestion map 把每个 Gcell 的 overflow 或需求/供给比映射为颜色。Innovus GUI 中通常用绿色表示低拥塞、黄色表示中等、红色表示高拥塞、深红或紫色表示严重溢出。读图时不要只看红色区域,还要看红色区域的形状和走向:
- 沿标准单元行方向成条带状红色,多与 pin density 高、cell 摆放过密有关;
- 在宏单元通道处成块状红色,多与 macro channel 宽度不足或 pin 集中有关;
- 在时钟树或高扇出网络附近成放射状红色,多与 net 拓扑和层分配有关;
- 在芯片边缘或电源环附近成环状红色,多与 power mesh 占用轨道有关。
congestion map 的价值在于把 overflow 数值“定位”到具体坐标和层。建议同时打开 congestion map 与 cell density map,若两者红色区域高度重合,说明拥塞主要由标准单元密度驱动;若拥塞红而密度不高,则更可能是 net 分布或 pin 访问问题。
三、hotspot:最需要优先处理的位置
hotspot 是工具根据 overflow 大小、持续范围和布线层综合判定出的“高风险区域”。它通常以矩形框或标记点显示,并附带 overflow 数值、所在层、涉及 net 数等信息。hotspot 与普通 overflow Gcell 的区别在于:hotspot 是经过聚类和优先级排序后的重点区域,更适合作为修复入口。
在 Innovus 中可用 reportCongestion -hotspot 输出 hotspot 列表,典型字段包括 hotspot ID、坐标范围、layer、overflow、demand、supply、关联 net 数量。解读时优先关注:
- overflow 绝对值最大的 hotspot;
- 涉及 net 数量多、且包含时钟或高扇出网络的 hotspot;
- 位于 macro 通道、电源网格边缘或 IO 附近的 hotspot;
- 在多次布线迭代中反复出现的 hotspot。
四、global route congestion 与 detailed route violation
全局布线(global route)阶段,工具用较粗的 Gcell 粒度估算布线可行性,输出的是预估拥塞。此时 overflow 可能偏乐观或偏悲观,因为尚未考虑详细布线中的 DRC、via 规则和 pin access 限制。全局布线报告适合在 floorplan 和 placement 早期快速筛选问题区域。
详细布线(detail route)阶段,工具在 track 级别实际分配线段和 via,输出的是真实违例。detailed route violation 常见类型包括:
- short:不同 net 的线段或 via 在相同 track 上冲突;
- open:net 未完全连通,存在断点;
- spacing violation:线间距小于工艺最小间距;
- via violation:via 阵列或 enclosure 不满足规则;
- pin access violation:标准单元 pin 无法被合法访问。
关键判断逻辑是:global route overflow 高,detail route violation 通常也多;但 global route overflow 低,不代表 detail route 一定干净。如果全局布线报告显示 overflow 很小,而详细布线仍出现大量 short 或 spacing violation,问题往往出在 pin access、局部 track 对齐或 via 规则上,而不是全局资源不足。
五、报告解读的实操顺序
拿到一份拥塞报告后,建议按以下顺序阅读,避免被局部数字带偏:
- 先看 summary:total overflow、max overflow、overflow Gcell 数量、hotspot 数量。若 total overflow 为 0,可直接进入详细布线检查;若不为 0,记录量级。
- 再看 congestion map:确认红色区域是条带、块状还是放射状,并与 cell density map 叠加对比。
- 定位 hotspot 列表:按 overflow 从大到小排序,取前 5~10 个,记录坐标、层、关联 net。
- 交叉验证 global route 与 detail route:若全局 overflow 高且 detail violation 集中在同一区域,说明是真实资源不足;若两者不一致,重点排查 pin access 和局部规则。
- 回到设计对象:把 hotspot 坐标映射到 floorplan 中的 macro、power mesh、IO、时钟树位置,判断是布局问题、电源规划问题还是布线层分配问题。
总结来说,overflow 是量化基础,congestion map 是空间定位,hotspot 是优先级排序,global route congestion 是早期预警,detailed route violation 是最终验证。五者配合使用,才能从“看到红色”走到“知道为什么红、该改哪里”。