TestBench即測試平臺,是為了檢驗待測設(shè)計(design under test, DUT )而搭建的驗證環(huán)境。有了這個環(huán)境,我們就可以對DUT輸入 定向或隨機(jī)的激勵 ,以保證DUT的正確性。故驗證要做的事分為以下幾步:
1、生成各種各樣的輸入激勵
2、將輸入激勵傳遞到DUT上
3、DUT響應(yīng)輸入激勵并輸出
4、檢查輸出與預(yù)期結(jié)果差異
5、發(fā)現(xiàn)功能錯誤后修改DUT
6、重復(fù)上述步驟收集覆蓋率
做個不太恰當(dāng)?shù)谋扔?,testbench就像一個書桌,你買來了一個鍵盤(DUT),你想要驗證它是不是正常工作,你就開始敲鍵盤檢查。你的十個手指就是 激勵 ,數(shù)據(jù)線和屏幕相連,數(shù)據(jù)線為 接口 ,屏幕是 記分板 ,鍵盤使用說明書為 參考模型 。
首先你把26個字母都敲了一遍( 定向測試 ),發(fā)現(xiàn)屏幕上也出現(xiàn)了26個字母,每個鍵都能沒毛病,基本功能驗證了;但是還不夠,你又組合著敲了**“** guan zhu dian zan” ( 隨機(jī)測試 ),屏幕上突然出現(xiàn)****“**** fen xiang zai kan ”**** ,這時你就發(fā)現(xiàn)bug了,趕緊找設(shè)計人員來修改代碼。
細(xì)心的同學(xué)發(fā)現(xiàn),隨機(jī)測試豈不是邊界很大,甚至”永無止境“?因此就有了 受約束的隨機(jī)激勵 。使用定向測試和受約束的隨機(jī)測試,最終使得功能覆蓋率趨于要求值。最終,鍵盤驗證完沒問題了,再教給后面的人做物理設(shè)計,比如鍵程長短、工藝面積、功耗分析等等,一套流程下來沒問題就拿去廠子代工了。
說完了這個有點尬的比喻,我們理解了testbench就是模擬設(shè)計所在的環(huán)境,以檢查RTL代碼是否符合設(shè)計規(guī)范的玩意,其內(nèi)部是分好幾個組件的。那testbench具體有哪些組件呢?請看下圖(PPT畫的,不是很專業(yè)):

generator :產(chǎn)生不同的輸入激勵來驅(qū)動DUT
產(chǎn)生有效的數(shù)據(jù),并發(fā)送給driver。
interface :用于連接testbench和DUT
如果一個設(shè)計包含成百上千個端口信號,那么連接、維護(hù)和重復(fù)利用這些信號就會很麻煩。如果將這些輸入輸出端口放到一塊組成一個接口,那么連接變得更加簡潔而不易出錯,后續(xù)添加新的信號更簡便,接口也便于重用。
driver :將激勵驅(qū)動到DUT
monitor :檢測DUT的輸出
scoreboard :用于比較輸出與預(yù)期值
scoreboard上有與DUT相應(yīng)的參考模型,反映了DUT的預(yù)期行為。如果DUT的輸出和參考模型的輸出不匹配,則設(shè)計中存在功能缺陷。
environment :包含以上所有的組件,便于復(fù)用
test :可以包含不同配置的環(huán)境
因此,為了驗證DUT這份RTL代碼,驗證要做的事是:
1)了解 spec ,即代碼的規(guī)格說明書,有結(jié)構(gòu)模型、功能描述、信號端口、寄存器定義等,它是設(shè)計和驗證對接工作的橋梁。
2)制定 testplan ,一個完整的驗證計劃需要考慮的東西有很多,它為后續(xù)工作的進(jìn)行提供了方向。
3)構(gòu)建 testbench ,根據(jù)具體驗證需求選擇相應(yīng)的組件,搭建出盡量可重用的驗證環(huán)境。
4)編寫 testcase ,根據(jù)之前定制的驗證計劃,coding相應(yīng)的測試用例, debug fail case ,把全部case調(diào)試至 pass 。
5)收集 coverage ,跑regression回歸,根據(jù)覆蓋率來決定是否加case,直到滿足RTL freeze要求。
-
寄存器
+關(guān)注
關(guān)注
31文章
5620瀏覽量
130451 -
RTL
+關(guān)注
關(guān)注
1文章
395瀏覽量
62902 -
DUT
+關(guān)注
關(guān)注
0文章
194瀏覽量
13496
發(fā)布評論請先 登錄
在TP芯片上開發(fā)的軟件想要運行在同型號的TE芯片上,需要做什么修改嗎?
基于VMM的驗證環(huán)境的驗證MCU指令實現(xiàn)設(shè)計
基于VMM驗證方法學(xué)的MCU驗證環(huán)境實現(xiàn)方法介紹
IC驗證"UVM驗證平臺"組成(三)
想驗證DSO上的mdio寫周期信號,需要做什么設(shè)置?
基于基帶處理芯片的應(yīng)用RVM驗證方法的注意事項與技巧
DUT 和 testbench 連接教程
UVM驗證平臺頂層有什么作用
基于UVM驗證環(huán)境開發(fā)測試流程
驗證組件配置參數(shù)
北京清微智能科技有限公司發(fā)布IC驗證新方法,實現(xiàn)雙DUT驗證
芯片驗證需要圍繞DUT做什么?
評論