1. 课程导入与宏单元规划概览

欢迎进入《Innovus宏单元规划与Floorplan》课程。在数字后端实现中,Floorplan(布局规划)是决定芯片能否收敛的第一道关口,而宏单元(Macro)规划又是Floorplan中最具挑战性、最影响后续绕线与时序的部分。很多项目在Place阶段反复迭代却始终无法收敛,根源往往不在工具参数,而在最初宏单元摆放时留下的"结构性缺陷"。本课程的目标,就是让你从"会点工具按钮"进阶到"能预判并控制宏单元布局质量"。

学习目标

完成本课程后,你应当能够:

  • 理解Floorplan在Innovus数字后端流程中的位置,以及它与Place、CTS、Route各阶段的耦合关系;
  • 掌握宏单元规划的核心约束:通道宽度、绕线资源、电源网络、引脚可达性与时序预算;
  • 能够根据设计类型(如SoC、存储密集型、多电压域)选择合适的宏单元摆放策略;
  • 使用Innovus的floorplan、place_opt、create_floorplan等命令完成宏单元初始摆放与评估;
  • 通过拥塞图、时序报告、电源网络检查等手段判断宏单元规划是否合格,并知道如何修正。

Floorplan在Innovus流程中的定位

Innovus的典型数字后端流程可以概括为:导入设计 → Floorplan → Placement → CTS → Routing → 签核。Floorplan处于最前端,它决定了标准单元和宏单元的物理位置、电源网络拓扑、I/O引脚分配以及全局绕线通道。一旦Floorplan定型,后续Place和Route只能在既定框架内优化,无法突破物理边界。因此,Floorplan的质量直接决定了设计的可布线性、时序收敛速度和功耗分布。

在Innovus中,Floorplan阶段通常包含以下关键动作:

  1. 读取网表、LEF、MMMC约束,确认设计边界与宏单元清单;
  2. 使用initialize_floorplan创建Die与Core区域,设置Row和Track;
  3. 摆放宏单元,设置Halo(隔离带)和Channel(通道);
  4. 创建电源网络(Power Plan),包括Ring、Stripe、Rail;
  5. 放置I/O引脚与Endcap、Welltap等物理单元;
  6. 进行初步拥塞与时序评估,决定是否调整宏单元位置。

下图展示了Floorplan在Innovus流程中的位置,以及宏单元规划与后续阶段之间的数据流关系。

Innovus 数字后端流程与宏单元规划定位 导入设计 Netlist/LEF/MMMC Floorplan 宏单元规划 / 电源网络 Placement 标准单元布局 CTS 时钟树综合 Routing 绕线与签核 宏单元规划核心要素 通道宽度 Channel / Halo 绕线资源 Track / Congestion 电源网络 Ring / Stripe / Rail 引脚可达性与时序 Pin Access / Timing 拥塞/时序反馈迭代 宏单元规划常见挑战 绕线拥塞 通道过窄 / 引脚密集 → DRC / 绕线失败 时序违例 宏单元间距过大 → 关键路径延迟 电源网络压降 Stripe密度不足 → IR Drop超标 迭代周期长 反复调整宏位置 → 项目延期

宏单元规划的核心价值

宏单元通常指SRAM、ROM、PLL、IP核等大面积、固定形状的模块。它们不像标准单元那样可以随意摆放,一旦位置确定,就会在芯片上形成"障碍物",标准单元只能绕行,绕线资源被切割成不规则区域。宏单元规划的核心价值体现在三个方面:

第一,决定绕线资源的可用性。宏单元之间的通道(Channel)是标准单元与信号线的主要通行区域。通道过窄会导致局部拥塞,绕线器无法完成布线;通道过宽则浪费面积,增加芯片成本。合理的通道宽度需要根据宏单元引脚数量、金属层堆叠和绕线方向综合估算。

第二,影响时序收敛难度。宏单元之间的关键路径如果跨越整个芯片,延迟会显著增加。将时序相关的宏单元就近摆放,可以缩短关键路径长度,降低对缓冲器插入的依赖。反之,如果宏单元被随意分散,时序优化将变得非常困难。

第三,决定电源网络的完整性。宏单元通常功耗较大,需要就近接入电源网络。如果宏单元远离电源Ring或Stripe,局部IR Drop会超标,导致芯片功能失效。因此,宏单元规划必须与Power Plan协同进行。

常见挑战与应对思路

在实际项目中,宏单元规划面临以下典型挑战:

挑战典型表现应对思路
绕线拥塞通道内Track不足,DRC违例集中增加通道宽度,调整宏单元朝向,优化引脚分配
时序违例关键路径跨越多个宏单元将时序相关宏单元就近摆放,预留缓冲器空间
电源压降宏单元附近IR Drop超标增加Stripe密度,优化电源Ring覆盖范围
迭代周期长反复调整宏位置,收敛缓慢前期做好数据流分析,使用Flyline和Congestion Map预判
提示:在Innovus中,可以使用report_congestion和check_floorplan命令快速评估当前Floorplan的拥塞与合法性。建议在宏单元摆放完成后立即运行,而不是等到Place之后才发现问题。

本课程的组织方式

本课程将按照"概念—工具—实操—优化—排障"的逻辑展开。前几章聚焦Floorplan基础概念与Innovus环境准备;中间章节深入宏单元摆放策略、通道计算、电源网络规划与引脚分配;后续章节通过实际案例演示从导入设计到Floorplan评估的完整流程,并针对拥塞、时序、IR Drop等常见问题给出排查与修正方法。每一章都会结合Innovus命令、参数设置和结果判读,帮助你把知识转化为可执行的操作。

宏单元规划不是一次性的动作,而是一个"规划—评估—修正"的迭代过程。好的Floorplan工程师能够在动手之前就预判到大部分问题,而不是依赖工具反复试错。希望本课程能帮助你建立这种预判能力,让Floorplan不再是项目瓶颈,而是你掌控设计质量的起点。