2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 如何使用PTPX预估芯片功耗

如何使用PTPX预估芯片功耗

时间:2022-10-09 14:53:42

相关推荐

如何使用PTPX预估芯片功耗

如何使用PTPX预估芯片功耗

一、文件准备二、简易版PTPX环境脚本三、预估精度测试

工作中往往想要在项目初期就预估出芯片的功耗,以判断前端代码是不是还需要继续优化。

PTPX使用前端提供的波形和网表就可以预估出芯片的功耗大小。下面详细介绍下使用方法,以及这样的方法预估的功耗精度如何。

一、文件准备

1.前端提供通过RTL网表仿真得到的波形文件:fsdb/vcd

2.定义基础库功耗的库文件:std cell/memory 的db文件

3.芯片时序约束文件:sdc文件。

二、简易版PTPX环境脚本

主要注意设置的地方:

1.设置基础库,下面的脚本是设置的tt_db变量,写在了tcl文件里。

2.各block和top的verilog网表。用于提供里面使用到的memory和std。

3.设置sdc文件和RTL波形,提供时钟信息,和时钟翻转率等。

以上的变量设置好了,就可以执行pt开始run。

输出的功耗结果在指定的report文件中查看就可以了。

############################################ Set the power analysis mode###########################################set power_enable_analysis trueset power_analysis_mode averaged############################################ read and link the gatelevel netlist###########################################if { [file exists log] == 0} {exec mkdir log}if { [file exists rpt] == 0} {exec mkdir rpt}source /home/xxx/data/all_lib_9T.tcl -e -v #设置变量tt_dbset link_library " * ${tt_db}"read_verilog /home/xxx_top_pt.vread_verilog /home/xxx_block_pt.vset top_name xxx_topset DesignName xxx_topcurrent_design $DesignNamelink############################################ Read SDC and set transition time orannotate parasitics###########################################read_sdc /home/xxx.tcl############################################ Check, update, or report timing###########################################check_timingupdate_timingreport_timing############################################ read switching activity file###########################################read_vcd -rtl -time {123 123} -strip_path <xxx> /home/xxx.fsdbreport_switching_activity -list_not_annotated############################################ check or update or report power###########################################check_powerupdate_powerreport_power -nosplit > ./rpt/average_power.rptreport_power -hierarchy -level 6 -power_greater_than 0.001 -nosplit > ./rpt/average_power_hier.rptquit

三、预估精度测试

这里是用了一个比较小的模块做的测试。功耗基数比较小,误差百分比其实是过于大了。其中:

1.post波形是设计完成后,前端基于GATE级网表得到的波形。是最终的波形结果。

2.sdf是前端提供的波形中是否添加了timing延迟的处理。

3.wi开头的波形是基于RTL网表得到的波形。

4.rtl表示在脚本中添加了read_vcd -rtl的option。

5.nospef表示脚本中是否添加了读入spef的option,使用的如下的命令。

read_parasitics -format SPEF -keep_capacitive_coupling xxx.spef

经过其他的实际项目验证。初步结论如下:

1.最终的功耗基本与PTPX预估的相符。误差值约在10%以内。

2.最终设计的功耗比PTPX预估的功耗大,原因是在后端设计过程中会增加很多std,会增大功耗值。如果时钟设计复杂,lvtcell添加很多,影响功耗结果的幅度也会比较大。

3.不加spef文件会有一些obj不能标记,计算的功耗值会偏小一点。

4.sdf的处理对总体平均功耗是影响不大的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。