|
準備事項
範例程式下載
(一個Verilog寫的4-bit full-adder,與testbench)
觀念介紹
Debussy是NOVAS
Software, Inc(思源科技)發展的HDL
Debug & Analysis tool,這套軟體主要不是用來跑模擬或看波形,它最強大的功能是:能夠在HDL
source code、schematic diagram、waveform、state bubble diagram之間,即時做trace,協助工程師debug。
可能您會覺的:只要有simulator如ModelSim就可以做debug了,我何必再學這套軟體呢?
其實Debussy v5.0以後的新版本,還提供了nLint --
check coding style & synthesizable,這蠻有用的,可以協助工程師了解如何寫好coding
style,並養成習慣。
下圖所示為整個Debussy的原理架構,可歸納幾個結論:

快速上手五部曲:
(Debussy v.5.2)
-
Import
Files and generate FSDB file
-
Trace
between hierarchy browser and source code
-
Trace
between hierarchy browser、source code and schematic
-
Trace
between hierarchy browser、source code、schematic and waveform
-
nLint
(nState本文沒介紹,有興趣的讀者,請依文後的連結,自行下載CIC所提供的NOVAS原廠編寫教材參考)
-
Import
Files and generate FSDB file
1-1
啟動Debussy:% Debussy &
(此處的D大小寫都可以,但其它指令的大小寫可能就有差別)
開啟nTrace window如下,此時工作目錄下會新建一個"DebussyLog"目錄

1-2
Import
Files:File \ Import Design...

結果如下圖所示:nTrace視窗中,含有三個區域,Hierarchical
Brower、Source code window、Message window。
(如果不想看波形,只想查看source code與schematic的關係,您可以直接跳到step
2-1)

此時DebussyLog目錄內會有Debussy.cmd、turbo.log、compiler.log三個檔案。Debussy.cmd紀錄所有import
的檔案與之後所有的執行程序。我們可以直接引用這個檔案來執行上一次我們做過的一連串程序(refer
to 1-5)。
1-3 設定外部模擬器,藉其產生FSDB
file: Tools \ Options \ Preferences...

1-4
切換到Interactive Mode:Tools \ Interactive
Mode (此時ToolBar上會出現Simulation選單)
開始執行模擬:Simulation
\ Run/Continue (模擬結束工作目錄下就會產生dump_i.fsdb
)

Source code目錄下,要有先前ModelSim所建立的此project的work library,不然會有錯誤訊息:Failed to access library 'work' at
"work"。另外,你不能只是開一個work資料夾,而是要真的用ModelSim產生work library,並且把design
compile to the work library後,step 1-4才會正確動作。
1-5
結束程式:File \ Exit
1-6
快速啟動執行序
把DebussyLog目錄下的指令記錄檔Debussy.cmd複製到目前工作目錄下,重新編輯此檔
(刪掉最後一行的"debExit"
然後儲存),引用它來開啟Debussy可重複之前同樣的動作程序
% Debussy -play
Debussy.cmd &
(結果相當於從步驟1-1做到1-4)
1-7
其他啟動Debussy的方法
% Debussy -f
xxx.f (類似開啟一個事先編寫的批次檔,可以同時一次載入多個.v)
% Debussy -vhdl -f xxx.f (類似開啟一個事先編寫的批次檔,可以同時一次載入多個.vhd)
以上都是屬於Import
design from file的方法,另外還有一種方法是Import design
from library。兩者的差異在於:
Import design from file是將design
compile to RAM,而Import design from library則是將design compile to
library
(default lib. is "work")。
對於比較大的project,為了避免每次使用Debussy都要花時間compile,建議採用Import
design from library的方
法,而且mixed-language design一定要用Import
design from library的方法。
Ex.
for Verilog files:%vericom -inc
-f run.f
%Debussy -lib work -top xxx &
Ex.
for VHDL files:%vhdlcom -93 -f
run.f
%Debussy -lib work -top xxx &
-
Trace
between hierarchy browser and source code 
2-1 在Hierarchy browser點擊A1(FourBitAdder)左側的符號"+",可以展開四個full
adder (fa0, fa1, fa2, fa3)
-->
2-2
試著雙擊Hierarchy browser內的testbed
or A1 or fa0 ...
右邊的source code window會立即切換到相對的module
也可以利用滑鼠"中鍵",將左邊的module
name直接拖曳丟進右邊source
code window,效果相同。
(利用滑鼠中鍵在不同視窗間拖曳,是Debussy中最常用的方法)
2-3
雙擊上圖source code window內的"fulladder"(in
line 8),軟體會自動幫你追蹤出引用fa0的地方
結果示於下圖 -- A1(FourBitAdder)的fa0
(in line 32);若再雙擊fa0(in line 32),則又回到上圖。
-->
你可以藉由這個方法,輕易的追蹤出project內的所有design彼此之間的關連性

:恢復上一動作
2-4
除了追蹤designs之間的關連性,也可以用同樣的方法追蹤出signal's
drivers and loads。
若雙擊上圖的訊號c_in (in line 24),將顯示該訊號的所有的drive
loads
結果如下圖 -- message window顯示,有4處drive c_in,分別在add4test
line 69, 71, 73, 75

用Show
Next
來查看所有的drive loads (at
line 69, 71, 73, 75)
選定line 69, Trace \ Load
則可用來追蹤該訊號的所有"loads"

-
Trace
between hierarchy browser、source code and schematic

3-1 開啟nSchema有三種方法
-
(nTrace)
Tools \ New Schematic \ ...
-
雙擊工具列上的New
Schematic
icon
-
把想看schematic的部分,直接以滑鼠中鍵,從hierarchy
browser拖曳丟進
icon (常用)
下圖是把A1(FourBitAdder)丟進New Schematic icon的結果:

如果想直接看symbol "fulladder"的source code,先以左鍵選定(highlight)該元件,然後按右鍵,從快速選單選
擇"Display
Source Code"
選擇(highlight)第一個full
adder的第二條輸出訊號,然後按Tools
\ New Schematic \Fan-In Cone試試
分別用來縮小/放大畫面, 則是讓圖形大小自動調整至填滿整個視窗(如上圖)
回前一畫面;
回最上層畫面 3-2 雙擊上圖內的元件符號(如第一個fulladder)可進一步看到其內容/
細部電路組成(fa0)
3-3
請自行嘗試,在hierarchy browser、source code與schematic
window之間,用滑鼠中鍵互相拖曳designs/signals的效果
-
Trace
between hierarchy browser、source code、schematic and waveform

4-1 接下來的操作,需要利用模擬器所產生的資料(.fsdb),以"nWave"顯示訊號波形,有兩種可能作法
開啟"nWave"的方法有三種
4-1-1 如果是從1-2接著打開nWave window,一開始nWave內容是空的,要執行(nWave) File
\ Open...
以載入dump_i.fsdb。

4-1-2 接著按
Get Signals icon,此時就會看到有訊號可以讓你選擇了
-- 如果你看不到訊號,把想觀察的design(A1),直接從(nTrace)
Hierarchy browser拖進nWave就可以

4-1-3 (nWave) View \ Zoom \ Zoom All
-- 如果你看不到波形,請再執行一次
(nTrace) Simulation
\ Run/Continue就會看到

已在signal
window選擇的訊號,如果想要刪除:選定要刪除的訊號highlight,按滑鼠右鍵選擇"Cut"
如果是從1-6接著打開nWave window的,直接進行step 4-1-2即可
4-2 啟動Active
Annotation功能:(nTrace)
Source \ Active Annotation
能夠在nWave選擇訊號觸發緣,同時在nTrace的source
code的所有訊號符號下方,直接看到數值的變換 4-3
在nWave雙擊想觀察其觸發狀況的訊號 (如c_out)
4-4
從(nTrace)Hierarchy browser雙擊A1(FourBitAdder),按
Search Forward icon,看看在nTrace與nWave的變化
-
nLint

5-1 開啟圖形介面的nLint
%
nLint -gui & (大小寫不能改,n一定要小寫,L一定要大寫)
開啟nLint window如下,此時工作目錄下會新建一個"nLintLog"目錄
5-2
Import
Files:File \ Import Design... (與step
1-2一模一樣的操作後,結果如下所示)
5-3
執行Run \ Compile 5-4
執行Tools \ Rule Organizer,或按
選擇check哪些rules
-- 不想檢查的項目,就把E/D那一欄的核選框框取消
5-5
執行Run \ Lint
-- 會自動跳出ReportViwer顯示檢查結果
5-6
展開report,選擇第一個黃色警示標示,其出錯的原因與原始碼部份,會即時顯示在下方的欄框中。
如果要修改source code,在該錯誤選項上,按滑鼠右鍵,選擇Show
violation \ to default editor
對於不想檢查的檔案,可以選定該檔後,按 再做compile。以此例而言,testbench是不可合成的,
故若先對add4test.v做suppress再執行step 5-5,結果就會變成"0
violation"。
相關資源
投影片講義
& Lab files -- CIC所提供的NOVAS原廠編寫教材
Lab for nLint (.pdf,
core)
-- 交大電子黃俊達老師的IP Core課程其中一個lab,強力推薦
|