在數(shù)字電路設(shè)計(jì)中(Verilog or VHDL),ModelSim是常用的仿真工具。當(dāng)我們仿真大型的工程時(shí),往往需要保留仿真波形,以便分析和以后查看。這就需要學(xué)習(xí)在ModelSim里面如何保存仿真波形及調(diào)用波形。
為了方便以后察看仿真結(jié)果,可以將仿真波形保存在.Wlf文件中:
一。保存過(guò)程:
1.完成仿真波形
2.切換到sim視窗
3.點(diǎn)擊保存圖標(biāo),可以直接保存為.wlf文件
二。打開(kāi)過(guò)程
1.打開(kāi)modelsim
2 file菜單打開(kāi).wlf文件(要在文件類(lèi)型中選擇.wlf類(lèi)型)
3.確定之后出現(xiàn)sim視窗
4.選中窗口中的測(cè)試文件名右擊————add wave即可在wave窗口打開(kāi)該測(cè)試坡形。
三。也可以將波形保存為.do文件
do文件記錄了仿真的過(guò)程和加載的各種庫(kù)。
do文件的保存過(guò)程:
file——》save format——》D:/modeltech_6.5b/examples/wave.do 可以更改do文件名稱(chēng)和存放目錄
2.do文件的加載:
file——》load(注意要在sim視窗下)。打開(kāi)之后貌似只顯示出仿真過(guò)程代碼,沒(méi)法顯示波形。
modelsim保存仿真結(jié)果,以及打開(kāi)保存的仿真結(jié)果的波形wlf文件(經(jīng)過(guò)實(shí)驗(yàn),真實(shí)可用)
1、在wave界面,將仿真波形保存為 .do文件(信號(hào)列表文件)。
2、切換左邊任務(wù)欄至“sim”,,點(diǎn)擊保存,給將要保存的 .wlf文件(波形文件)命名為自己想要的名字,默認(rèn)為vsim.wlf。
(wlf文件為modelsim的wave log file文件格式)
3、保存,OK,關(guān)閉modelsim(注意,必須關(guān)閉modelsim,否則打開(kāi)wlf文件的時(shí)候,會(huì)提示未正常關(guān)閉,無(wú)法打開(kāi))。
4、重啟modelsim,open 之前保存的 .wlf文件,然后 load 對(duì)應(yīng)的 .do文件。
也可以使用命令行的格式打開(kāi)此波形文件,舉例如下:vsim -view wave.wlf -do run.do。
do文件記錄了仿真的過(guò)程和加載的各種庫(kù)。
do文件的保存過(guò)程:
file——》save format——》D:/modeltech_6.5b/examples/run_wave.do 可以更改do文件名稱(chēng)和存放目錄,一般保存在仿真目錄中。
2.在仿真路徑中找到文件vsim.wlf打開(kāi),再命令窗口輸入:do run_wave.do
具體操作:
1.打開(kāi)modelsim se :切換目錄到仿真工程下。
2.命令行輸入:OpenFile vsim.wlf
3.命令行輸入:do run_wave.do(上次保存的wave.do文件)
參考:
保留仿真后的波形,步驟如下:
1.點(diǎn)擊file菜單下的save format,保存為.do格式文件
2.下次打開(kāi)Modelsim后,在控制臺(tái)輸入do wave.do命令后,即可看到上次仿真的波形圖
此外,點(diǎn)擊向上箭頭的按鍵可以重復(fù)輸入上次命令。
怎么樣保存仿真的完整波形(不是printScreen),F(xiàn)ile》export》image好象和截屏的功能一樣,只能保存一部分波形,怎么樣保存成modelsim認(rèn)識(shí)的波形,下次看的時(shí)候只需要打開(kāi)這個(gè)波形圖,不需要重新仿真,這個(gè)在vcs中可以的,用vcd文件,好像modelsim也支持dump vcd的,不知道具體怎么做,怎樣保存,怎么樣打開(kāi)?
使用“dataset save sim filename.wlf ”保存仿真波形,
filename.wlf文件的名字可以自己任意取。打開(kāi)時(shí)候直接,open filename.wlf文件就可以了。
直接通過(guò)OPEN找到.WLF文件,打開(kāi)就可以了。
保存wlf,下一次只要直接打開(kāi)它就可以了。但是有這樣的情況出現(xiàn),如果在保存wlf前,你改動(dòng)了某些信號(hào)的位置,下一次打開(kāi)是會(huì)回到原先的位置,此時(shí)你可以把do文件一起保存,在下一次打開(kāi)wlf文件后,再打開(kāi)do文件,你先前的順序就會(huì)回來(lái)
波形信號(hào)的保存:有時(shí),在波形窗口內(nèi)拖放了較多的信號(hào),可以保存起來(lái)以后調(diào)入。在wave窗口,F(xiàn)ile -》 Save format,保存成*.do文件。以后需要調(diào)入時(shí),在modelsim主窗口命令行內(nèi)執(zhí)行:do *.do即可
ModelSim中寄存器組值查看工具
在ModelSim中,當(dāng)定義了寄存器數(shù)組(例如:reg [7:0] ram [0:127]),可以通過(guò)Memory List工具查看仿真時(shí)的值。步驟:
1.定義Reg類(lèi)型,例如RAM
module ram_1024Byte
#(parameter DATA_WIDTH = 16, parameter ADDR_WIDTH = 8)
(
input [(DATA_WIDTH-1):0] data,
input [(ADDR_WIDTH-1):0] read_addr, write_addr,
input we, clk,
output reg [(DATA_WIDTH-1):0] q
);
// Declare the RAM variable
reg [DATA_WIDTH-1:0] ram[0:(2**ADDR_WIDTH-1)];
// Initiation
initial
begin
$readmemh(“。。/dev/ram_init.dat”, ram);
end
// Read and Write Operation
always @ (posedge clk)
begin
// Write
if (we)
ram[write_addr] 《= data;
// Read (if read_addr == write_addr, return OLD data)。 To return
// NEW data, use = (blocking write) rather than 《= (non-blocking write)
// in the write assignment. NOTE: NEW data may require extra bypass
// logic around the RAM.
q 《= ram[read_addr];
end
endmodule
2.仿真
新建工程-》編譯-》仿真(without optimization)
View-》Memory List,便可以查看RAM中寄存器的值
評(píng)論
查看更多