二、低功耗设计和检查
低功耗总结
一、理论基础 二、低功耗设计和检查 2.1 低功耗设计流程
架构设计确定电压域划分->负责power 编写->验证人员完成low power
关于UPF的设计,大家可以参考《IEEE 1801》,本文在这不做详细介绍。
2.2 低功耗设计检查
CLP工具可以用作低功耗UPF的检查。目前来说,建议新用户使用UPF2.1来表述power ,对于UPF CLP的基本脚本如下:
set lowpower option -local_constants -no_use_strategy_location_as_hierarchy
##RTL check
set lowpower option -native_1801 -analysis_style pre_syn
##post-syn check has inserted lp cells
##set lowpower option -native_1801 -analysis_style post_syn
##P&R netlist has pg connection
##set lowpower option -native_1801 -analysis_style post_routeread library -liberty -lp <*file....>
analy
analyze library -lowpower
read design -define SYNTHESIS -merge bbox -lastmod -noelab -sv09 -f rtl_file.f elaborate_design -root XXX -rootly
run library check -usedread power intent -1801
上述脚本中set ,用于指定power 是CPF/UPF/1801,用于指定分析时针对哪个阶段的设计,用于指定 的power 信息等。其他请参考clp user guide。
运行以下脚本:
lec -lp - -gui -1801 - .do
建议使用GUI来check clp的结果,然后点击类似电池的图标(1801 Rule ),如图:
如上图所示,工具将所有的归类,绿色的表示没问题不用关注,红色的表示有需要特别关注,黄色的表示有一般也需要关注。
点开其中一个,右键直接点 rule check,就能够得到该的详细信息,同时还可以右键查看,去追电路。
在debug过程中,基本上用 和 path这两条命令就可以解决大部门的问题。
2.3 低功耗仿真
完成upf文件的编写和检查之后,就可以在仿真case中添加电源的上电过程了,使用$函数给相应的VDD上电($函数可以用来掉电),然后,将UPF添加到仿真命令中,即:
irun - xxx.upf - -
其他仿真工具vcs、等也可以。
相关解释
-
指定符合标准的UPF文件
-
指定赋值被当做对待,而非默认的wire,好处是从 进入和穿过的 的信号被force成x,方便debug
-
对处于 并且直接和 相连接的和 ,不使能功能,默认是不使能该功能的
-t
对于用户定义的enum类型数据,在电源关断后,随机从枚举列表中选择变量值为变量值,该命令跟-,-等类型
-
使能的log功能,一般需要加上
-
使能自动低功耗检查:断电顺序(隔离->复位->断电)和电源打开过程(上电->解复位->解隔离)
注:其他的请参考low-power guide或者直接查看相关仿真工具手册
仿真之后,verdi查看结果如下:
从仿真中可以看出,中间count不定态的部分就是VDD掉电的部分,持续一段时间后,又重新上电,恢复了。