3. Floorplan与电源规划
Floorplan 是物理实现的“地基”。它决定了芯片的可用面积、模块相对位置、电源输送骨架以及后续布局布线的自由度。一旦 Floorplan 定型,后续工具只能在既定边界内优化,因此这一阶段的决策质量直接决定 PPA(功耗、性能、面积)能否收敛。本节围绕 Die/Core 定义、IO 摆放、Macro 摆放策略、电源网格创建与 IR-drop 初步评估展开,并说明电源规划对后续布局布线的约束关系。
Die 与 Core 区域定义
Die 是芯片的物理边界,Core 是可放置标准单元和 Macro 的有效区域。二者之间由 IO 环、电源环和 Seal Ring 占据。在 ICC2 中,通常先由 initialize_floorplan 根据面积估算生成初始 Die,再通过 create_floorplan 或 resize_floorplan 调整。关键参数包括:
- Die 尺寸:由综合后的单元面积、Macro 面积、布线拥塞余量和 IO 数量共同决定。经验上 Core 利用率控制在 65%~75%,为布线留出通道。
- Core 到 Die 的边距:需容纳 IO pad、电源环和 Seal Ring,典型值 20~50 μm,视工艺和 pad 高度而定。
- Aspect Ratio:Die 长宽比,通常控制在 1:1 到 1:2 之间,过扁会导致布线资源不均。
定义完成后,用 check_floorplan 检查 Core 是否包含所有 Macro、是否有重叠,并确认利用率合理。若利用率过高,后续布线会出现严重拥塞;过低则浪费面积。
IO 摆放
IO 摆放决定信号进出芯片的位置,直接影响内部布线长度和时序。基本原则是:
- 按功能分组:同一接口的信号(如 DDR、PCIe、USB)集中摆放,减少跨芯片走线。
- 按方向对齐:输入靠近驱动源,输出靠近负载,高速信号优先短路径。
- 电源 IO 均匀分布:避免局部电流集中导致 IR-drop 恶化。
- 考虑封装约束:Bump 位置、Wire Bond 角度和间距需与封装协同。
在 ICC2 中可用 place_io 或读入 IO 约束文件完成摆放,之后用 check_io_placement 验证间距和重叠。
Macro 手动与自动摆放策略
Macro(SRAM、IP、PLL 等)是 Floorplan 中最难处理的元素。摆放策略分为手动和自动两类:
手动摆放适合数量少、位置敏感的关键 Macro。工程师根据数据流方向、引脚位置和电源需求,用 place_macro 或 GUI 拖拽定位。要点包括:Macro 引脚朝向 Core 内部,避免信号绕行;相邻 Macro 之间留出布线通道(通常 10~20 μm);电源引脚靠近电源网格节点。
自动摆放适合数量多、规则性强的 Macro 阵列。ICC2 提供 create_placement -floorplan 和 legalize_placement,可基于连通性、拥塞和时序目标自动优化。自动摆放后必须人工检查:是否有 Macro 重叠、是否阻塞关键布线通道、是否与 IO 冲突。
无论手动还是自动,最终都要用 check_floorplan -macro 确认 Macro 合法,并观察拥塞图(congestion map)判断通道是否足够。
电源网格创建与 IR-drop 初步评估
电源网格(Power Grid)由电源环(Power Ring)、电源条(Power Stripe)和 Via 阵列组成,目标是把外部电源低阻抗地送到每个标准单元和 Macro。创建流程通常为:
- 定义电源网络:
create_net -power VDD、create_net -ground VSS。 - 创建电源环:
create_power_ring,指定层、宽度、间距和偏移。 - 创建电源条:
create_power_stripe,在 Core 内按一定间距铺设,横纵交错形成网格。 - 连接 Macro 电源:
connect_power或create_power_pin。
IR-drop 初步评估在 Floorplan 阶段即可进行。用 analyze_power_plan 或 report_ir_drop 估算静态 IR-drop。判断依据:静态 IR-drop 通常要求小于电源电压的 5%,动态 IR-drop 小于 10%。若超标,需加宽电源条、增加 Via 数量或调整 Macro 位置。
电源规划对后续布局布线的影响
电源规划不是独立步骤,它给后续布局布线施加了硬约束:
- 布线通道占用:电源条占据金属层资源,减少信号布线通道。若电源条过密,信号布线会因拥塞无法收敛。
- 标准单元摆放限制:单元必须避开电源条和 Macro 电源引脚,导致局部利用率下降。
- 时序影响:电源网格的电阻和电容会影响单元供电电压,进而影响延迟。IR-drop 大的区域,单元延迟增加,时序更难满足。
- DRC 风险:电源 Via 阵列若与信号线间距不足,会引入 DRC 违例。
因此,电源规划应在 Floorplan 阶段与 Macro 摆放、IO 摆放协同迭代。建议流程是:先定义 Die/Core,再摆 Macro 和 IO,然后创建电源网格,运行 IR-drop 评估,根据结果回头调整 Macro 位置或电源条密度,最后锁定 Floorplan 进入布局阶段。这个迭代过程通常需要 2~3 轮,直到拥塞、IR-drop 和时序预估都处于可接受范围。
report_congestion 查看布线拥塞,用 analyze_power_plan 查看 IR-drop,两者结合判断 Floorplan 是否健康。若某区域同时出现高拥塞和高 IR-drop,优先调整该区域的 Macro 或电源条。