1. 前言**
Xcelium使用命令行选项来启用和控制低功耗仿真。所有与低功耗仿真相关的命令选项都以-lps_前缀开头的。
Cadence建议按照以下方式来仿真带有功率信息的RTL设计。
- 在没有电源信息的情况下对设计进行仿真调试,也就是不带低功耗命令行选项的情况的情况下进行仿真;
- 利用电源信息对设计进行仿真调试,也就是使用低功耗命令行选项进行仿真;
低功耗命令选项可以在以下时间点进行指定:
- Elaboration时:
- xrun法:使用xrun,选项会自动传递给elaborator;
- 直接调用模式法,可以在xmelab命令行上指定选项;
- Simulation时:
- xrun法:使用xrun,选项会自动传递给simulator;
- 直接调用模式法,可以在xmsim命令行上指定选项;
下面分别介绍如何使用xrun法和直接调用模式法对RTL设计进行低功耗仿真。
2. 使用xrun法来低功耗仿真
要对RTL设计进行低功耗仿真,需要使用-lps_1801命令行选项指定电源信息文件(UPF)的名称和位置。xrun命令支持以下调用模式:
单步法调用模式:
>> xrun -lps_1801 <filename>.upf [xrun_options] <source_files>
在这种模式下,在单个xrun命令行上指定所有命令行选项和源文件;
多步法调用模式:
>> xrun -compile [compilation_options] <source_files>
在这种模式下,使用多个xrun命令行来编译、细化和仿真RTL设计。
3. 使用直接调用模式来低功耗仿真**
在直接调用模式下,直接使用单独命令来进行编译。细化和仿真。比如Verilog的话:
>> xmvlog [compilation_options] <source_files>
下图展示了这个模式的使用流程图。
4. testbench包装器
Xcelium默认需要一个testbench包装器,这是一个小的UPF文件,它定义了testbench作用域,以及使用set_design_top和load_upf命令的root作用域及其相应的UPF文件。如下图所示,有一个UPF testbench,它有一个名为tb_top的顶层模块,一个被测设计(DUT),它的例化名为dut。如果DUT对应的UPF文件名为dut.upf,testbench包装器的名字叫作testbench.upf,那么在testbench.upf里可以包含下面的命令。
% set_design_top tb_top -testbench% load_upf dut.upf -scope dut
- 第一个set_design_top命令包括-testbench选项。它指定了testbench范围的顶层。
- 第二个load_upf命令是dut.upf的一部分,它被testbench包装器调用。
最终在xrun命令上使用以下命令开始低功耗仿真:
>> xrun lps_1801 testbench.upf [other_options] test.v
需要注意的是,testbench包装器仅仅对低功耗仿真是必须的,并且会被Cadence设计和实现工具所忽略。
作为testbench包装器的替代方案,可以选择从xrun或xmelab命令行指定RTL设计的顶层范围以及相应的UPF文件。使用选项-lps_dut_top指定从Verilog或VHDL testbench到DUT的路径,并使用-lps_1801指定DUT对应的UPF文件。
>> xrun -lps_dut_top tb_top/dut -lps_1801 dut.upf [other_options] test.v
也就是用省了创建一个testbench.upf的文件,直接在UPF相关信息放在命令行上。
5. Dump低功耗信息到波形
为了在仿真波形上展示出低功耗信息,比如电源电压,如下图所示。
需要在Xcelium里使用以下Tcl命令:
call xmDumpvars 0 xxx_tbench +allcall xmDumpon
END
作者:沪闵菜菜子
文章来源:处芯积律
推荐阅读
更多 IC 设计干货请关注IC 设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。