1. 课程导入与拥塞问题全景
数字后端物理设计的目标,是把综合后的门级网表变成可制造的 GDSII 版图,并在满足时序、功耗、面积、可制造性等约束的前提下完成签核。整个流程通常包括布图规划(Floorplan)、电源规划(Power Plan)、布局(Placement)、时钟树综合(CTS)、布线(Routing)、寄生参数提取与签核(STA/PV)。拥塞(Congestion)并不是某一个阶段才出现的问题,而是贯穿这条链路、并在布线阶段集中爆发的结构性矛盾。理解拥塞,本质上就是理解"有限的布线资源"与"不断增长的互连需求"之间的冲突。
拥塞从哪里来
布线资源由工艺决定。以常见的 7nm 工艺为例,金属层 M1 到 M4 通常为细线层,布线间距(Pitch)较小,M5 以上为粗线层,Pitch 明显增大。假设某设计标准单元行高为 0.72μm,M2 的水平布线轨道 Pitch 为 0.064μm,那么一个单元行高度内大约只能容纳 11 条 M2 水平轨道。当局部区域的标准单元密度超过 85%,而该区域又需要大量 M2 水平走线时,轨道需求就会超过供给,形成局部拥塞。
拥塞的来源可以归纳为几类:一是单元密度过高,尤其是高引脚数单元(如多路选择器、加法器、时钟门控单元)集中摆放;二是引脚密度(Pin Density)过大,标准单元引脚本身就要占用 M1/M2 资源;三是宏单元(Macro)形成的窄通道,通道内可用轨道数骤减;四是时钟树、电源网格等全局网络对特定层的占用;五是高层金属被大量用于长距离互连后,细线层被迫承担更多局部连接。这些因素往往叠加出现,因此拥塞很少是单一原因造成的。
拥塞的影响与优化目标
拥塞的直接后果是布线器无法在给定区域内完成所有连接,出现 DRC 违例、绕线(Detour)增加、线长变长,进而导致时序恶化、功耗上升。更隐蔽的影响是:布线器为了绕开拥塞区域,会把走线推到更远的层或更远的路径,造成局部热点(Hotspot)和串扰风险。如果拥塞在布线阶段才暴露,返工成本极高——可能需要重新布局、重新做时钟树,甚至重新规划电源网络。
因此,拥塞优化的目标不是"把拥塞数字降到零",而是在设计早期就识别拥塞风险,通过布局阶段的合理干预,把拥塞控制在布线器可解的范围内。一个可参考的量化目标是:在全局布线(Global Route)阶段,将 Overflow 控制在总轨道数的 1% 以内,且不出现连续超过 3 个 GCell 的拥塞带。这个目标需要在布局阶段就通过拥塞分析来逼近。
Innovus 在流程中的角色
Cadence Innovus 是数字后端实现的核心工具,它把布图规划、布局、CTS、布线、签核整合在统一的数据模型和引擎中。在拥塞分析与布线优化方面,Innovus 提供了几个关键能力:早期全局布线引擎(Early Global Route)可以在布局阶段快速评估拥塞;拥塞地图(Congestion Map)以 GCell 为单位显示 Overflow;布局阶段的拥塞驱动优化(Congestion-Driven Placement)会主动把高引脚密度单元分散开;布线阶段的 NanoRoute 引擎支持多层同时优化和 DRC 修复。
下面这张图展示了从网表到 GDSII 的全局视角,以及拥塞问题在流程中的产生位置和 Innovus 的介入点。图中把流程分为输入、实现、输出三段,并标出了拥塞风险最高的三个环节:布局密度、宏单元通道、全局布线。
一个可操作的观察视角
在项目初期,可以用一个简单的检查来判断拥塞风险:在完成初步布局后,运行 globalRoute 或 routeEarly,然后打开 Congestion Map,观察 Overflow 的分布。如果 Overflow 集中在某个宏单元周围的窄通道,说明通道宽度不足,需要调整 Floorplan 或宏单元朝向;如果 Overflow 分散在多个高密度区域,说明布局密度需要降低,可以通过 setPlaceMode -congEffort high 或增加单元间距来缓解;如果 Overflow 集中在某个模块的边界,可能是引脚密度过高,需要检查该模块的引脚分布或考虑引脚优化。
reportCongestion 查看全局拥塞统计,gui_open_congestion_map 打开可视化地图,setPlaceMode -congEffort high 提高布局阶段的拥塞优化力度。建议在布局完成后、CTS 之前就做一次拥塞评估,而不是等到布线阶段才发现问题。
本课程的组织方式
后续章节会沿着"分析—定位—优化—验证"的路径展开。我们会先讲清楚 Innovus 中拥塞数据的来源和含义,再讲如何通过 Floorplan 和 Placement 阶段的参数调整来预防拥塞,然后进入布线阶段的 NanoRoute 优化策略,最后讨论如何用 Overflow、DRC、时序等指标判断优化是否有效。每一章都会尽量给出可执行的命令、可观察的参数和可判断的结果,帮助你把拥塞分析从"看报告"变成"做决策"。
需要强调的是,拥塞优化没有万能参数。不同的设计规模、工艺节点、单元库和约束条件,对应的最优策略可能完全不同。本课程提供的是分析框架和操作路径,具体的参数取值需要结合项目实际情况调整。在后续的示例中,我们会给出一些合理的假设参数(如 GCell 尺寸、Overflow 阈值、密度目标),这些参数仅用于说明方法,不代表任何特定项目的实测结果。