DC分析功耗一般需要以下几个文件:
1、工艺库:内部包含具体功耗值。
2、网表:DC综合生成的
3、翻转文件:.saif文件,表示信号的翻转率
CMOS功耗组成可参考这个文章:CMOS电路的功耗分析
静态功耗主要是漏电,这个不需要翻转文件。因此这里主要分析动态功耗。
电压和频率一般都是设计电路和写约束的时候确定的,一般频率和电压越低,功耗自然也就越低。电容值一般在DC里体现在设计人员写的约束,比如 set_load设置输出引脚的电容。线的寄生电容一般不在DC考虑范围,在后端工具ICC(Synopsys)/Innovus(Cadence) 会有所体现。
因此这里主要分析一下翻转文件,也就是公式里的 Nsw .
我生成翻转文件的工具是Modelsim。
步骤1、正常写激励对自己的设计仿真,在仿真前输入以下产生翻转文件的命令:
vcd file filename.vcd // 翻转文件名
vcd add dut/* // 需要保存的信号,一般全部保存
注:如果激励文件中有 $finish 语句,则工具会在仿真结束后自动生产翻转文件,若没有$finish 语句,则需要点击Modelsim的restart来结束这次的仿真以生成并保存翻转文件。
步骤2、由于Modelsim产生的翻转文件是vcd格式,DC需读入saif格式的文件,因此还需手动转换格式。在启动synopsys环境之后,在输入dc_shell之前 进行格式转换操作。命令如下:
vcd2saif -input ./DUT.vcd -output ./DUT.saif
步骤3、DC读入saif文件命令
read_saif -input ./DUT.saif -instance_name DUT_TB/DUT_INST -verbose
注:-instance_name 后面是 测试文件module名/被测顶层模块实例名