布局规划 Floorplan
布局规划 Floorplan
概念解析
定义与起源
术语定义:布局规划(Floorplan)是物理设计的第一步也是最关键的一步——在芯片硅平面上规划:大IP/macro放在哪、标准单元区域在哪、电源网格怎么走、时钟root在哪。好的Floorplan让PnR工具事半功倍——坏的Floorplan让整个物理设计流程陷入地狱。
Floorplan不是画图——是多维度的空间规划:你的芯片有CPU cluster(发热大户)、DDR PHY(敏感的模拟IP)、PCIe SerDes(高速差分信号)、SRAM阵列(占用大片面积)、标准单元区域(容纳综合出来的逻辑)。把它们放在正确的位置——让发热的不烤邻居、让高速的不被干扰、让面积利用最大化——这就是Floorplan。
核心要义
第一,Floorplan决定了芯片的"社交网络"。 Macro位置决定了:数据流的延迟(相关macro要放得近)、发热的分布(热源要分散)、布线的难易度(macro之间要有足够的布线通道)、电源的分配(哪个区域需要多大的电流)。一次不好的macro placement——PnR需要10倍的时间来弥补。
第二,Floorplan的黄金法则:先放大石头,再填沙子。 先决定最大的IP(macro)的位置和方向——它们占据50%+的面积。然后给标准单元区域留出空间——标准单元是"沙子"。最后规划通道(channel)——macro之间的空隙用于绕线和buffer插入。大石头放对了——沙子自然落位——通道自然通畅。
第三,Floorplan不是一次性的——是迭代的。 初始floorplan在综合前做(基于预估的面积和功耗)。综合后有了真实的网表——调整floorplan。Placement后看到congestion热点——再调整。好的floorplan在每轮迭代中做小调整——坏的floorplan需要推倒重来。
实践应用
* Macro placement的第一优先级:把频繁通信的macro放得近——减少数据路径长度。 * Keep-out region保护敏感IP:在PLL、SerDes周围设置keep-out区域——禁止标准单元靠近——防止噪声耦合。 * Channel预留是关键:macro之间至少留2-3行标准单元宽度的通道——用于绕线和插入buffer。通道不够=后期大面积congestion。
实战案例
某SoC的Floorplan重做3次:初始floorplan把DDR PHY放在芯片右下角——离CPU cluster太远——DDR延迟超标20%。第一次重做:移到中下方——延迟达标。第二次:发现发热集中——把CPU和GPU分开放——温度分布改善。第三次:发现顶部congestion——加宽顶部通道——布线通过率达标。
Macro rotation的意外效果:某芯片的SRAM macro旋转了90度——本来是为了让数据总线更短。意外收获:旋转后的power grid对齐更好——IR Drop降了25%。
AI生成的Floorplan:某芯片用强化学习自动生成macro placement——AI找到了一种人工从未尝试的布局——性能比人工做的提升了8%——功耗降5%。
常见误区
误区一:Floorplan=PowerPoint画个框图。 真实Floorplan需要:macro的LEF/DEF数据、预估的模块面积(+20% margin)、电源网格规划、时钟root位置。不是手绘——是在EDA工具里精确操作。
误区二:Floorplan做一次就够了。 综合后、DFT后、CTS后——每个阶段网表都在变——Floorplan需要持续调整。最成功的项目在tape-out前做10-20轮floorplan调整。
误区三:面积利用率越高越好。 85%利用率看起来高效率——但如果导致了congestion→绕线绕远→WNS恶化——整体QoR可能比75%利用率更差。最优利用率通常在70-80%。