如果問廣大的ICer一個問題,大家在日常仿真中用的最頻繁的工具是什么?
我相信絕大多數(shù)人的答案是Verdi——Synopsys旗下的一款功能強大的工具:
Verdi自動化調(diào)試系統(tǒng)是Verdi SoC調(diào)試平臺的核心,它支持對所有設(shè)計和驗證流程進行全面的調(diào)試。它包括強大的技術(shù),幫助您理解復(fù)雜和不熟悉的設(shè)計行為,讓困難和乏味的調(diào)試過程自動化,并能讓多樣和復(fù)雜的設(shè)計環(huán)境一致化。
如上面的官方定義所示:
在IC設(shè)計中,可以根據(jù)仿真結(jié)果檢查或者理解設(shè)計;
在IC驗證中,常常用來調(diào)試(debug)一些錯誤的情況。
在IC君的眼中,Verdi既可以閱讀調(diào)試代碼,又可以查看波形(Verdi里面的nWave工具),包括數(shù)字設(shè)計的波形和模擬設(shè)計的波形,確實是居家旅游、工作賺錢的必備利器
1、下面分享一些在實際做項目過程中verdi在debug時的小技巧:連續(xù)信號有效數(shù)量的測量。
如下圖所示,clk是輸入時鐘信號,data_enable_in是輸入數(shù)據(jù)有效標(biāo)志信號,y_in則是輸入數(shù)據(jù)。在debug的時候,有時我們想要知道白色光標(biāo)和黃色光標(biāo)時間內(nèi)有多少個連續(xù)有效的數(shù)據(jù)y_in。我們該如何做到呢?
一般可以使用以下3種方法:
方法1:最直接也是最笨的辦法,當(dāng)然是手動去數(shù),1、2、3…;如果該時間段內(nèi),數(shù)據(jù)量較少,很快就可以數(shù)出來了。當(dāng)數(shù)據(jù)量較多時,只要你有足夠的耐心和時間,有時還需要一副好眼睛,最終也是可以得到正確的結(jié)果。不過效率非常低下,比較麻煩的是還容易數(shù)錯。
方法2:如果已知時鐘周期(本例子中clkp=6.736ns),則可以計算該時間段內(nèi)時鐘個數(shù)來獲知數(shù)據(jù)量;上面例子的圖中兩個光標(biāo)之間的時間差delta=188.608ns,delta/T=28,因此就是28個數(shù)據(jù)了。是不是要比直接用手動數(shù)快很多了?這個辦法雖然準(zhǔn)確,但是每次都要計算一次,如果需要頻繁的獲知不同時間段內(nèi)的有效數(shù)據(jù)還是太麻煩了一點。
方法3:本文重點要介紹的方法。該方法是通過把時鐘周期設(shè)置為時間單位,這樣兩個光標(biāo)之間的時間差就是該段時間內(nèi)的有效數(shù)據(jù)量了。具體操作方法如下:
如下圖用鼠標(biāo)點擊1,會彈出對話框;點擊2位置倒三角形,下拉選項中選時鐘周期單位是ns;然后再把timeunit 改為clock周期6.736ns,點擊OK
再看delta顯示出來的值,已經(jīng)變成28了,即為我們要數(shù)的數(shù)據(jù)量了。
這個方法對于一段時間內(nèi)的連續(xù)有效數(shù)據(jù)來說,應(yīng)該是最簡單有效的獲取數(shù)據(jù)個數(shù)的方法了。任意改變兩光標(biāo)的距離或位置,都很直接的得到該段時間內(nèi)的連續(xù)有效數(shù)據(jù)量。該方法在debug過程中常常會用到,請大家善加利用。
2、另外還有一個比較有效的辦法是利用verdi的nWave里面的Signal Event Report 功能。該方法雖然稍顯麻煩,但善于利用,也可以變得非常好用。方法如下圖:
a.鼠標(biāo)點擊選中clk 這個信號;
b.點擊view菜單,選擇下拉菜單里面的SignalEvent report,就會彈出對話框;
c.進度條往后拖,會看到Falling#這一欄顯示的數(shù)據(jù)28就是我們要的數(shù)據(jù)量了。
以上就是一段時間內(nèi)連續(xù)有效數(shù)據(jù)的幾個測量方法。debug的時候方法3最簡單便捷,應(yīng)用頻率也較高;但是其他幾個方法在特定的場景下也可以發(fā)揮出自己的作用,需要根據(jù)實際debug的時候靈活應(yīng)用。
-
Verdi
+關(guān)注
關(guān)注
0文章
22瀏覽量
8797
原文標(biāo)題:Verdi使用技巧——連續(xù)有效信號量測方法
文章出處:【微信號:icstudy,微信公眾號:跟IC君一起學(xué)習(xí)集成電路】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論