ModelSim创建VCD文件手册

来源:互联网 发布:centos 调整时区 编辑:程序博客网 时间:2024/04/26 02:50

教你Modelsim创建VCD文件
2008年07月02日 星期三 14:39
Verilog提供一系列系统任务用于记录信号值变化保存到标准的VCD(Value Change Dump)格式数据库中。大多数波形显示工具支持VCD格式。 系统任务 功能
$dumpfile("file. dump"); 打开一个VCD数据库用于记录 $dumpvars(); 选择要记录的信号
$dumpflush; 将VCD数据保存到磁盘  $dumpoff; 停止记录 $dumpon; 重新开始记录
$dumplimit(); 限制VCD文件的大小(以字节为单位) $dumpall; 记录所有指定的信号值

VCD数据库是仿真过程中数据信号变化的记录。它只记录用户指定的信号。 用户可以用$dump*系统任务打开一个数据库,保存信号并控制信号的保存。除$dumpvars外,其它任务的作用都比较直观。 $dumpvars将在后面详细描述。 必须首先使用$dumpfile系统任务,并且在一次仿真中只能打开一个VCD数据库。 在仿真前(时间0前)必须先指定要观测的波形,这样才能看到信号完整的变化过程。
仿真时定期的将数据保存到磁盘是一个好的习惯,万一系统出现问题数据也不会全部丢失。
VCD数据库不记录仿真结束时的数据。因此如果希望看到最后一次数据变化后的波形,必须在结束仿真前使用$dumpall。

$dumpvars语法:
$dumpvars[(< levels>, *)];
scope可以是层次中的信号,实例或模块。
仿真时所有信号必须在同一时间下使用$dumpvars。
就是说可以使用多条$dumpvars语句,但必须从同一时间开始。如:

 initial begin
$dumpfile (“verilog. dump”);

$dumpvars (0, testfixture.a);

#1 $dumpvars (0, testfixture.b);

end
要给$dumpvars提供层次(levels)及范围(scope)参数,例如

$dumpvars; // Dump所有层次的信号
$dumpvars (1, top); // Dump top模块中的所有信号
$dumpvars (2, top. u1); // Dump实例top. u1及其下一层的信号
$dumpvars (0, top. u2, top. u1. u13. q); // Dump top.u2及其以下所有信号,以及信号top. u1. u13. q。
$dumpvars (3, top. u2, top. u1); // Dump top. u1和top. u2及其下两层中的所有信号。
用下面的代码可以代替前面test fixture的$monitor命令:

initial

begin
$dumpfile (“verilog. dump”); $dumpvars (0, testfixture);


原创粉丝点击