【基礎】Modelsim的基本使用

1.建立庫並映射
建立並映射庫有兩種方法:
方法一:在Modelsim中選擇File/New/Library,在彈出的對話框中填入庫名稱,點擊OK就完成了庫的建立和映射。
 
方法二:在Modelsim>提示符下運行命令:
vlib work2
vmap work work2
 

2.新建工程項目
選擇下拉菜單File /New/Project命令,新建一個工程。在Project Name中輸入工程名,在Project Location下的對話框中,輸入保存該工程所有文件的文件夾的路徑名。Default Library Name對話框使用默認設置work即可。
                      

  3.輸入源代碼
在Workspace中的Project右鍵Add to project-->New File,把類型選爲Verilog然後對文件進行命名。或者選擇主控Main窗口的下拉菜單File/New/Source/Verilog HDL選項,出現源代碼編輯窗口。將源代碼輸入並保存。源代碼文件shiftregist.v如下:
module shiftregist
(data_out,clk,rst_n,load,data_load,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft);
parameter shiftregist_width=4;
output [shiftregist_width-1:0] data_out;
input [shiftregist_width-1:0] data_load;
input load,clk,rst_n,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft;
reg [shiftregist_width-1:0] data_out;
always @(posedge clk or negedge rst_n)
   if (!rst_n)
       data_out<=0;
   else if (load)  data_out<=data_load;
        else if (ctr_shiftright)
                 data_out<={data_shiftright,data_out[shiftregist_width-1:1]};
             else if (ctr_shiftleft)
                      data_out<={data_out[shiftregist_width-2:0],data_shiftleft};
                  else data_out<=data_out;
endmodule




4.將文件添加到工程中
剛纔輸入的文件已經保存在當前Project的文件夾中。在Main窗口選擇Project/Add to Project/Existing File…選項將文件添加到工程中。如果之前是用Add to Project則不需要這一步驟。

5.編譯源代碼
在Workplace窗口Project對話框中選中shiftregist.v,然後在主控Main窗口中選中Compile/Compile selected選項對源代碼進行編譯。編譯成功後,transcript對話框中將報告“#Compile of shiftregist.v was successful”。如果當前工程中有多個.v文件,則可以選擇Compile/Compile selected選項完成對源代碼文件的批量編譯,也可以一次選擇多個文件進行編譯。


編譯成功後會有綠勾,然後下面也有綠字,之後就可以進行仿真。


  
 6.建立並添加測試文件
用Verilog HDL編寫測試激勵文件,然後進行仿真的操作。先輸入測試激勵文件,然後進行仿真的操作。先輸入測試激勵文件的源代碼,並存盤;然後將該文件添加到當前的工程項目中,再對該文件進行編譯,其操作過程與前面介紹的相同。帶控制端的移位寄存器的測試激勵源代碼文件testbench_shiftregist.v如下:
module testbench_shiftregist;
parameter shiftregist_width=4;
reg [shiftregist_width-1:0] data_load;
reg load,clk,rst_n,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft;
wire [shiftregist_width-1:0] data_out;
always 
  #5 clk=~clk;
initial begin data_load=0;load=0;rst_n=1;ctr_shiftright=0;ctr_shiftleft=0;clk=0;
data_shiftright=0;data_shiftleft=0; end
initial begin #10 rst_n=0;#3 rst_n=1;end
initial begin #15 load=1;data_load=4'b1010;#10 load=0; end
initial begin #30 ctr_shiftright=1;#20 data_shiftright=1;#20 ctr_shiftright=0;
#20 ctr_shiftleft=1;#25 data_shiftleft=1;#20 data_shiftleft=0; end
shiftregist U1 (.clk(clk),.rst_n(rst_n),.load(load),.ctr_shiftright(ctr_shiftright),
                .ctr_shiftleft(ctr_shiftleft),.data_shiftright(data_shiftright),
                .data_shiftleft(data_shiftleft),.data_load(data_load),.data_out(data_out));
endmodule


7.打開仿真器
在主控窗口中選擇Simulate/Start Simulation…命令,得到仿真設置對話框(注意:將當前工作庫work前面的加號“+”點開,選擇testbench_shiftregist作爲頂層文件進行仿真)。在Design選項卡相應的庫名下選擇testbench_shiftregist模塊,然後去掉Enable optimization的鉤,再單擊OK按鈕。下圖顯示的就是打開仿真器後的界面。


8.打開調試窗口
在Modelsim的Main窗口的View下面有各種全面反映用戶設計模塊的各個方面的特性與內容的窗口,非常便於用戶管理和調試。用戶對一個窗口的修改將會自動影響到相關窗口的變化,同時用戶也可以方便地利用鼠標在窗口之間進行選擇和拖放。
打開窗口的操作方法是:在主控Main窗口的View下拉菜單中,單擊相應的窗口名即可。已打開的窗口名前有“√”符號提示,再次單擊該窗口名將關閉相應窗口,前面的“√”符號也將消失。例如,選擇View/Wave命令,將打開仿真波形窗口等。下圖是一種簡單的看波形的方法。




9.添加需要觀察的信號
在Workplace窗口的sim對話框中單擊需要觀察的模塊名,在Objects窗口中則會列出該模塊的各個端口名及內部信號。可以單擊選中其中一個需要觀察的信號名,如果按住Ctrl鍵,則可以通過單擊選中多個需要觀察的信號名,然後在選擇下拉菜單Add/Wave/Slected Instance命令打開Wave窗口,而且剛纔被選中的信號已經被添加到Wave窗口中。設計者還可以根據調試和測試需要,刪除Wave窗口中的信號,或向其中添加新的信號。

10.運行仿真器
1)在主控Main窗口的下拉菜單Simulate選項下有控制仿真器運行的多個命令選項。點擊Simulate/Run,仿真會運行100ns(默認的仿真長度)後停止。
2)在主窗口的VSIM>提示符下,輸入“run 500”,仿真器會再進行另外500ns的仿真,共計仿真了600ns。
3)在主菜單、波形窗口或源代碼窗口的工具條上,單擊Run-all圖標,仿真連續運行,直到被中斷或在代碼中遇到諸如Verilog HDL中的$stop語句等,暫停仿真。
4)單擊break圖標,終止仿真運行。
5)在主控Main窗口中,單擊Simulate/End Simulation…選項,即可結束仿真。 


  11.調試debug
Modelsim的調試手段有很多,主要包括:在代碼中設置斷點、步進調試;觀察波形窗口(Wave),測量時間;通過數據流窗口(Dataflow),分析物理連接;通過Memory窗口,觀察設計中存儲器的數值;統計測試代碼覆蓋率;波形比較。
利用Wave窗口、Dataflow窗口和List窗口是常用的分析手段。
(1)使用波形窗口
觀察設計波形是調試設計的一種方法,加載仿真後,就可以使用波形窗口了。可以用菜單view/wave打開波形窗口,下圖是波形窗口打開之後的界面。在波形窗口中可以採用向波形窗口添加項目,對波形顯示的圖像縮放,在波形窗口中使用遊標,設置斷點,存儲波形窗口格式,將當前的仿真結果存儲到波形記錄格式文件(WLF)中等手段進行調試。
 

Modelsim中保存波形文件大致有以下三種方法:
Format文件:在波形窗口的主菜單中選擇File/Save保存wave format,在新打開的窗口中填入DO文件的存儲路徑E:/shiftregist/wave.do,單擊OK完成文件存儲。如果需要加載該文件,在打開的波形窗口中選擇“File Open Format”,在Open Format窗口中選擇wave.do文件,單擊Open按鈕打開該文件。Modelsim將恢復該窗口的信號和遊標的前一次狀態。
WLF文件(Datasets):Modelsim仿真結果也可以存儲到一個波形格式記錄文件中,用於以後瀏覽和與當前的仿真結果的比較。通常使用術語“Dataset”表示已創建並可重加載的WLF文件。可在主菜單中選擇“File/Datasets/Save as”,在Save as對話框中輸入要保存的波形文件名稱,點擊OK就完成了波形文件的保存。使用File/datasets/open,在彈出的Open Dataset對話框中在Browse中輸入dataset的路徑,即可打開以保存的波形文件。
VCD文件:VCD文件是一個IEEE1364標準(Verilog HDL語言標準)中定義的一種ASCII文件。它是一種EDA工具普遍支持的通用的波形信息記錄文件。在前面的章節的內容已經詳細介紹瞭如何使用Verilog HDL中的系統函數來dumpVCD文件。
(2)使用數據流窗口
Dataflow窗口能夠對VHDL信號或者Verilog HDL的線網型變量進行圖示化追蹤,在界面中驅動信號或驅動線網變量的進程顯示在左邊,反之被驅動信號顯示在右邊。可以通過雙擊Wave窗口中需要追蹤的信號打開Dataflow窗口。下圖顯示的是數據流窗口的界面。


 
數據流窗口有四個功能:
1)觀察設計的連續性:可以檢查設計的物理連接性,可以逐個單元地觀測所關注的信號、互聯網絡或寄存器的輸入/輸出情況。
2)追蹤事件:跟蹤一個非預期輸出的事件,使用嵌入波形觀察器,可以由一個信號的跳變回溯追蹤,查到事件源頭。
3)追蹤未知態:數據流窗口追蹤不定態的功能是工程師比較親睞的,在Dataflow窗口中使用Trace/ChaseX功能,會不斷往驅動級追蹤不定態傳遞的源頭。當選擇ChaseX時,圖形界面不再變化時,就是不定態的源頭了。之後就可以根據數據流窗口的結果,去定位源代碼產生不定態的語句,並加以改正。
4)顯示層次結構:可以使用層次化實例顯示設計的連通性。
(3)使用列表窗口
List窗口以表格化的方式顯示數據,可以方便的通過搜索特殊值或者特定條件的數據,簡化分析數據的過程。可以用view/list打開List窗口。在List窗口的左邊顯示的是仿真的時間點,右邊顯示的是每個時間點對應的變量值。下圖顯示的是列表窗口。


 
  與Wave窗口一樣,List窗口可以保持數據的列表格式和列表內容。在List窗口中選擇File/Save,在彈出的Save Format對話框中輸入保存列表的名稱,點擊保存就可以了。數據列表也是一個.do的可執行腳本文件,可以通過命令do file_name.do打開列表文件。
在File/Write List選項下選擇一種格式,完成對列表內容的保存。列表內容文件是lst格式的文件,要查看文件內容是可通過記事本打開該文件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章