4. Floorplan规划与Die/Core尺寸确定
Floorplan是数字后端实现中最早、也最难返工的一步。它决定了芯片的物理边界、标准单元可摆放区域、宏单元落位、电源网络骨架以及IO与内核之间的连接通道。一旦Die尺寸、Core区域或宏单元位置定错,后续Place、CTS、Route只能在错误的地基上做局部优化,拥塞、时序和IR-drop问题往往无法通过工具修复。本节围绕三个核心问题展开:Die面积如何估算、Core与IO Ring如何规划、先进工艺下布线资源与拥塞如何预判。
一、Die面积估算:从利用率反推
Die面积估算的起点是标准单元总面积。假设综合后标准单元面积(含组合逻辑、时序单元、时钟门控等)为 A_std,宏单元(SRAM、IP、模拟模块)总面积为 A_macro,目标标准单元利用率为 U,则Core面积可近似为:
Core_Area ≈ A_std / U + A_macro
Die_Area ≈ Core_Area × (1 + IO_Ring_Ratio + Seal_Ring_Ratio)
其中 U 是标准单元在Core可摆放区域内的面积占比。先进工艺下,U 的取值需要谨慎:28nm 常用 0.70~0.75,16/12nm 常用 0.65~0.72,7nm 及以下由于布线资源紧张、单元密度高,通常控制在 0.55~0.68。利用率越高,布线越拥挤,但Die越小、成本越低,这是一个需要权衡的参数。
举例说明:某7nm模块综合后标准单元面积 A_std = 1.2 mm²,宏单元面积 A_macro = 0.8 mm²,目标利用率 U = 0.62。则Core面积约为 1.2/0.62 + 0.8 ≈ 2.74 mm²。若IO Ring与Seal Ring合计占约12%,则Die面积约为 2.74 × 1.12 ≈ 3.07 mm²。实际工程中还需为电源网络、去耦电容、时钟树预留空间,通常再留5%~10%余量。
二、Core与IO Ring规划
Core区域是标准单元和宏单元的实际摆放范围,其形状通常为矩形,长宽比建议控制在1:1到1:2之间。过于狭长的Core会导致时钟树偏斜增大、长线增多、电源网络不均匀。Core边界到Die边界的距离由IO Ring、Seal Ring和电源环共同决定。
IO Ring规划需要同时考虑三个约束:一是IO数量与间距,先进工艺IO pitch通常在30~60μm,数量多时IO Ring会显著增大Die周长;二是IO类型,电源IO、模拟IO、高速差分IO对位置和隔离有不同要求;三是ESD与Latch-up规则,IO之间、IO与Core之间需要满足最小间距。常见做法是先将电源IO均匀分布在四边,再将高速信号IO靠近对应功能模块,最后填充普通信号IO。
宏单元的摆放是Floorplan中最影响后续布线的环节。原则是:宏单元尽量靠边、靠角,减少对Core中央布线通道的切割;宏单元之间预留足够通道,通道宽度应能容纳电源线、时钟线和总线;SRAM等规则宏单元的长边尽量与Core边平行,避免产生大量短边引脚导致的局部拥塞。
三、先进工艺下的布线资源与拥塞预判
先进工艺的金属层数多,但每层金属的pitch缩小、电阻增大,实际可用布线资源并不像层数看起来那么充裕。拥塞预判的核心是计算局部布线需求与供给的比值。常用指标包括:
- Pin Density:单位面积内的标准单元引脚数,过高说明局部连接需求集中。
- Routing Overflow:布线需求减去可用轨道数,正值表示溢出。
- Congestion Map:工具在Floorplan阶段即可生成的拥塞热力图,红色区域表示高风险。
- Macro Channel Width:宏单元之间通道宽度,建议不小于该区域金属层总轨道数的1.5倍。
在Floorplan阶段,可以通过以下操作提前发现拥塞:第一,运行 checkFloorplan 或等效命令检查宏单元间距、Core边界和IO合法性;第二,使用 reportCongestion 或工具内置的全局布线预估,观察拥塞分布;第三,对高Pin Density区域,提前调整宏单元朝向或增加通道宽度;第四,检查电源网络是否占用了过多布线轨道,尤其是宽金属电源线对信号布线的遮挡。
四、Floorplan检查清单
完成Floorplan后,建议按以下清单逐项确认,避免把问题带入后续阶段:
| 检查项 | 判断标准 | 常见问题 |
|---|---|---|
| Core利用率 | 7nm建议0.55~0.68 | 过高导致布线溢出 |
| Core长宽比 | 1:1~1:2 | 狭长导致时钟偏斜大 |
| 宏单元到Core边距离 | ≥ 通道最小宽度 | 太近导致引脚无法出线 |
| 宏单元之间通道 | ≥ 1.5倍金属轨道需求 | 通道不足导致局部拥塞 |
| IO Ring间距 | 满足ESD/Latch-up规则 | IO太密导致DRC |
| 电源网络覆盖 | Core内无供电盲区 | IR-drop超标 |
| 拥塞热力图 | 无大面积红色区域 | 高Pin Density区未处理 |
需要强调的是,Die面积估算不是一次性的算术题。随着综合迭代、宏单元替换、IO数量变化,Floorplan需要反复调整。工程上通常先按目标利用率给出初版Die尺寸,再根据拥塞预估和时序预估做±5%~10%的微调。先进工艺下,宁可Die略大、利用率略低,也要保证布线资源和电源网络的余量,因为后期修复拥塞和IR-drop的代价远高于增加少量面积。