fsdb display
Debussy本身不含模擬器(simulator),必須呼叫外部模擬器(如Verilog-XL or ModelSim)產生FSDB file,其顯示波形的單元"nWave"透過讀取FSDB file,才能顯示波形或訊號值的變化。
FSDB文件產生
ModelSim本身也是一個可以提供調試功能的平台,但是相比之下,Debussy的調試功能更加強大。比如一個很有用的功能:如果我預先只想看設計中的10個信號,但是我可能在debug時發現又想看另外5個信號,在modelSim中,通常需要再加信號到波形中,然后重新跑仿真。而如果使用Debussy的fsdb文件則可以把設計中的全部信號或者指定層次之上的全部信號都dump出來,debug時想看哪個就看哪個,不用重新運行仿真。
因此,通常可以考慮使用ModelSim仿真,而使用Debussy來進行調試。這里的調試主要是指觀測波形,進行bug原因分析,而不是廣義的調試。廣義的調試應該包括仿真本身。Debussy不支持仿真功能。
Debussy支持的波形格式是fsdb,是Fast Signal Database的簡寫。Debussy也可以讀取vcd文件,在它讀入vcd文件時,先自動把vcd文件轉換成fsdb文件,然后在讀入debussy。同vcd相比,fsdb文件小很多。而fsdb可以采用Modelsim軟件進行產生。
要在ModelSim中仿真時直接生成fsdb文件,當然首先必須安裝ModelSim和debussy。然后需要做兩件事情:
-
是在ModelSim仿真的腳本中,需要添加一些命令來使得ModelSim能夠調用debussy的一些命令。
軟件平台為modelsim SE 6.2b 和debussy 5.4V9
【1】首先將debussy安裝目錄下的F:\Debussy\share\PLI\modelsim_pli54下的 Novas.dll文件復制到modelsim安裝目錄下的win32下 ;
【2】更改modelsim的配置文件modelsim.ini(該文件一般情況下是只讀模式需要改為讀寫,在屬性里面進行設置),然后找到:
Veriuser =veriuser.s1
將其改為:
Veriuser = F:\Debussy\share\PLI\modelsim_pli54/WINNT/novas.dll
注意modelsim中的目錄層次為 /
【3】新建環境變量 PLIOBJS
PLIOBJS = F:\Debussy\share\PLI\modelsim_pli54\WINNT\novas.dll
2、需要在testbench中添加產生fsdb的一些系統函數。當然這些系統函數不是ModelSim自帶的,而是debussy的系統函數。所以第一步就是讓modelSim也可以使用這些系統函數。
如何在modelsim里面產生.fsdb文件呢?可以在testbench文件里面輸入如下代碼:
initial begin $fsdbDumpfile("Debussy.fsdb");//文件名稱可以自行設定 $fsdbDumpvars; end |
關於怎么使用Modelsim這里就不多說了,這里需要跑完整個仿真流程,然后產生fsdb文件,並將波形數據保存到fsdb文件中,這里需要注意:如果沒有關閉modelsim仿真是不能直接在debussy調入fsdb文件的,不然就沒有顯示,如下圖所示:
在modelSim外部要調用fsdb文件前,要先在modelSim中結束仿真。如果不結束仿真,可以看到,在fsdb文件生成的同時,還會有如下相關文件生成,且前3個文件大小都為0。
wave_test.fsdb.chain
wave_test.fsdb.lock
wave_test.fsdb.slist
wave_test.fsdb.tlist
可以使用以下兩種方式中的一種:
1、在ModelSim的Transcript窗口輸入Quit –sim或者寫在腳本中。
2、在tb中使用系統函數$finish()來結束仿真,並且在ModelSim提示是否finish仿真時,點擊yes,這樣會關閉ModelSim,同樣可以結束fsdb文件的寫操作和關閉操作。
注意:在仿真tb中使用$stop()系統函數,或者使用$finish()但是在ModelSim提示是否finish仿真時點擊no,這兩種情況下都不會結束對fsdb文件的操作。
通過Modelsim軟件產生的Debussy.fsdb文件如下圖所示:
FSDB波形文件導入
nWave是用來查看信號波形的,所以使用nWave的前提就是你已經生成了格式為fsdb的波形文件(前面已經講過,在ModelSim仿真時產生)。Debussy默認的界面是nTrace,我們在nTrace界面下,單擊下圖紅色方框里的圖標,即New Waveform。
出現以下窗口,點擊打開文件
出現以下fsdb文件選擇窗口,選擇用modelsim產生的fsdb文件
完成文件導入之后接着需要導入信號,點擊signal,選擇get signals;
接着彈出如下圖所示的窗口,根據下圖提示進行選擇需要查看波形的信號;
點擊"OK"之后就出現在Modelsim產生的波形。
nWave工具的使用
有幾個操作知識點:
1、改變信號位置,可以通過按住鼠標中鍵(即滾輪)進行移動。
2、如果想改變某個信號的顏色顯示,可以在左邊選中該信號,然后在菜單欄中WaveForm-> Color/Pattern進行選擇。
3、右邊波形窗口中有兩條線,分別是黃線代表光標時間線(鼠標左鍵來點擊),白色代表標記時間線(鼠標右鍵來點擊),兩者的數值在工具欄中有顯示,並給出了兩者之間的時間差。可以通過單擊鼠標中建放大兩者之間的顯示,即鋪滿波形窗口。
4、狀態機波形顯示的數值,不夠直觀,怎么能顯示定義的參數名字呢?軟件還是提供了這功能的。切換到nTrace窗口,執行Tools –> Extract Interactive FSM,彈出如下窗口,選中all stages就可以顯示狀態機定義的名字了。
nTrace和nWave的交互使用
Debussy的強大更在於各個功能窗口之間的交互。
-
最實用的是我們可以在nTrace的源代碼中想查看某個信號的波形,我們可以選中后按住鼠標中鍵別松開,直接拖到nWave進行顯示,非常方便。
-
在調試波形過程中發現錯誤,我們可以雙擊鼠標左鍵,軟件會自動定位到源代碼中的位置,便於我們調試。
-
在nTrace中,執行Source –> Active Annotation可以標出仿真結果在source code下方,非常利於我們調試。在波形中選擇一個時間點,那么在代碼下方顯示的就是這個信號在此時間點的值或者趨勢。
-
此外,還打開了參數注釋,執行Source –> Parameter annotation,在狀態機參數下方顯示定義的數值。
5.在nTrace中,選中某個信號,如時鍾信號clk_50M,選擇下圖紅色矩形框中的箭頭,可以實現在波形中前后移動。
大西瓜FPGA-->https://daxiguafpga.taobao.com
博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!