首先声明本文所讲的范围,在这篇文章中,是采用synopsys的设计流程,对数字电路进行功耗分析,生成功耗分析报告的流程。分析的对象是逻辑综合之后布局布线之前的功耗分析,以及布局布线之后的功耗分析。
Synopsys做功耗分析使用到的工具是:Primetime PX, Prime Rail。PTPX可以在逻辑综合之后就进行功耗预估。PrimeTime PX是集成在PrimeTime里面的工具,虽然他可以做功耗分析,但是毕竟不是sign-off工具。真正到最后的sign-off,如果对功耗的要求很高的话,依然要用Prime Rail进行分析,所以,我们只要用到PrimeTime PX来做功耗分析就够了。
一. 逻辑综合后的功耗分析
所用到的文件有:
1. 逻辑综合后的verilog文件
2. 静态时序分析时用到的约束文件
3. RTL的仿真文件,我用的是VCD,毕竟标准各个仿真器都支持~
4. 有功耗信息的库文件.db,这个库文件可以report一个库里的cell,看是否有。
有了这些文件之后,就可以做功耗分析了。下面说一下功耗分析的流程:
1. 允许功耗分析功能 set power_enable_analysis
2. 设置分析模式 set power_analysis_mode。他的模式有两种,一种是average模式,不用仿真文件,另一种是time-based模式,是根据时序仿真文件来确定activity factor。
3. 读入设计和库文件
4. 指定operating condition
5. 时序分析 update_timing
6. 获取activity data
如果是RTL级别的网表文件,要用-rtl来告诉pt之前指定的vcd file是布局布线之前的。如果VCD是 zero_delay的仿真,也就是说是functional simulation的话,应该加用-zero_delay选项。如果都为指定,pt默认是gate-level。
7. 设置功耗分析选项
set_power_analysis_options :
-static_leakage_only option of the set_power_analysis_options command is supported only in the averaged