WHY需要 PowerArtist
功耗是芯片的一大重要指标(PPA),在项目中需尽早识别出功耗的风险及对需要优化的代码做出甄别。
环境适配
根据脚本的层次进行适配、 脚本说明
脚本之间的调用关系如下。/pa/run为最顶层脚本
/pa/run—>/pa/scr/pa_run.tcl—-> /pa/scr/ d e s i g n / c o n f i g u r a t i o n . t c l / p a / s c r / l i b / l i b r a r y / L i b r a r y x x x . t c l / p a / s c r / {design}/configuration.tcl /pa/scr/lib/library/Library_xxx.tcl /pa/scr/ design/configuration.tcl/pa/scr/lib/library/Libraryx?xx.tcl/pa/scr/{design}/UserConfiguration.tcl–>/pa/scr/lib/don’t_use_list/xxx.tcl
–>/pa/scr/lib/set_vt/xxx.tcl
–>/pa/scr/ d e s i g n / c l o c k . t c l / p a / s c r / {design}/clock.tcl /pa/scr/ design/clock.tcl/pa/scr/{design}/filelist
/pa/tc/ d e s i g n . t c l / p a / s c r / s e t u p . t c l 其中变量 d e s i g n 的值即为要跑功耗的 s u b 的顶层的名字,也是 r u n 命令的第一个参数。 ! [ 在这里插入图片描述 ] ( h t t p s : / / i m g ? b l o g . c s d n i m g . c n / 85855 d f d 9 d e 445 b e 90 d 5 e 88 a b e 3 e d 238. p n g ) ! [ 在这里插入图片描述 ] ( h t t p s : / / i m g ? b l o g . c s d n i m g . c n / 992 f e 6826 b 644 a e 4926 a d 6266 e 29 a 315. p n g ) 1.1 U s e r C o n f i g u r a t i o n . t c l : 设置 w i r e l o a d m o d e l 这个值是一个经验值,根据 P T P X 结果和 P A 来匹配,通过该设置的调整使 P A 结果接近 P T P X 结果;设置 c o r n e r , V T 比例;设置时钟 L I S T (一般为仿真顶层输入端口的时钟以及内部 C R G 的输出时钟);设置参考时钟(频率最高) / p a / t c / {design}.tcl /pa/scr/setup.tcl 其中变量design的值即为要跑功耗的sub的顶层的名字,也是run命令的第一个参数。  1.1 UserConfiguration.tcl:设置wire_load_model 这个值是一个经验值,根据PTPX结果和PA来匹配,通过该设置的调整使PA结果接近PTPX结果;设置corner,VT比例;设置时钟LIST(一般为仿真顶层输入端口的时钟以及内部CRG的输出时钟);设置参考时钟(频率最高) /pa/tc/ design.tcl/pa/scr/setup.tcl其中变量design的值即为要跑功耗的sub的顶层的名字,也是run命令的第一个参数。1.1UserConfiguration.tcl:设置wirel?oadm?odel这个值是一个经验值,根据PTPX结果和PA来匹配,通过该设置的调整使PA结果接近PTPX结果;设置corner,VT比例;设置时钟LIST(一般为仿真顶层输入端口的时钟以及内部CRG的输出时钟);设置参考时钟(频率最高)/pa/tc/{testcase}.tcl:1设置需要跑的阶段
ELABORATE,VECTOR,AVERAGE,REDUCE,REWRITE,DEBUG,RPM,REPORT
ELABORATE设为0时,如果之前已经跑过Elaborate,为了节省时间,会跳过ELABORATE阶段,设为1时,无论之前是否已经跑过Elaborate,都会重新跑。如果代码做过修改,建议删除之前跑的文件夹或设Elaborate=1,让其重新跑ELABORATE。
2、里面指定要跑的testcase和其对应的波形,以及波形里面跑功耗的起始和截止时间。
如果有多个case,多个case是顺序执行的,在rpt目录 每个testcase都会生成一个文件夹。功耗数据在里面。
结果查看
1 Black boxing检查(must)
在 告目录下Yourdesign.Elaborate.log中搜索关键字“HDL-61”,”black boxing”等关键字,确认是否有模块被blackbox
2 时钟untrace(must)
告目录/用例名/averagepower.log
在AveragePower.log中检查时钟定义缺失。需要在clock list中增加缺失的时钟。
ENG-127
3 HDL-136
vendor_data目录下所有库文件的仿真模型.v文件,不可添加在verilog_startup_file的filelist中读入,应该读入对应的lib文件,filelist中应该只包含rtl代码(前仿)或 表文件(后仿)。
4 结果分析
PowerArtist &
打开对应用例下AveragePower.pdb
PA背景知识
PA输入输出文件
输入:RTL files/Power models/Clock Definitions/Activity(仿真波形)/Parasitics(WLM)/Power Format(UPF/CPF)
输出:功耗 告
The Unified Power Format(UPF)是一种可以贯穿在芯片设计、分析、验证、实现整个流程的统一电源信息描述格式语言,可以对电路系统的 supply network、switches、isolation、retention以及其他相关因素进行详细的说明(独立于逻辑电路独立且是逻辑电路的抽象)。UPF明确了对每个设计单元的电源供应 ,和各个独立的供应 络在和谐共处的前提下能保证每个部件正常工作,以及逻辑功能如何扩展使得能支持动态的电源变化。通过调节不同供电 络的电压,来实现对芯片的工作区域的控制。
Common Power Format (CPF), a standardized format for specifying power-saving techniques early in the design process, to deliver an end-to-end low-power design solution to IC engineers.
通用电源格式(CPF),一种在设计过程的早期,用于指定节能技术的标准化格式,为IC工程师提供端到端低功耗设计方案。
4功耗计算
静态功耗(Leakage Power)
短路功耗(short_current power/internal power)
开关功耗(Switching Power)
PA 执行流程
ELABORATE-VECTOR-AVERAGE
PA注意事项
5.1 userconfiguration 时钟设置
参考时钟为用例中有效的最高频率的时钟(该时钟不要求与对应用例中任务有关,但必须要在波形中确定该时钟打开),注意在波形中确认各个时钟的状态。
5.2 用例&波形
在合入用例的时候,也要关注.cfg .sv .h的内容。
要关注哪些功能的功耗,用例中要保证这部分功能覆盖到。
PA用到的波形仿真时间不要过长,正常情况下5us。
5.3 MEM功耗
MEM尺寸不变的话,静态功耗差异不大。
5.4 软件版本
要注意Verdi-2015.09SP1 和PA-17.1.6软件的版本要兼容。
5.5 功耗比对
在和之前版本功耗对比时,要注意器件库的选择,VT比例,线负载模型是否一致,通过下面 告确认
5.6 PA 执行指令
run + 模块名+TC名+foundry+VT+7T+20P+0p7
5.7 裁剪波形指令
拼接:

PA波形 建议波形层次为0(ALL)。8000为内存大小,每个.fsdb为8000,超过的波形会存为wave_001,2,3
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!