ModelSim+Debussy聯調

一. 概述

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(注:仿真器爲emulator),必須呼叫外部模擬器(如Verilog-XL or ModelSim)產生FSDB file,其顯示波形的單元"nWave"透過讀取FSDB file,才能顯示波形或訊號值的變化。

二. 安裝配置

首先電腦上要安裝好這兩款軟件並破解,我的電腦上目前安裝的是Debussy 5.4v9 + Modelsim SE 10.1c。
在這裏插入圖片描述

2.1 對於32位的modelsim,網上通常的做法是:

第一步:掛PLI

1、拷貝文件…\Novas\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll 至文件夾…\modeltech_10.0c\win32
2、取消文件. …\modeltech_10.0c\modelsim.ini的只讀屬性後,打開,找到

; Veriuser = veriuser.sl

改爲

Veriuser = novas.dll

注意將前面的;去掉,保存,關閉,設爲只讀。
在這裏插入圖片描述

第二步:修改環境變量

變量名:DLIBRARY PATH
變量值:Debussy安裝目錄下的novas.dll如
D:Debussy’\share plilmodelsim pli\winnt\novas.dll
變量名:PLIOBJS
變量值:同上
(注:上述步驟只需配置一次)

2.2 但是對於64位modelsim的計算機

按照上面所說的配置,在仿真的時候會出現錯誤:Error: (vsim-3193) Load of “F:\modeltech64_10.1c\win64/novas.dll” failed: Bad DLL format.
在這裏插入圖片描述
所以我們不能按照32位機的要求來配置,可能小夥伴就要問了,如果不添加novas.dll的話,我們是不能使用$ fsdbDumpfile()函數的,那咋辦呢?
辦法就是使用

$dumpfile(“wave.vcd”);   
; $dumpfile(“wave.dump”); 也可

$dumpvars;

即可,最後在debussy使用波形的時候添加.vcd或者.dump文件,debussy會將它自動變爲.fsdb文件,具體操作請往下看。

圖中的.fsdb文件爲debussy根據.vcd文件自動添加的。
在這裏插入圖片描述

三. 實例

ModelSim的tcl命令中的sfifo爲例子進行講解。
如果結合Debussy,ModelSim的唯一功能就是產生Debussy可以識別的波形文件-FSDB文件了。
對於32位modelsim,在測試平臺(testbench)中添加FSDB系統函數,典型的可以把下列語句加到testbench中:

initial  begin
      $fsdbDumpfile("wave_test.fsdb");     //文件名隨便起
      $fsdbDumpvars;
end

ModelSim仿真完成後,工程目錄下會生成wave_test.fsdb,這就可以爲Debussy所用了!
對於64位modelsim,在測試平臺(testbench)中添加dumpfile系統函數,典型的可以把下列語句加到testbench中:

initial  begin
  $dumpfile("wave_test.vcd");     //文件名隨便起, 或者用$dumpfile("wave_test.dump");
  $dumpvars;
end

ModelSim仿真完成後,工程目錄下會生成wave.vcd或wave.dump,這就可以爲Debussy所用了!
在這裏插入圖片描述

3.1 設計文件導入

首先導入設計文件。File -> Import Design,選擇From File。從左下角的窗口裏選擇design所在的目錄,然後從右下角的窗口裏選擇要加載的design文件並雙擊之,文件會出現在Design Files的框裏,然後單擊OK按鈕,design就被加載到軟件裏了。
在這裏插入圖片描述
也可以將設計文件放在.f文件中,如圖所示,.f文件中內容爲:
在這裏插入圖片描述
設計加載後:
在這裏插入圖片描述
注:
設計文件和.f文件不要同時導入,否則會有warning:
在這裏插入圖片描述
按照提示,打開.log文件查看warning原因:
在這裏插入圖片描述
可知是因爲編譯了兩次設計文件,導致宏定義發生了覆蓋。

3.2 nTrace

nTrace的一個最重要也是最優秀的功能就是可以自動trace一個信號的driver和load。如果我們想知道in_data的driver,那麼我們直接雙擊in_data就可以了。雙擊以後,首先右邊窗口會轉移到in_data第一個driver的語句上,在窗口左側有標記顯示出來。
如果一行上存在driver,那麼行號左邊會有一個標記。如果該信號有多個driver,可以拖動滾動條查看,此外在軟件下方的Message window中查看其他driver的信息。
在這裏插入圖片描述
我們可以看到in_data共有四個driver,可以雙擊左鍵進行定位查看,非常方便。
在這裏插入圖片描述
同理,如果你要看一個信號的load,那麼把鼠標放到這個信號上,然後右鍵,選擇trace load,那麼這個時候,窗口裏就會顯示出該信號的load。在Message window中查看其他load的信息。
在這裏插入圖片描述
當然使用工具欄中“D”與“L”也可以查看此信號的drivers與loads,右側的箭頭用於選擇上一個與下一個。
在這裏插入圖片描述

3.3 nWave

nWave是用來查看信號波形的,所以使用nWave的前提就是你已經生成了格式爲fsdb的波形文件(前面已經講過,在ModelSim仿真時產生)。Debussy默認的界面是nTrace,我們在nTrace界面下,單擊下圖紅色方框裏的圖標,即NewWaveform。
在這裏插入圖片描述
nWave的界面如下:
在這裏插入圖片描述
打開nWave後,就可以加載之前生成的fsdb(或.vcd或.dump)波形文件了。用File-> Open打開波形文件。當打開名字爲wave.vcd的波形文件後,界面如下圖所示。
在這裏插入圖片描述
在這裏插入圖片描述
在左側窗口會有一個默認爲G1的信號組。因爲我們還沒有在波形中拉出來任何的信號,所以除此之外窗口中還沒有任何顯示。
我們可以通過菜單欄上打開文件左邊的Get Signals按鈕來加入想要查看的信號。可以通過左下角選擇添加的類型,默認是ALL。
在這裏插入圖片描述
在這裏插入圖片描述
添加信號後,如下圖所示。
在這裏插入圖片描述

3.4 有幾個操作知識點:

1.改變信號位置,可以通過按住鼠標中鍵(即滾輪)進行移動(左鍵點擊爲選擇)。

2.如果想改變某個信號的顏色顯示,可以在左邊選中該信號,然後在菜單欄中WaveForm-> Color/Pattern進行選擇。
在這裏插入圖片描述
3.右邊波形窗口中有兩條線,分別是黃線代表光標時間線(鼠標左鍵來點擊),白色代表標記時間線(鼠標中鍵來點擊),兩者的數值在工具欄中有顯示,並給出了兩者之間的時間差。可以通過單擊鼠標右鍵放大兩者之間的顯示,即鋪滿波形窗口。

工具欄
在這裏插入圖片描述
鋪滿
在這裏插入圖片描述
4.下圖ns[2:0]和cs[2:0]爲狀態機。
在這裏插入圖片描述
波形顯示的數值,不夠直觀,怎麼能顯示我定義的參數名字呢?軟件還是提供了這功能的。切換到nTrace窗口,執行Tools –> Extract Interactive FSM,彈出如下窗口。
在這裏插入圖片描述
在這裏插入圖片描述
選擇哪個都可以,區別是選擇第二個的話適用於全部的狀態機。我選擇了第二個,畢竟比較直觀,喜歡看狀態名字,也便於調試。
在這裏插入圖片描述
雙擊,便可打開狀態機轉化圖
在這裏插入圖片描述
狀態機以狀態名字顯示
在這裏插入圖片描述

4.nTrace和nWave的交互使用

Debussy的強大更在於各個功能窗口之間的交互。

4.1.最實用的是我們可以在nTrace的源代碼中想查看某個信號的波形,我們可以選中後按住鼠標中鍵別鬆開,直接拖到nWave進行顯示,非常方便。在這裏插入圖片描述

4.2.在調試波形過程中發現錯誤,我們可以雙擊鼠標左鍵,軟件會自動定位到源代碼中的位置,便於我們調試。
在這裏插入圖片描述
4.3.在nTrace中,執行Source –> Active Annotation可以標出仿真結果在source code下方,非常利於我們調試。在波形中選擇一個時間點,那麼在代碼下方顯示的就是這個信號在此時間點的值或者趨勢。此外,還打開了參數註釋,執行Source –> Parameter annotation,在狀態機參數下方顯示定義的數值。
在這裏插入圖片描述

5. nSchematic介紹

點擊工具欄中的New Schematic即可進入nSchematic
在這裏插入圖片描述
上面的工具欄中,有常用的放大、縮小, 這2個圖標的功能是選擇design中的上一層與下一層
在這裏插入圖片描述
當到達最底層時,可以通過雙擊某一圖形單元查看其代碼
在這裏插入圖片描述
點擊View->Detail RTL可以查看RTL級電路
在這裏插入圖片描述
RTL級電路
在這裏插入圖片描述

6.同時觀察

nWave, nTrace, nSchematic窗口可以一起觀察,是不是很方便呢!
在這裏插入圖片描述

7.如何保存當前調試的所有設置和界面?

在你啓動debussy 到退出debussy 之前是一段很長的調試過程,你可以保存當前的調試環境,並在下次調用debussy 的時候使用。Debussy 自動把當前的調試環境保存在工作目錄下的DebussyLog 的lastSession.ses 中。File->Save Session 保存當前調試狀態,下次啓動後File->Restore Session.

四.總結

ModelSim的功能太強大了,於是就有點繁瑣。和Debussy協同仿真,我們就省卻了許多不必要,何樂而不爲呢。當然,還有許多的功能,由於水平有限,就寫到這裏吧。希望對大家有幫助!

文章參考:Debussy的安裝與使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章