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 规则上,而不是全局资源不足。

拥塞指标关系与报告解读路径 从全局预估到详细违例,逐层定位拥塞根因 全局布线阶段 Gcell 粒度资源估算 • overflow_h / overflow_v • congestion map 热力图 • hotspot 聚类标记 详细布线阶段 track 级实际分配 • short / open • spacing / via violation • pin access violation 核心度量指标 overflow = demand − supply max overflow / total overflow overflow Gcell 占比 hotspot 数量与分布 判断逻辑 全局 overflow 高 → 优先检查 floorplan / macro channel / power mesh 全局 overflow 低但 detail violation 多 → 检查 pin access / track 对齐 / via 规则 Innovus 报告命令速查 reportCongestion -summary | reportCongestion -overflow | reportCongestion -hotspot | reportCongestion -congestionMap verifyRoute -detail | reportRoute -violation | checkPlace -congestion 全局预估 量化指标 实际违例

五、报告解读的实操顺序

拿到一份拥塞报告后,建议按以下顺序阅读,避免被局部数字带偏:

  1. 先看 summary:total overflow、max overflow、overflow Gcell 数量、hotspot 数量。若 total overflow 为 0,可直接进入详细布线检查;若不为 0,记录量级。
  2. 再看 congestion map:确认红色区域是条带、块状还是放射状,并与 cell density map 叠加对比。
  3. 定位 hotspot 列表:按 overflow 从大到小排序,取前 5~10 个,记录坐标、层、关联 net。
  4. 交叉验证 global route 与 detail route:若全局 overflow 高且 detail violation 集中在同一区域,说明是真实资源不足;若两者不一致,重点排查 pin access 和局部规则。
  5. 回到设计对象:把 hotspot 坐标映射到 floorplan 中的 macro、power mesh、IO、时钟树位置,判断是布局问题、电源规划问题还是布线层分配问题。
实用提示:overflow 的数值会随布线迭代变化。建议在 placement 后、CTS 后、global route 后分别保存一份 congestion 报告,对比同一 hotspot 是否持续存在。持续存在的 hotspot 才是真正需要修改 floorplan 或布局的;只在某一阶段出现的 hotspot,可能通过后续优化自动缓解。
常见误区:不要只盯着 max overflow 最大的那个 Gcell。一个 overflow=20 但只涉及 2 根 net 的 Gcell,可能通过局部绕线解决;而一个 overflow=5 但涉及 50 根 net 且位于 macro 通道的 Gcell,往往需要调整 floorplan 才能根治。判断严重程度要同时看 overflow 数值、涉及 net 数量和所在位置。

总结来说,overflow 是量化基础,congestion map 是空间定位,hotspot 是优先级排序,global route congestion 是早期预警,detailed route violation 是最终验证。五者配合使用,才能从“看到红色”走到“知道为什么红、该改哪里”。