)
Innovus实战多高度Row设计与Power Domain配置的深度解析在数字后端设计领域处理复杂芯片布局时经常会遇到需要同时使用不同高度标准单元的场景。这种需求在现代低功耗设计中尤为常见比如需要集成高密度逻辑单元与特殊功能模块如电源开关、电平转换器等。本文将深入探讨如何在Innovus工具中高效配置多高度Row及其对应的Power Domain确保设计满足严格的物理实现要求。1. 多高度Row设计的基础原理多高度Row设计本质上是在同一芯片上允许不同物理高度的标准单元共存。这种技术主要应用于以下两种典型场景整数倍高度单元如电源开关单元(PSW)、电平转换器(LS)通常占用2-4倍标准单元高度。以7-track设计为例普通单元高度为0.21μm而PSW单元可能需要0.42μm2倍或0.84μm4倍的高度。非整数倍高度单元某些特殊IP或存储器编译器生成的模块可能需要特定的高度如1.5倍标准单元高度。这种情况需要更复杂的物理实现策略。关键技术考量点工艺文件(tech LEF)必须包含所有使用到的site定义不同高度Row之间的电源网络连续性单元摆放时的合法位置检查布线资源的合理分配重要提示在开始floorplan之前务必确认工艺库支持所有需要的site类型。缺失的site定义会导致后续流程失败。2. Power Domain的创建与配置Power Domain是多高度Row设计成功的关键。以下是创建和配置Power Domain的详细步骤2.1 创建基本Power Domain# 创建核心Power Domain create_power_domain -name PD_CORE -power_net VDD -ground_net VSS # 创建特殊模块的Power Domain create_power_domain -name PD_PSW -power_net VDD_PSW -ground_net VSS \ -instances [get_cells psw_inst*] -shutdown2.2 定义Power Domain物理区域对于非矩形Power Domain需要精确指定其物理边界# 多边形Power Domain定义示例 set psw_shape { {100 100 100 500} {100 500 300 500} {300 500 300 300} {300 300 500 300} {500 300 500 100} {500 100 100 100} } update_power_domain PD_PSW -boundary $psw_shape2.3 电源网络连接策略不同Power Domain的电源网络连接方式对比连接类型适用场景优点缺点完全隔离独立电压域无漏电风险需要电平转换器共享地网同电压不同开关节省面积可能存在噪声耦合共享电源常开模块简化设计无法单独断电3. 多高度Row的实现方法3.1 整数倍高度Row配置对于整数倍高度的Row可以直接在floorplan阶段创建# 创建标准高度Row create_row -name std_row -site CoreSite -origin {0 0} -num 50 -direction horizontal # 创建2倍高度Row用于电源开关 create_row -name psw_row -site CoreSite -origin {0 2100} -num 10 -direction horizontal \ -height 0.42 -step 0.84关键参数说明-site指定使用的site类型-heightRow的物理高度-stepRow之间的垂直间距3.2 非整数倍高度Row配置对于非标准高度的Row需要额外配置首先在tech LEF中定义新的site类型创建对应的Power Domain使用特定命令创建Row# 定义特殊site需在tech LEF中预先声明 create_site -name CustomSite -size_x 0.5 -size_y 0.315 # 创建非标准高度Row create_row -name custom_row -site CustomSite -origin {500 0} -num 20 \ -direction horizontal -power_domain PD_CUSTOM4. 验证与调试技巧完成多高度Row和Power Domain配置后必须进行严格验证4.1 常见检查命令# 检查Row定义 report_row -all # 验证Power Domain覆盖 check_power_domain -verbose # 检查单元摆放合法性 check_placement -level high4.2 典型问题解决方案问题1单元摆放在错误Power Domain解决方法# 检查单元的有效Power Domain属性 report_power_domain -cells [get_cells psw_inst*] # 必要时手动修正 change_power_domain -cells [get_cells psw_inst*] -power_domain PD_PSW问题2电源网络不连续解决方法# 添加跨Power Domain的电源连接 create_power_switch -name PSW_1 -output_port VDD_PSW -input_port VDD \ -control_port SLEEP -domain PD_PSW -instances psw_inst*5. 高级优化策略对于复杂设计可以采用以下高级技术5.1 混合摆放优化set_placement_mode -allow_mixed_row_placement true set_opt_mode -power_aware true opt_design -post_place5.2 电源网络协同优化不同高度Row的电源网络配置对比配置参数标准高度Row2倍高度Row自定义高度Row电源线宽度0.1μm0.2μm0.15μm电源线间距0.1μm0.2μm0.18μm电源条数量每Row 1条每Row 2条每Row 1条5.3 时序收敛技巧对于跨Power Domain的路径合理设置level shifter位置调整时序约束set_max_delay -from [get_clocks clk1] -to [get_clocks clk2] 2.0使用专用缓冲器链在实际项目中我们曾遇到一个设计需要同时集成7-track和9-track单元。通过精心规划Power Domain边界和采用阶梯式Row布局最终实现了95%的利用率同时满足所有时序要求。关键是在floorplan阶段就预留足够的缓冲区域特别是在不同高度Row的交界处。