使用VCS和Verdi的UPF低功耗仿真流程

目前的SOC芯片很多都做了低功耗设计,现有降低功耗的技术方法有很多,为验证越来越复杂的功率体系结构、多电压域等设计,通常需要使用带UPF的低功耗仿真(Power-Aware Simulation)。

VCS-NLP低功耗仿真流程

VCS Native Low Power (NLP) 支持带UPF的Power-Aware仿真,并主要用于动态仿真(静态有VCLP工具),其使用流程如下:
vcsnlp_flow

  1. 准备UPF (Unified Power Format) 文件,用于描述功耗设计意图(power intent),具体可以参考IEEE-1801标准。
  2. vcs编译选项中添加-upf <upf_file>参数选择UPF文件,VCS会自动调用NLP工具;添加-power_top <TOP module name>指定供电顶层,也可单独在UPF中使用set_design_top指定;-power=<power_options>可指定其他编译选项(详见VCS NLP Quick Reference)。
  3. 在tb中开关电源,可以使用UPF标准包提供的supply_onsupply_off函数。其中supply_on有两个参数,参数一为字符串常量,指定供电端口名称(如果有层次必须使用“/”),参数二为电压值;supply_off函数只有一个字符串参数。示例如下:
import UPF::*;
initial beign
    supply_on("VDD", 1.1);
	supply_on("VSS", 0);
end

由于initial块在仿真中只执行一次,而不是在每次电源恢复时,因此可在UPF文件中添加以下命令启用initial块重触发(reinit):

set_design_attributes -attribute SNPS_reinit TRUE

但是在多power domain设计中,initial块仍可能仅执行一次。

Synopsys提供了一些带UPF仿真的demo可供参考,路径如下:

$VERDI_HOME/demo/power/upf_demo
$VCS_HOME/doc/examples/NLP/MVSIM_NATIVE_DEMO

(建议在做UPF前仿时打开-xprop选项,可以排除很多后仿问题。)

Verdi调试低功耗仿真

Verdi Automated Debug Platform是Verdi自带的一个 Power-Aware仿真调试工具,可用于可视化仿真结果,下面以upf_demo为例。

  1. 导入UPF文件到Verdi。用Verdi打开波形后,在主窗口中选择 File -> Import CPF/UPF Files,Language选择UPF1.0/UPF2.0后选择需要加载的UPF文件;或者也可以在verdi命令行选项中使用-upf1.0-upf2.0导入UPF文件。
  2. 在instance窗口中,每个power domain会用不同颜色高亮区分。
    verdi_instance
  3. 在Hierarchical Power Domain窗口中,可以查看power domain的开关状态。选择 View -> Signal List 打开signal list窗口,双击domian可以trace到对应的UPF文件和signal list。
    verdi_hier
  4. 选择 Power -> Show Power State Table 打开power state table,可以看到各power state/mode。
    verdi_table
  5. 选择 Power -> New Power Map -> Full Power Map 打开power map,可以看到完整的power design结构。
    verdi_power_map
  6. 在波形窗口中调试电源信号,可直接在nWave窗口中选择Get Signals拉取信号,也可在Hierarchical Power Domain或upf文件中右键选择power domain,supply net,isolation cell等添加到波形。
    verdi_nwave

需要注意的是,当power domain掉电时信号会被破坏(CORRUPT),默认情况下所有四值信号会变为X态,二值信号变为0,且此时所有always块不会执行,即使敏感列表信号发生变化。在tb中可以声明一个power_state_simstate型的变量upf_simstate来监视DUT的电源仿真状态;而在下电case的仿真中,isolation后的信号会直接体现在波形上,HDL源码上也会显示isolation信息。
verdi_hdl

参考资料:

  1. VCS Native Low Power (NLP) User Guide
  2. Verdi® Power-Aware Debug User Guide
  3. Synopsys® Multivoltage Flow User Guide
  4. IEEE Standard for Design and Verification of Low-Power, Energy-Aware Electronic Systems (IEEE Std 1801™-2018)
  • 19
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小破同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值