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阶段通常包含以下关键动作:
- 读取网表、LEF、MMMC约束,确认设计边界与宏单元清单;
- 使用
initialize_floorplan创建Die与Core区域,设置Row和Track; - 摆放宏单元,设置Halo(隔离带)和Channel(通道);
- 创建电源网络(Power Plan),包括Ring、Stripe、Rail;
- 放置I/O引脚与Endcap、Welltap等物理单元;
- 进行初步拥塞与时序评估,决定是否调整宏单元位置。
下图展示了Floorplan在Innovus流程中的位置,以及宏单元规划与后续阶段之间的数据流关系。
宏单元规划的核心价值
宏单元通常指SRAM、ROM、PLL、IP核等大面积、固定形状的模块。它们不像标准单元那样可以随意摆放,一旦位置确定,就会在芯片上形成"障碍物",标准单元只能绕行,绕线资源被切割成不规则区域。宏单元规划的核心价值体现在三个方面:
第一,决定绕线资源的可用性。宏单元之间的通道(Channel)是标准单元与信号线的主要通行区域。通道过窄会导致局部拥塞,绕线器无法完成布线;通道过宽则浪费面积,增加芯片成本。合理的通道宽度需要根据宏单元引脚数量、金属层堆叠和绕线方向综合估算。
第二,影响时序收敛难度。宏单元之间的关键路径如果跨越整个芯片,延迟会显著增加。将时序相关的宏单元就近摆放,可以缩短关键路径长度,降低对缓冲器插入的依赖。反之,如果宏单元被随意分散,时序优化将变得非常困难。
第三,决定电源网络的完整性。宏单元通常功耗较大,需要就近接入电源网络。如果宏单元远离电源Ring或Stripe,局部IR Drop会超标,导致芯片功能失效。因此,宏单元规划必须与Power Plan协同进行。
常见挑战与应对思路
在实际项目中,宏单元规划面临以下典型挑战:
| 挑战 | 典型表现 | 应对思路 |
|---|---|---|
| 绕线拥塞 | 通道内Track不足,DRC违例集中 | 增加通道宽度,调整宏单元朝向,优化引脚分配 |
| 时序违例 | 关键路径跨越多个宏单元 | 将时序相关宏单元就近摆放,预留缓冲器空间 |
| 电源压降 | 宏单元附近IR Drop超标 | 增加Stripe密度,优化电源Ring覆盖范围 |
| 迭代周期长 | 反复调整宏位置,收敛缓慢 | 前期做好数据流分析,使用Flyline和Congestion Map预判 |
report_congestion和check_floorplan命令快速评估当前Floorplan的拥塞与合法性。建议在宏单元摆放完成后立即运行,而不是等到Place之后才发现问题。
本课程的组织方式
本课程将按照"概念—工具—实操—优化—排障"的逻辑展开。前几章聚焦Floorplan基础概念与Innovus环境准备;中间章节深入宏单元摆放策略、通道计算、电源网络规划与引脚分配;后续章节通过实际案例演示从导入设计到Floorplan评估的完整流程,并针对拥塞、时序、IR Drop等常见问题给出排查与修正方法。每一章都会结合Innovus命令、参数设置和结果判读,帮助你把知识转化为可执行的操作。
宏单元规划不是一次性的动作,而是一个"规划—评估—修正"的迭代过程。好的Floorplan工程师能够在动手之前就预判到大部分问题,而不是依赖工具反复试错。希望本课程能帮助你建立这种预判能力,让Floorplan不再是项目瓶颈,而是你掌控设计质量的起点。