在 Innovus 中验证低功耗设计的效果需要从多个维度进行检查,包括电源完整性、信号正确性、时序收敛和功耗分析。以下是详细的验证流程和关键命令:
一、电源完整性验证
1. 电源域连接检查
- 验证电源域定义
tcl
check_power_domain -all ;# 检查所有电源域是否正确定义和连接 report_power_domain -hierarchy ;# 查看电源域层次结构
- 检查电源网络连接
tcl
check_pg_connection -nets {VDD VSS} ;# 验证电源/地网络连接 report_pg_connection -nets {VDD VSS} -verbose ;# 详细报告连接状态
2. IR 压降分析
- 静态 IR 分析
tcl
analyze_power -ir_drop -static ;# 执行静态IR压降分析 report_ir_drop -max ;# 报告最大IR压降点
- 动态 IR 分析(需活动因子)
tcl
read_saif -file activity.saif ;# 读取开关活动文件 analyze_power -ir_drop -dynamic ;# 执行动态IR压降分析
3. 电迁移(EM)验证
- 检查电流密度
tcl
check_electromigration -nets {VDD VSS} ;# 检查电源网络电迁移 report_electromigration -violators ;# 报告电迁移违规
二、低功耗单元验证
1. 电平转换器(Level Shifter)检查
- 验证电平转换器插入
tcl
verify_level_shifters -all ;# 检查所有跨域信号是否正确插入电平转换器 report_level_shifters -count ;# 统计电平转换器数量
- 检查电平转换器参数
tcl
report_cell -attributes {voltage_high voltage_low} [get_cells *level_shifter*]
2. 隔离单元(Isolation Cell)验证
- 检查隔离单元配置
tcl
verify_isolation -all ;# 验证隔离单元是否正确配置 report_isolation -state ;# 报告隔离单元状态(启用/禁用)
3. 电源开关(Power Switch)验证
- 检查电源开关连接
tcl
verify_power_switch -all ;# 验证电源开关连接是否正确 report_power_switch -status ;# 报告电源开关状态
三、时序验证(含跨域路径)
1. 跨电源域时序路径检查
- 报告跨域时序路径
tcl
report_timing -from [get_cells pd_core/*] -to [get_cells pd_io/*] -cross_power_domain ;# 跨域时序报告
- 检查时序约束
tcl
verify_timing -cross_power_domain ;# 验证跨域时序约束
2. 多电压时序分析
- 设置多电压时序分析
tcl
set_analysis_view -setup -voltage_domain pd_core -voltage 1.0V set_analysis_view -hold -voltage_domain pd_io -voltage 1.8V
- 执行时序分析
tcl
report_checks -path_delay min_max -group all ;# 报告所有时序检查
四、功耗分析与优化
1. 静态功耗分析
- 报告静态功耗(漏电流)
tcl
report_power -type leakage -power_domain all ;# 按电源域报告静态功耗
2. 动态功耗分析
- 基于活动因子的动态功耗
tcl
read_saif -file activity.saif ;# 读取开关活动文件 report_power -type switching -hierarchy ;# 分层报告动态功耗
3. 功耗热点分析
- 生成功耗热图
tcl
generate_power_heatmap -output power_heatmap.png -power_domain pd_core ;# 生成核心域功耗热图
- 识别高功耗模块
tcl
report_power -top 10 ;# 报告功耗最高的10个模块
五、低功耗设计规则检查(LPDRC)
1. 执行 LPDRC 检查
- 检查低功耗设计规则
tcl
check_low_power -all ;# 执行所有低功耗设计规则检查
- 报告违规
tcl
report_violations -category low_power ;# 报告低功耗相关违规
2. 验证 CPF/UPF 合规性
- 检查 CPF 实现
tcl
verify_cpf -all ;# 验证CPF约束是否正确实现
六、功能验证(门级仿真)
1. 导出带电源意图的网表
- 导出带 UPF/CPF 的网表
tcl
write_verilog -output design_with_pg.v -power_domain all ;# 导出带电源信息的网表 write_upf -output design.upf ;# 导出UPF文件
2. 联合仿真
- 使用仿真工具验证
tcl
# 示例:导出用于VCS仿真的命令 write_sdf -output design.sdf ;# 导出SDF时序信息
七、调试与问题解决
1. 可视化分析工具
- 显示电源域边界
tcl
display_power_domain -all ;# 在GUI中显示所有电源域边界
- 高亮显示问题区域
tcl
highlight -violations low_power ;# 高亮显示低功耗违规区域
2. 关键报告命令汇总
报告类型 | 命令 |
---|---|
电源域层次结构 | report_power_domain -hierarchy |
IR 压降 | report_ir_drop -max |
电平转换器统计 | report_level_shifters -count |
隔离单元状态 | report_isolation -state |
电源开关状态 | report_power_switch -status |
时序违规 | report_violations -category timing |
功耗分析 | report_power -hierarchy -type all |
八、验证流程最佳实践
- 早期验证:在布局规划阶段即开始电源域验证,避免后期返工。
- 迭代优化:根据功耗分析结果,调整电源域划分或低功耗单元配置。
- 跨工具一致性:确保 CPF/UPF 在综合、布局、布线和仿真工具间的一致性。
- 文档记录:保存所有验证报告,作为设计合规性的证据。
通过以上步骤,可全面验证 Innovus 中低功耗设计的效果,确保满足功耗目标并避免潜在风险。