值变转储文件(VCD)是一个ASCII文件,它包含仿真时间,范围与信号的定义以及仿真运行过程中信号值的变化等信息。设计中的所有信号或者选定的信号集合在仿真过程中都可以被写入VCD文件。后处理工具可以把VCD文件作为输入并把层次信息、信号值和信号波形显示出来。
现在有许多商业后处理工具以及集成到仿真器中的工具可供使用。对于大规模设计的仿真,设计者可以把选定的信号转储到VCD文件中,并使用后处理工具去调试,分析和验证仿真输出结果。
Verilog提供了系统任务来
选择要转储的模块实例或者模块实例信号($dumpvars),
选择VCD文件的名称($dumpfile),
选择转储过程的起点和终点($dumpon, $dumpoff),
选择生成检测点($dumpall),
example
// 指定VCD文件名。若不指定VCD文件,则由仿真器指定一默认文件名
initial
$dumpfile("myfile.dmp"); // 仿真信息转储到myfile.dmp文件
// 转储模块中的信号
initial
$dumpvars; // 没有指定变量范围,把设计中全部信号都转储
initial
$dumpvars(1, top); // 转储模块实例top中的信号
// 数1表示层次的等级,只转储top下第一层信号
// 即转储top模块中的变量,而不转储在top中调用
// 模块中的变量
initial
$dumpvars(2, top.m1); // 模块中的变量
initial
$dumpvars(0, top.m1); // 数0表示转储top.m1模块下面各个层的所有信号
// 启动和停止转储过程
initial begin
$dumpon; // 启动转储过程
#10000 $dumpoff; // 过了100 000个仿真时间单位后,停止转储过程
end
// 生成一个检查点, 转储所有VCD变量的现行值
initial
$dumpall;
$dumpfile 和 $dumpvars任务通常在仿真开始时指定,$dumpon, $dumpoff和dumpall任务在仿真过程中控制转储过程