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

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

芯片驗(yàn)證需要圍繞DUT做什么?
評論