Debussy---快速上手(2)


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。然后需要做兩件事情:

  1. 是在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的強大更在於各個功能窗口之間的交互。

  1. 最實用的是我們可以在nTrace的源代碼中想查看某個信號的波形,我們可以選中后按住鼠標中鍵別松開,直接拖到nWave進行顯示,非常方便。

  1. 在調試波形過程中發現錯誤,我們可以雙擊鼠標左鍵,軟件會自動定位到源代碼中的位置,便於我們調試。

  1. 在nTrace中,執行Source –> Active Annotation可以標出仿真結果在source code下方,非常利於我們調試。在波形中選擇一個時間點,那么在代碼下方顯示的就是這個信號在此時間點的值或者趨勢

  1. 此外,還打開了參數注釋,執行Source –> Parameter annotation,在狀態機參數下方顯示定義的數值。

5.在nTrace中,選中某個信號,如時鍾信號clk_50M,選擇下圖紅色矩形框中的箭頭,可以實現在波形中前后移動。

大西瓜FPGA-->https://daxiguafpga.taobao.com

博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM