很多時候,需要把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及其下兩層中的所有信號。