『转载』Debussy快速上手(Verdi相似)
『轉載』Debussy快速上手(Verdi相似)
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有四個主要單元(component),nTrace、nWave、nSchema、nState
l nTrace -- Hypertext source code analysis and browse tool (為%Debussy &所開啟的主畫面)
l nWave -- Waveform analysis tool (可由nTrace內開啟,或直接%nWave &開啟)
l nSchema -- Hierarchy schematic generator
l nState -- Finite State Machine Extraction and analysis tool
Debussy本身不含模擬器(simulator),必須呼叫外部模擬器(如Verilog-XL or ModelSim)產生FSDB file,其顯示波形的單元"nWave"透過讀取FSDB file,才能顯示波形或訊號值的變化
快速上手五部曲: (Debussy v.5.2)
1. Import Files and generate FSDB file
2. Trace between hierarchy browser and source code
3. Trace between hierarchy browser、source code and schematic
4. Trace between hierarchy browser、source code、schematic and waveform
5. nLint
(nState本文沒介紹,有興趣的讀者,請依文后的連結,自行下載CIC所提供的NOVAS原廠編寫教材參考)
1.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 &
2.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"
3.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的效果
4.Trace between hierarchy browser、source code、schematic and waveform
4-1 接下來的操作,需要利用模擬器所產生的資料(.fsdb),以"nWave"顯示訊號波形,有兩種可能作法
從1-6(對Import files已作compile,也有其.fsdb file),接著開啟"nWave"
從1-1~1-2,然后開啟"nWave",載入1-4所產生的dump_i.fsdb。
開啟"nWave"的方法有三種
* 按(nTrace)工具列的 (New Waveform icon)
* (nTrace) Tools \ New Waveform
* % 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的變化
5.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"。
Verdi調試
Verdi調試主要分為以下幾步
1、Load design and testbench into Debussy;
2、打開nWave,載入對應的FSDB;
3、在nTrace中將要觀察的信號通過鼠標中鍵Drag&Drop拖放到nWave中;
4、通常都是在波形上發現問題,找到錯誤地方并雙擊鼠標,會自動跳到Real driver statement,也即會跳到源代碼所在。
5、nTrace中,Active Annotation(快捷鍵X)標出仿真結果在source code下;
6、在先前driver statement中找個driver來使用active trace來追蹤有效驅動。
7、只需執行一遍仿真就可以查看所有的波形,而在modelsim中則需要反復運行add wave命令,每一次都要重新仿真。
8、可以查看設計的原理圖schematic,這非常方便查看每一個module和wire的所對應的硬件結構,modelsim現在還沒有這個功能。
9、在仿真時可以很輕易地追蹤每個信號所對應的源碼。
轉載于:https://www.cnblogs.com/OneFri/p/5285707.html
總結
以上是生活随笔為你收集整理的『转载』Debussy快速上手(Verdi相似)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大圣神水
- 下一篇: docker容器互联