『转载』Debussy快速上手(Verdi相似)
『轉(zhuǎn)載』Debussy快速上手(Verdi相似)
Debussy 是NOVAS Software, Inc(思源科技)發(fā)展的HDL Debug & Analysis tool,這套軟體主要不是用來(lái)跑模擬或看波形,它最強(qiáng)大的功能是:能夠在HDL source code、schematic diagram、waveform、state bubble diagram之間,即時(shí)做trace,協(xié)助工程師debug。
可能您會(huì)覺(jué)的:只要有simulator如ModelSim就可以做debug了,我何必再學(xué)這套軟體呢? 其實(shí)Debussy v5.0以后的新版本,還提供了nLint -- check coding style & synthesizable,這蠻有用的,可以協(xié)助工程師了解如何寫好coding style,并養(yǎng)成習(xí)慣。
下圖所示為整個(gè)Debussy 的原理架構(gòu),可歸納幾個(gè)結(jié)論:
Debussy有四個(gè)主要單元(component),nTrace、nWave、nSchema、nState
l nTrace -- Hypertext source code analysis and browse tool (為%Debussy &所開啟的主畫面)
l nWave -- Waveform analysis tool (可由nTrace內(nèi)開啟,或直接%nWave &開啟)
l nSchema -- Hierarchy schematic generator
l nState -- Finite State Machine Extraction and analysis tool
Debussy本身不含模擬器(simulator),必須呼叫外部模擬器(如Verilog-XL or ModelSim)產(chǎn)生FSDB file,其顯示波形的單元"nWave"透過(guò)讀取FSDB file,才能顯示波形或訊號(hào)值的變化
快速上手五部曲: (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本文沒(méi)介紹,有興趣的讀者,請(qǐng)依文后的連結(jié),自行下載CIC所提供的NOVAS原廠編寫教材參考)
1.Import Files and generate FSDB file
1-1 啟動(dòng)Debussy:% Debussy & (此處的D大小寫都可以,但其它指令的大小寫可能就有差別)
開啟nTrace window如下,此時(shí)工作目錄下會(huì)新建一個(gè)"DebussyLog"目錄
1-2 Import Files:File \ Import Design...
結(jié)果如下圖所示:nTrace視窗中,含有三個(gè)區(qū)域,Hierarchical Brower、Source code window、Message window。
(如果不想看波形,只想查看source code與schematic的關(guān)係,您可以直接跳到step 2-1)
此時(shí)DebussyLog目錄內(nèi)會(huì)有Debussy.cmd、turbo.log、compiler.log三個(gè)檔案。Debussy.cmd紀(jì)錄所有import
的檔案與之后所有的執(zhí)行程序。我們可以直接引用這個(gè)檔案來(lái)執(zhí)行上一次我們做過(guò)的一連串程序(refer to 1-5)。
1-3 設(shè)定外部模擬器,藉其產(chǎn)生FSDB file: Tools \ Options \ Preferences...
1-4 切換到Interactive Mode:Tools \ Interactive Mode (此時(shí)ToolBar上會(huì)出現(xiàn)Simulation選單)
開始執(zhí)行模擬:Simulation \ Run/Continue (模擬結(jié)束工作目錄下就會(huì)產(chǎn)生dump_i.fsdb )
Source code目錄下,要有先前ModelSim所建立的此project的work library,不然會(huì)有錯(cuò)誤訊息:Failed to access library 'work' at "work"。另外,你不能只是開一個(gè)work資料夾,而是要真的用ModelSim產(chǎn)生work library,并且把design compile to the work library后,step 1-4才會(huì)正確動(dòng)作。
1-5 結(jié)束程式:File \ Exit
1-6 快速啟動(dòng)執(zhí)行序
把DebussyLog目錄下的指令記錄檔Debussy.cmd復(fù)制到目前工作目錄下,重新編輯此檔 (刪掉最后一行的"debExit"
然后儲(chǔ)存),引用它來(lái)開啟Debussy可重復(fù)之前同樣的動(dòng)作程序
% Debussy -play Debussy.cmd &(結(jié)果相當(dāng)於從步驟1-1做到1-4)
1-7 其他啟動(dòng)Debussy的方法
% Debussy -f xxx.f (類似開啟一個(gè)事先編寫的批次檔,可以同時(shí)一次載入多個(gè).v)
% Debussy -vhdl -f xxx.f (類似開啟一個(gè)事先編寫的批次檔,可以同時(shí)一次載入多個(gè).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")。
對(duì)於比較大的project,為了避免每次使用Debussy都要花時(shí)間compile,建議採(cǎi)用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點(diǎn)擊A1(FourBitAdder)左側(cè)的符號(hào)"+",可以展開四個(gè)full adder (fa0, fa1, fa2, fa3)
->
2-2 試著雙擊Hierarchy browser內(nèi)的testbed or A1 or fa0 ...
右邊的source code window會(huì)立即切換到相對(duì)的module
也可以利用滑鼠"中鍵",將左邊的module name直接拖曳丟進(jìn)右邊source code window,效果相同。
(利用滑鼠中鍵在不同視窗間拖曳,是Debussy中最常用的方法)
2-3 雙擊上圖source code window內(nèi)的"fulladder"(in line 8),軟體會(huì)自動(dòng)幫你追蹤出引用fa0的地方
結(jié)果示於下圖 -- A1(FourBitAdder)的fa0 (in line 32);若再雙擊fa0(in line 32),則又回到上圖。
--> 你可以藉由這個(gè)方法,輕易的追蹤出project內(nèi)的所有design彼此之間的關(guān)連性
:恢復(fù)上一動(dòng)作
2-4 除了追蹤designs之間的關(guān)連性,也可以用同樣的方法追蹤出signal's drivers and loads。
若雙擊上圖的訊號(hào)c_in (in line 24),將顯示該訊號(hào)的所有的drive loads
結(jié)果如下圖 -- message window顯示,有4處drive c_in,分別在add4test line 69, 71, 73, 75
用Show Next 來(lái)查看所有的drive loads (at line 69, 71, 73, 75)
選定line 69, Trace \ Load 則可用來(lái)追蹤該訊號(hào)的所有"loads"
3.Trace between hierarchy browser、source code and schematic
3-1 開啟nSchema有三種方法
* (nTrace) Tools \ New Schematic \ ...
* 雙擊工具列上的New Schematic icon
* 把想看schematic的部分,直接以滑鼠中鍵,從hierarchy browser拖曳丟進(jìn) icon (常用)
下圖是把A1(FourBitAdder)丟進(jìn)New Schematic icon的結(jié)果:
如果想直接看symbol "fulladder"的source code,先以左鍵選定(highlight)該元件,然后按右鍵,從快速選單選擇"Display Source Code"
選擇(highlight)第一個(gè)full adder的第二條輸出訊號(hào),然后按Tools \ New Schematic \Fan-In Cone試試
分別用來(lái)縮小/放大畫面, 則是讓圖形大小自動(dòng)調(diào)整至填滿整個(gè)視窗(如上圖)
回前一畫面; 回最上層畫面
3-2 雙擊上圖內(nèi)的元件符號(hào)(如第一個(gè)fulladder)可進(jìn)一步看到其內(nèi)容/ 細(xì)部電路組成(fa0)
3-3 請(qǐng)自行嘗試,在hierarchy browser、source code與schematic window之間,用滑鼠中鍵互相拖曳designs/signals的效果
4.Trace between hierarchy browser、source code、schematic and waveform
4-1 接下來(lái)的操作,需要利用模擬器所產(chǎn)生的資料(.fsdb),以"nWave"顯示訊號(hào)波形,有兩種可能作法
從1-6(對(duì)Import files已作compile,也有其.fsdb file),接著開啟"nWave"
從1-1~1-2,然后開啟"nWave",載入1-4所產(chǎn)生的dump_i.fsdb。
開啟"nWave"的方法有三種
* 按(nTrace)工具列的 (New Waveform icon)
* (nTrace) Tools \ New Waveform
* % nWave &
4-1-1 如果是從1-2接著打開nWave window,一開始nWave內(nèi)容是空的,要執(zhí)行(nWave) File \ Open...
以載入dump_i.fsdb。
4-1-2 接著按 Get Signals icon,此時(shí)就會(huì)看到有訊號(hào)可以讓你選擇了
-- 如果你看不到訊號(hào),把想觀察的design(A1),直接從(nTrace) Hierarchy browser拖進(jìn)nWave就可以
4-1-3 (nWave) View \ Zoom \ Zoom All
-- 如果你看不到波形,請(qǐng)?jiān)賵?zhí)行一次 (nTrace) Simulation \ Run/Continue就會(huì)看到
已在signal window選擇的訊號(hào),如果想要?jiǎng)h除:選定要?jiǎng)h除的訊號(hào)highlight,按滑鼠右鍵選擇"Cut"
如果是從1-6接著打開nWave window的,直接進(jìn)行step 4-1-2即可
4-2 啟動(dòng)Active Annotation功能:(nTrace) Source \ Active Annotation
能夠在nWave選擇訊號(hào)觸發(fā)緣,同時(shí)在nTrace的source code的所有訊號(hào)符號(hào)下方,直接看到數(shù)值的變換
4-3 在nWave雙擊想觀察其觸發(fā)狀況的訊號(hào) (如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如下,此時(shí)工作目錄下會(huì)新建一個(gè)"nLintLog"目錄
5-2 Import Files:File \ Import Design... (與step 1-2一模一樣的操作后,結(jié)果如下所示)
5-3 執(zhí)行Run \ Compile
5-4 執(zhí)行Tools \ Rule Organizer,或按 選擇check哪些rules
-- 不想檢查的項(xiàng)目,就把E/D那一欄的核選框框取消
5-5 執(zhí)行Run \ Lint -- 會(huì)自動(dòng)跳出ReportViwer顯示檢查結(jié)果
5-6 展開report,選擇第一個(gè)黃色警示標(biāo)示,其出錯(cuò)的原因與原始碼部份,會(huì)即時(shí)顯示在下方的欄框中。
如果要修改source code,在該錯(cuò)誤選項(xiàng)上,按滑鼠右鍵,選擇Show violation \ to default editor
對(duì)於不想檢查的檔案,可以選定該檔后,按 再做compile。以此例而言,testbench是不可合成的,
故若先對(duì)add4test.v做suppress再執(zhí)行step 5-5,結(jié)果就會(huì)變成"0 violation"。
Verdi調(diào)試
Verdi調(diào)試主要分為以下幾步
1、Load design and testbench into Debussy;
2、打開nWave,載入對(duì)應(yīng)的FSDB;
3、在nTrace中將要觀察的信號(hào)通過(guò)鼠標(biāo)中鍵Drag&Drop拖放到nWave中;
4、通常都是在波形上發(fā)現(xiàn)問(wèn)題,找到錯(cuò)誤地方并雙擊鼠標(biāo),會(huì)自動(dòng)跳到Real driver statement,也即會(huì)跳到源代碼所在。
5、nTrace中,Active Annotation(快捷鍵X)標(biāo)出仿真結(jié)果在source code下;
6、在先前driver statement中找個(gè)driver來(lái)使用active trace來(lái)追蹤有效驅(qū)動(dòng)。
7、只需執(zhí)行一遍仿真就可以查看所有的波形,而在modelsim中則需要反復(fù)運(yùn)行add wave命令,每一次都要重新仿真。
8、可以查看設(shè)計(jì)的原理圖schematic,這非常方便查看每一個(gè)module和wire的所對(duì)應(yīng)的硬件結(jié)構(gòu),modelsim現(xiàn)在還沒(méi)有這個(gè)功能。
9、在仿真時(shí)可以很輕易地追蹤每個(gè)信號(hào)所對(duì)應(yīng)的源碼。
轉(zhuǎn)載于:https://www.cnblogs.com/OneFri/p/5285707.html
總結(jié)
以上是生活随笔為你收集整理的『转载』Debussy快速上手(Verdi相似)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 大圣神水
- 下一篇: 回帖怎么突然需要审核?