Verilog提供一系列系统任务用于记录信号值变化保存到标准的VCD(Value Change Dump)格式数据库中。大多数波形显示工具支持VCD格式。
$dumpfile("file. dump"); 打开一个VCD数据库用于记录
$dumpvars(); 选择要记录的信号
$dumpflush; 将VCD数据保存到磁盘
$dumpoff; 停止记录
$dumpon; 重新开始记录
$dumplimit(); 限制VCD文件的大小(以字节为单位)
$dumpall; 记录所有指定的信号值
必须首先使用$dumpfile系统任务,并且在一次仿真中只能打开一个VCD数据库。
在仿真前(时间0前)必须先指定要观测的波形,这样才能看到信号完整的变化过程。
仿真时定期的将数据保存到磁盘是一个好的习惯,万一系统出现问题数据也不会全部丢失。
VCD数据库不记录仿真结束时的数据。因此如果希望看到最后一次数据变化后的波形,必须在结束仿真前使用$dumpall。
在testbench文件中加入如下代码
initial
begin
$dumpfile ("testbench. vcd");
$dumpvars (0, testbench); //Dump testbench模块的所有信号
end
或者
initial
begin
$dumpfile ("testbench. vcd");
$dumpvars; // Dump所有层次的信号
end