波形文件的三个术语:VCD(Value Change Dump)文件,fsdb(Fast Signal DataBase)文件,WLF(Wave Log File).
对于WLF波形日志文件,只要我们使用过modelsim,应该都很熟。但我们在波形窗口观察波形时,仿真结束时都会生成一个*.wlf的文件(默认是vsim.wlf)。我们下次就可以通过通过modelsim直接打开这个保存下来的波形。vsim -view vsim.wlf -do run.do 其中run.do中的内容为要查看的波形信号。要强调的是这个wlf文件只能是由modelsim来生成,也只能通过modelsim来显示。不是一个通用的文件文件格式。而下面要说明的VCD 却是一个通用的格式。
VCD文件是IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件。可以通过Verilog HDL的系统函数$dumpfile,$dumpvars等来生成。我们可以通过$dumpvars的参数来规定我们抽取仿真中某个特定模块和信号的VCD数据。它主要包含了头信息,变量的预定义和变量值的变化信息。正是因为它包含了信号的变化信息,就相当于记录了整个仿真的信息。我们可以这个文件来再现仿真,也就能够显示波形。另外我们还可以通过这个文件来估计设计的功耗。解决了前一段时间一直不知道这个vcd文件用来干什么的疑问。因为VCD是Verilog HDL语言标准的一部分,因此所有的verilog的仿真器都要能实现这个功能。因此我们可以在verilog代码中通过系统函数来dump VCD文件。另外,我们可以通过modelsim 命令来dump VCD文件,这样可以扩展到VHDL中。具体的命令:
vcd file myfile.vcd
vcd add /test/dut/*
这个就生成一个含dut下所有信号的VCD数据信息。我们在使用来进行仿真
vsim -vcdstim myfile.com test;add wave /*;run -all;
fsdb文件是verdi使用一种专用的数据格式,类似于VCD,但是它是只提出了仿真过程中信号的有用信息,除去了VCD中信息冗余,就像对VCD数据进行了一次huffman编码。因此fsdb数据量小,而且会提高仿真速度。我们知道VCD文件使用verilog内置的系统函数来实现的,fsdb是通过verilog的PLI接口来实现的。$fsdbDumpfile,$fsdbDumpvars等
另外,在VCS仿真器中还有一种VCD+的数据格式VPD,详细情况参照VCS的使用。