数字后端实战指南 | Innovus LAB Day3:从零掌握Floorplan与Powerplan核心技巧

张开发
2026/5/30 10:30:12 15 分钟阅读
数字后端实战指南 | Innovus LAB Day3:从零掌握Floorplan与Powerplan核心技巧
1. 初识Floorplan与Powerplan第一次接触数字后端设计时听到Floorplan和Powerplan这两个专业术语说实话有点懵。后来在实际项目中摸爬滚打才发现它们就像盖房子时的建筑图纸和电路布线图是整个芯片设计的基石。Floorplan决定了芯片内部各个功能模块的房间布局而Powerplan则是为这些房间供电的电线网络。在Innovus工具中Floorplan阶段主要做两件事一是摆放macro和IP就像在建筑工地上确定主梁和承重墙的位置二是摆放port相当于规划门窗的位置。这两个步骤看似简单但实际操作中一个微小的失误就可能导致后期布线困难甚至芯片功能失效。我刚开始学习时就犯过把macro摆放过近的错误结果导致后期绕线资源不足不得不返工重做。Powerplan的设计更是直接影响芯片的稳定性和功耗表现。记得有次项目因为power stripe间距设置不合理导致芯片在高温环境下出现电压不稳最后只能重新流片。这些血泪教训让我深刻理解到Floorplan和Powerplan虽然属于后端设计的体力活但需要极其严谨的态度和扎实的技术功底。2. 手工摆放macro的实战技巧2.1 加载已有Floorplan在Innovus中开始手工摆放macro前通常我们会先加载一个基础floorplan作为起点。这个操作就像建筑师拿到一块地皮后先参考周边环境再开始设计。具体操作很简单File - Load - Floorplan选择保存好的floorplan文件比如dtmf_blocks.fp后布局视图就会显示出来。这里有个小技巧加载后立即按下F键或CtrlR刷新视图确保显示的是最新状态。我刚开始经常忘记刷新结果对着旧视图调整了半天保存时才发现改动根本没生效。2.2 设置macro的halo区域给macro加halo就像给家具留出使用空间一样重要。以PLL为例选中后按Q键查看属性可以看到默认的Placement Halo是20um。如果需要修改右键选择editHalo即可调整。这里要注意的是halo太小会导致布线拥挤halo太大又浪费芯片面积不同macro可能需要不同的halo值实际操作中我习惯先用工具测量相邻macro的间距再根据布线层数决定halo大小。比如M1层布线密集的区域halo就需要适当加大。2.3 添加Routing BlockageRouting blockage相当于在布局中设置禁行区防止工具在这些区域布线。Innovus提供了专门的控件来添加blockage操作时记得按F3或CtrlF3设置详细参数。这里分享一个实用技巧对于高频信号路径附近的macro我会特意加大blockage范围避免信号干扰。3. Powerplan设计全解析3.1 电源环(Power Ring)的添加电源环就像城市的环线供电系统为芯片提供基础电力保障。在Innovus中添加电源环的路径是Power - Power Planning - Add Ring关键参数设置包括电源网络层级通常选择高层metal环的宽度根据电流需求计算与macro的间距避免DRC错误我刚开始做项目时电源环宽度设置得太保守结果IR drop分析不达标。后来学到一个经验公式环宽度≈最大电流密度×1.5安全系数。3.2 电源条(Power Stripe)的布置电源条相当于城市中的配电线路将电力输送到各个功能区块。添加命令是Power - Power Planning - Add Stripe设置时要注意stripe方向与环垂直效果最好间距根据功耗分布调整高层metal优先如M6有个实用技巧可以先运行一次初步的功耗分析在热点区域加密stripe。我曾经在一个GPU项目中通过这种动态调整方法将IR drop降低了15%。3.3 电源轨(Power Rail)与打孔电源轨是连接到标准单元的最后一公里供电。在创建前必须先做derive pg告诉工具电源网络的命名规则。关键命令是globalNetConnect VDD -type pgpin -pin VDD -all globalNetConnect VSS -type pgpin -pin VSS -all打孔操作通过Special Route完成建议开启自动打孔选项。这里有个坑要注意不同工艺节点的通孔规则可能不同28nm以下工艺需要特别检查via密度。4. 实用技巧与常见问题4.1 三种视图的灵活运用Innovus提供三种视图模式Floorplan View查看和编辑布局规划Physical View查看物理实现细节Abstract View简化视图提高操作效率我习惯在摆放macro时用Floorplan View调整细节时切到Physical View处理大型设计时切到Abstract View提升流畅度。新手常犯的错误是在错误视图下操作比如在Floorplan View里找cell结果怎么也找不到。4.2 保存与版本管理完成floorplan和powerplan后一定要及时保存File - Save - Floorplan建议采用日期版本号的命名规则比如20230815_fp_v1。我曾经因为没做好版本管理误覆盖了辛苦调整的floorplan不得不从头再来。4.3 常见问题排查电源网络短路用verifyConnectivity检查布线资源不足调整macro位置或halo大小IR drop超标加密stripe或加宽ringDRC违规检查spacing规则每次完成powerplan后我都会运行一次基本的DRC检查把问题消灭在萌芽阶段。这个习惯帮我节省了大量后期调试时间。5. 进阶技巧与脚本自动化5.1 黄金脚本分享手工操作虽然直观但效率有限。这里分享几个我常用的TCL脚本片段批量摆放macroforeach macro $macro_list { set bbox [dbGet top.macros.name $macro.bbox] placeInst $macro -fixed -bbox $bbox }自动生成power stripecreatePowerStripe -layer M6 -width 2 -spacing 10 -direction vertical -offset 205.2 早期IR drop分析虽然Innovus自带的Early Rail Analysis不够精确但对于初期评估很有帮助。分析方法Power - Rail Analysis - Early Rail Analysis重点观察电压降超过5%的区域电流密度超标的网络电源网络瓶颈点在实际项目中我通常会先用这个工具快速定位问题区域再用专业工具做详细分析。5.3 数据导出与复用完成floorplan后可以导出DEF文件供后续项目参考defOut -floorplan -noStdCells fp.def如果只是memory和模块形状有变化可以直接复用powerplan部分节省大量时间。这个技巧在项目迭代时特别管用。

更多文章