1.概述
Debussy是NOVAS Software, Inc ( 思源科技 )發展的HDL Debug & Analysis tool,這套軟體主要不是用來跑模擬或看波形,它最強大的功能是:能夠在HDL source code、schematic diagram、waveform、state bubble diagram之間,即時做trace,協助工程師debug。
之前使用MoselSim進行仿真並進行驗證,MoselSim中查看波形進行調試已經很方便,詳見另一篇博文“ModelSim之TCL仿真”。后來網上都說Debussy用於debug查看波形更為方便,能在源代碼、原理圖和波形三者之間進行切換,一聽覺得不試用下真是虧了。
下圖所示為整個Debussy 的原理架構,可歸納幾個結論:
Debussy有四個主要單元(component),nTrace、nWave、nSchema、nState
- nTrace -- Hypertext source code analysis and browse tool (為Debussy 所開啟的主畫面)
- nWave -- Waveform analysis tool (可由nTrace內開啟)
- nSchema -- Hierarchy schematic generator
- nState -- Finite State Machine Extraction and analysis tool
Debussy本身不含模擬器(simulator),必須呼叫外部模擬器(如Verilog-XL or ModelSim)產生FSDB file,其顯示波形的單元"nWave"透過讀取FSDB file,才能顯示波形或訊號值的變化。
注:本篇博文的軟件環境為:Debussy 5.4v9 + Modelsim SE 10.0c
2.下載與安裝
Debussy5.4 v9下載地址:
http://dl.21ic.com/download/debussy-5-4-ic-95000.html
http://bak.qiannao.com/space/file/captainliuy/-4e0a-4f20-5206-4eab/Debussy-002d54v9-002dNT.rar/.page
1.安裝
2 拷貝文件..\Novas\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll至文件夾..\modeltech_10.0c\win32。
3 取消文件..\modeltech_10.0c\modelsim.ini的只讀屬性后,打開。
找到
; Veriuser = veriuser.sl
在下一行輸入
Veriuser = novas.dll
保存;關閉;設為只讀
3.實例
以“ModelSim之TCL仿真”中的sram_controller為例子進行講解。如果結合Debussy,ModelSim的唯一功能就是產生Debussy可以識別的波形文件-FSDB文件了。
在測試平台(testbench)中添加FSDB系統函數,典型的可以把下列語句加到testbench中:
initial
begin
$fsdbDumpfile("wave_test.fsdb"); //文件名隨便起
$fsdbDumpvars;
end
ModelSim仿真完成后,工程目錄下會生成wave_test.fsdb,這就可以為Debussy所用了!
1.設計文件導入
首先導入設計文件。File -> Import Design,選擇From File。由於我是用了Verilog-2001,所以在Language中選擇了Verilog-2001,否則選擇Verilog會報錯。從左下角的窗口里選擇design所在的目錄,然后從右下角的窗口里選擇要加載的design文件並雙擊之,文件會出現在Design Files的框里,然后單擊OK按鈕,design就被加載到軟件里了。
也可以將設計文件放在.f文件中,如圖所示,.f文件中內容為:
設計加載后:
2.nTrace
nTrace的一個最重要也是最優秀的功能就是可以自動trace一個信號的driver和load。如果我們想知道wr_start_U6的driver,那么我們直接雙擊wr_start_U6就可以了。雙擊以后,首先右邊窗口會轉移到wr_start_U6第一個driver的語句上,在窗口左側有標記顯示出來。
如果一行上存在driver,那么行號左邊會有一個標記。如果該信號有多個driver,可以拖動滾動條查看,此外在軟件下方的Message window中查看其他driver的信息。
我們可以看到wr_start_U6共有四個driver,可以雙擊左鍵進行定位查看,非常方便。
同理,如果你要看一個信號的load,那么把鼠標放到這個信號上,然后右鍵,選擇trace load,那么這個時候,窗口里就會顯示出該信號的load。在Message window中查看其他load的信息。
3.nWave
nWave是用來查看信號波形的,所以使用nWave的前提就是你已經生成了格式為fsdb的波形文件(前面已經講過,在ModelSim仿真時產生)。Debussy默認的界面是nTrace,我們在nTrace界面下,單擊下圖紅色方框里的圖標,即NewWaveform。
nWave的界面如下:
打開nWave后,就可以加載之前生成的fsdb波形文件了。用File-> Open打開波形文件。當打開名字為wave_test.fsdb的波形文件后,界面如下圖所示。在左側窗口會有一個默認為G1的信號組。因為我們還沒有在波形中拉出來任何的信號,所以除此之外窗口中還沒有任何顯示。
我們可以通過菜單欄上打開文件左邊的Get Signals按鈕來加入想要查看的信號。可以通過左下角選擇添加的類型,默認是ALL。
添加信號后,如下圖所示。
有幾個操作知識點:
1.改變信號位置,可以通過按住鼠標中鍵(即滾輪)進行移動。
2.如果想改變某個信號的顏色顯示,可以在左邊選中該信號,然后在菜單欄中WaveForm-> Color/Pattern進行選擇。
3.右邊波形窗口中有兩條線,分別是黃線代表光標時間線(鼠標左鍵來點擊),白色代表標記時間線(鼠標右鍵來點擊),兩者的數值在工具欄中有顯示,並給出了兩者之間的時間差。可以通過單擊鼠標中建放大兩者之間的顯示,即鋪滿波形窗口。
4.如上圖所示state[13:0]為狀態機,波形顯示的數值,不夠直觀,怎么能顯示我定義的參數名字呢?軟件還是提供了這功能的。切換到nTrace窗口,執行Tools –> Extract Interactive FSM,彈出如下窗口。
選擇哪個都可以,區別是選擇第二個的話適用於全部的狀態機。我選擇了第二個,畢竟比較直觀,喜歡看狀態名字,也便於調試。
可以看到,現在顯示了代碼中定義的參數名字了,這比我另一篇博文中在ModelSim中顯示狀態機名字方便多了。http://www.cnblogs.com/aikimi7/p/3354637.html
4.nTrace和nWave的交互使用
Debussy的強大更在於各個功能窗口之間的交互。
1.最實用的是我們可以在nTrace的源代碼中想查看某個信號的波形,我們可以選中后按住鼠標中鍵別松開,直接拖到nWave進行顯示,非常方便。
2.在調試波形過程中發現錯誤,我們可以雙擊鼠標左鍵,軟件會自動定位到源代碼中的位置,便於我們調試。
3.在nTrace中,執行Source –> Active Annotation可以標出仿真結果在source code下方,非常利於我們調試。在波形中選擇一個時間點,那么在代碼下方顯示的就是這個信號在此時間點的值或者趨勢。此外,還打開了參數注釋,執行Source –> Parameter annotation,在狀態機參數下方顯示定義的數值。
4.在nTrace中,選中某個信號,如時鍾信號clk_50M,選擇下圖紅色矩形框中的箭頭,可以實現在波形中前后移動。
4.總結
以上總結了目前我了解到的Debussy軟件操作的一點記錄。主要介紹了nTrace和nWave,nSchema、nState以及nLint未作介紹,一般前兩個已經滿足我的要求了。初步使用的感覺確實很方便,但是目前我還沒有過多的使用該軟件,可能還沒有體會它的強大,有待我后續繼續探索。