程式執行暫停或是跑到中斷點時,要查看任一訊號或變數的數值,方法有三種
從wave window查看 游標指到source or edit視窗內的該變數,即會顯示該變數當時的數值 View Variables模擬結果如下
如果想要看所有波形的範圍:View Zoom Zoom Full以滑鼠左鍵在波形顯示區域點一下,就會出現黃色的垂直座標線(cursor, 參閱step 5-4)。直接在訊號波形上雙擊,會帶出Dataflow window (step 5-3);如果你是在紅色的(unknown)線上雙擊,還可以進一步的在Dataflow window內選定該unknown signal 的wire,按滑鼠右鍵選擇 TraceX 協助你debug如果訊號不想以預設的二進位表示,可以在wave window內選定該訊號名稱,按滑鼠右鍵選擇Signal Properties...,然後選擇表示方法(如十進位表示Decimal)。
-
Dataflow window (for debugging and tracing)
"Dataflow window"可用來檢視所設計的電路,其訊號的實際連接情況(Drivers / Receivers),也就是顯示訊號在執行模擬的過程中,經過哪些程序(process),開啟的方法有兩個:
直接雙擊wave window的訊號波形,會自動跳出dataflow window,其中顯示該訊號的連接情況;以這種方法帶出dataflow window會在下方同時顯示wave viewer,不需要的話可以從ViewShow Wave取消。 從ModelSim主視窗中的ViewDataflow開啟視窗,從signals window將要看的訊號"拖曳"到Dataflow window5-1 假設我們要看的是orig_del_bit_s1訊號,此時Dataflow window顯示如下:
5-2 如果想進一步察看此訊號的Receiver,選定其輸出連線(red highlight),按 (expand net to all readers, ie. dow-stream circuit) 就會顯示如下結果: (直接以滑鼠左鍵雙擊red highlighted line也有同樣效果)
同理,可以使用 查看訊號的Drivers (ie. up-stream circuit)、使用 查看訊號的Drivers and Receivers。(Erase All): 清除dataflow window5-3 從dataflow視窗的ViewShow Wave,打開embedded wave viewer
選定dataflow視窗內的元件#ASSIGN#104,此時會看到wave視窗內列出該元件的所有I/O:
(此時如果有打開edit or source window,會自動顯示出元件#ASSIGN#104在原始碼的相對位置)
5-4 執行模擬3500 ns,結果如下:可以看到此cell的輸入觸發輸出的情況
選定想要用cursor測量觸發時間點的訊號 以滑鼠左鍵在wave顯示視窗上點一下,cursor(黃色垂直線含時間座標)會自動出現 利用"Finder Previous Transition"、"Finder Next Transition"兩個icons,可以讓cursor自動貼到trigger edge,以便正確的量測觸發時間點。此功能非常便於尋找訊號的觸發/轉態點(active point)如果想將 某一個cursor 快速顯示在wave window內(將顯示波形範圍移到該處):
View Cursors 選擇想跳至的cursor5-5 如何step by step追蹤output被input觸發的情況呢?
選定想要追蹤被觸發情況的訊號 按 "Trace input net to event" icons 自動產生另一個cursor指到前一個觸發output的input時間點,多按幾次"Trace input net to event",會看到如下圖所示的情況,兩個cursor之間的時間間距,為白色文字所顯示的100 ns。
-
如果只要編輯與Compile HDL file
File New Source VHDL or Verilog or Other或是File Add to Project New File (或是在Project標籤內,按滑鼠右鍵Add to Project New File)
-
儲存檔案並關閉程式
File Save ...Simulate End Simulation...File Close Project (要先關掉simulation,project才能關掉)File Quit (直接Quit 最快,可以省下上面關閉Simulation、Project的動作)
-
重新開啟 Project
File Open Project... (選擇.mpf檔)
-
進一步訊息,請參考Help SE PDF Documentation Tutorials 線上使用手冊一些值得進一步參閱的功能:creating and viewing datasets、performance analyzer、code coverage ...
-
如何用ModelSim產生.vcd檔(Value Change Dump)
在testbench內加入以下這段程式,然後執行ModelSim從compile -> Simulate -> Run -All, 關閉ModelSim後,就會在工作目錄下看見"file_name.vcd"。-
如何用ModelSim產生.fsdb檔
在testbench內加入以下這段程式,然後執行ModelSim從compile -> Simulate -> Run -All, 關閉ModelSim後,就會在工作目錄下看見"file_name.fsdb"。要用ModelSim產生.fsdb的條件是:跑ModelSim的環境下必須有安裝Debussy,否則ModelSim會說它看不懂"fsdbDumpfile"這個指令-
如何用ModelSim產生.vec檔 (vector file)
在testbench內加入以下這段程式,然後執行ModelSim從compile -> Simulate -> Run -All, 關閉ModelSim後,就會在工作目錄下看見"add4.vec"。您必須依自己的需要,在header information那幾行稍做修改,改成你design的I/Os(此處所列是一個4-bit full-adder的vector範例)。這是目前我所知道產生vector file最快的方法,否則你就必須先從testbench.v轉成file.vcd再轉成file.vec。(參閱NanoSim教學Step 1 ~ 2)系統任務(system task)命令$monitor, $fmonitor, $display, $fdisplay的用法,請自行參閱Verilog書籍[2]sec. 3-3, sec. 9-5 -
转载于:https://blog.51cto.com/yuqix/215190