用Modelsim产生/打开VCD文件的方法
很多时候,需要把VCS仿真的波形导入到Modelsim中进行观察,这个时候无法直接查看,因为Modelsim只支持.wlf波形文件,所以需要做格式转换。
VCS仿真后的波形可保存为VCD(value change dump:值变转储)文件,是ASCII格式,该文件包含设计中指定变量的取值变化信息。包括文件头信息、节点变化、取值变化。那么如何用Modelsim来打开该文件呢?
用Modelsim打开VCD文件
(1)在Modelsim中的控制台输入:vcd2wlf file1.vcd file2.wlf
其中,file1是要转换的.vcd文件名,file2是转换后的文件名。转换完成后该文件位于当前Modelsim工程目录下。
(2)在Modelsim中File->Open->file2.wlf->在object标签中选取需要观察的信号添加到波形窗即可,后面同一般的Modelsim工程仿真。
①打开modelsim,点击“File”,点击“Change Directory”。
②选择vcd文件所在的目录。
③输入命令:vcd2wlf test.vcd test.wlf,回车。(ps:这里我的vcd文件是test.vcd)
④生成wlf文件。
⑤把它拖到modelsim中的console窗口。
⑥右键“Add Wave”,查看波形。
Modelsim产生VCD文件
方法一:
有时候为了便于格式转换,比如把Modelsim仿真的波形在其他仿真软件上显示(如:VCS)就需要把Modelsim的波形仿真文件保存为VCD格式。具体如下:
(1)将Modelsim工程编译,排除语法错误,然后在菜单栏Simulation标签中点击Start simulation加载设计;
(2)在Modelsim控制台输入命令:vcd file filename.vcd 创建.vcd文件,其中filename是要生成的文件的文件名;
(3)继续输入命令:vcd add path/*,需要注意的是path是你生成的.vcd文件保存的路径,若就是当前工程,则直接是vcd add /*即可;
(4)在Modelsim中运行仿真,产生VCD波形文件;
(5)当波形文件产生完成后,需要退出仿真。命令:quit -sim。
通过上述方法可以完成Modelsim对VCD文件的产生和转换。
方法二:
在testbench加入
以下代码
initial begin $dumpvars(); $dumpfile("test.vcd"); End
运行仿真后,工程目录下会自动保存相应的vcd文件
VCD文件还可以用系统命令产生,具体来说,常用的有下面的命令:
$dumpfile(); 打开一个VCD数据库用于记录
$dumpvars(); 选择要记录的信号
$dumpflush; 将VCD数据保存到磁盘
$dumpoff; 停止记录
$dumpon; 重新开始记录
$dumplimit(); 限制VCD文件的大小(以字节为单位)
$dumpall; 记录所有指定的信号值
比如,我在Verilog代码中可以加入
initial begin $dumpfile ("cla_4.vcd"); $dumpvars (0,U_1.a,U_1.b,U_1.cin); $dumpvars (0,U_1.cout); $dumpvars (0,U_1.sum); #200 $dumpoff; #100 $dumpon; end
U_1是测试模块名,a b cin cout sum都是信号名
关于$dumpvars的用法如下:
$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及其下两层中的所有信号。