spyglass之功耗分析

1 spyglass做power分析的意义

用于功耗分析的软件除了ptpx外,spyglass也可以。ptpx的功耗分析是基于netlist(网表)进行的,一般用于分析综合后的pre功耗和P&R后的post功耗,但这已经是项目进行到比较后期了,如果后期发现功耗数据与我们目标功耗相差较大,则意味着需要功耗优化,这时有可能会将项目计划节点延迟。如果在前期designer可以获得设计模块的功耗数据,可提早优化功耗,spyglass则为designer提供了一个很好的手段去评估功耗,从而提前优化功耗。

2 准备工作

用spyglass做power分析推荐使用GUI界面,原因是在功耗分结束后,点击相应的goal时会出现相应分析结果的表格、图表,这些是功耗分析结果直观、清晰,符合我们平常的阅读理解习惯;在debug时也可以点击相应的fatal、error或者warning查看解决建议,方便debug。

在用GUI进行功耗分析前需准备如下文件:

2.1 RTL设计文件列表

RTL设计文件(.v文件)的文件列表(filelist)文件——这里用top_module.f举例,filelist里面包含了工程中所有的设计文件以及文件中内部include的文件,include的文件即使没有给出具体路径和具体的文件名字,也需要给出include文件的路径;文件中使用的define也需要在这里写出来。top_module.f的文件内容举例如下:

/具体路径/rtl/top_module.v

/具体路径/rtl/module_1.v

/具体路径/rtl/module_2.v

#include dir

+incdir+具体的路径1

+incdir+具体的路径2

#include define 

+define+RAM

+define+DELAY=0.1

2.2 所有器件的lib文件列表

工程中使用到的所有cell的lib均需要在这个文件中列出来,包括mem IO,即工程中使用到的器件,即在ptpx分析功耗时用到的所有db文件对应的lib文件。这里用lib_filelist.f举例表示,具体内容如下所示:

set lib_file [concat /xx/xxxx/xx_lib1.lib \

/xx/xxx/xx_lib.lib \

]

这里包含了mem、IO等所有cell,是因为在进行功耗估计时这些cell都是功耗器件,在有电时会产生功耗,必须把所有功耗估算进去才能更好的分析功耗、优化功耗。

2.3 RTL设计文件对应的SDC文件

在进行功耗分析时还需要时序文件,时钟对功耗的影响十分大,所以需要时序约束文件,若使用的时序约束文件是sdc文件,需要将sdc文件转换成sgdc文件,这样spyglass才能成功读入。这里用top_module.sgdc文件举例,内容如下:

current_design top_module

sdc_data -file  top_module.sdc

2.4 用于功耗分析的fsdb波形文件

进行功耗分析需要读入波形文件,从而获取信号的活动情况。用于spyglass功耗分析的波形文件在生成时需要特别注意,波形文件的引用层级需要和spyglass读取波形时的-sim_topname的名字一致。下面给出仿真时生成spyglass功耗分析fsdb的命令。

$fsdbDumpfile("top_module.fsdb");

$fsdbDumpvars(100,"tb_top.top_module","+all");

3 在GUI界面里的执行过程

在terminal中使用如下命令打开spyglass的GUI界面:

>spyglass &

打开GUI界面后点击shell命令,在其中逐条输入如下命令:

1 set DESIN_TOP top_module

2 read_file -type sourcelist ./xx/xx/top_module.f

3 source -c ./xxx/xxx/top_module_lib.f

4 foreach i $lib_file { read_file -type gatelibs {i}}

5 set_option top top_module

6 current_design top_module

7 fead_file -type -sgdc ./xxxx/xxx/top_module.sgdc

8 activity_data -format fsdb -file ./xxx/fsdb/top_module.fsdb -sim_topname tb_top/top_module

9 set_option enableV05 yes

10 set_option enableSV yes

11 #set_option define RAM_USE

12 set_option language -mode mixed

13 set_option sgsyn_clock_gating true

14 #set_option sgsyn_clock_gating_threshold 4

15 #set_option enable_power_platform_mode yes

16 current_methodology /xx/xx/rtl_handoff

然后点击goal_setup选项,再点开power再勾选需要进行的power分析选项,常用的选项有下面几种:

power_audit

power_activity_check

power_est_average

power_est_profiling

power_cge_profiling

power_mem_reduction

power_guidance

power_calibration

勾选好后,直接点击run_goal便开始每种目标功耗的分析,分析结束后会给出分析结果,如有fatal、error一定要解决后重新跑,warning需要逐项确认,对功耗有影响的也需要修掉后重新跑。最终估算的功耗会以图表的方式体现,看懂具体的报告请参考spyglass中的userguide (SpyGlass Power Estimation and SpyGlass Power Reduction Submethodology)

4 参考链接

这里面有很多spyglass的userguide文档,其中包含功耗的文档,链接如下:

spyglass power文档 - 数字IC设计讨论(IC前端|FPGA|ASIC) - EETOP 创芯网论坛 (原名:电子顶级开发网) -

先写到这里,如果发现错误,欢迎愉快提出;后续再陆续补充吧~userguide的链接之前有现在没找到,后面找到再补充吧~~~

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值