二、低功耗设计和检查

低功耗总结
一、理论基础二、低功耗设计和检查 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 checkset 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....>analyanalyze library -lowpowerread design -define SYNTHESIS -merge bbox -lastmod -noelab -sv09 -f rtl_file.f elaborate_design -root XXX -rootlyrun 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-powerguide或者直接查看相关仿真工具手册
仿真之后 , verdi查看结果如下:
从仿真中可以看出 , 中间count不定态的部分就是VDD掉电的部分 , 持续一段时间后 , 又重新上电 , 恢复了 。