以前看到不少驗證技術(shù)書籍都在說驗證環(huán)境中隨機怎么怎么好,然后為了隨機,UVM,SV 提供了什么什么支持。
但是最近的一些工作小編發(fā)現(xiàn)在驗證中采用隨機存在很多缺點。下面小編帶大家看看使用隨機帶來的六宗罪。
第一宗罪:難以debug
出現(xiàn)fail的test,當debug完,對設(shè)計和驗證環(huán)境做了改動,可能無法復現(xiàn)fail的場景。
如何確保發(fā)現(xiàn)的testbench的問題,或者RTL的問題有真的修掉?一般的做法是用同樣的seed,然后跑一遍之前的fail的test。但是有很多時候,由于環(huán)境的文件,約束等改變,再用同樣的seed 跑fail 的test 和之前的行為不一致,從而錯誤的認為問題已經(jīng)修掉。
第二宗罪:難以覆蓋到特定場景
有些場景通過隨機撞到的概率非常低。
如下圖所示,C=A &&B,在下圖場景中想通過 隨機到 (A==1)&&(B==1)的 場景,非常難。
第三宗罪:驗證時間不確定
回歸結(jié)果不可靠。一次通過率100%,不代表次次回歸100%。
一次回歸可能100%,第二次回歸又變成90%。連續(xù)10次回歸100%,第十一次回歸又出現(xiàn)fail的test。
第四宗罪:重復測試用例很多
浪費太多l(xiāng)icense 和服務(wù)器資源。
因為單次regression不能保證沒有問題,所以要周周跑,月月跑,一直跑到tapout,這浪費了很多l(xiāng)icense和服務(wù)器資源。特別是有些test 打到的場景重復,做一些無效驗證,給公司資源造成極大浪費。
第五宗罪:覆蓋率收集耗費資源
coverage 收斂比較耗時間和資源。
由于隨機約束造成不同場景出現(xiàn)的概率不一樣,通過隨機測試將代碼覆蓋率和功能覆蓋率補全需要經(jīng)過大量的回歸測試。coverage的收斂速度沒有直接測試來得快。
下面是一個案例,在跑完一版regression后,功能覆蓋率是80.49%。
我們想將該功能覆蓋率補全,采用直接測試用例,我們調(diào)用了5次測試,可以將覆蓋率打到95.90% ,剩下的部分可以waive掉。
當我們采用隨機測試,調(diào)用了5次隨機測試,覆蓋率為90.62%。
當我們采用隨機測試,調(diào)用了10次隨機測試,覆蓋率為93.97%。
當我們采用隨機測試,調(diào)用了20次隨機測試,覆蓋率為95.90%,達到了和直接測試同樣的效果。
第六宗罪:場景打不全
隨機驗證打不全所有場景
如上圖所示,隨機的行為很難將所有的測試路徑都打到。
隨機有沒有好處呢?當然有,比如
探索更多的場景:隨機驗證可以探索更多的測試場景,覆蓋更多的狀態(tài)空間。這可以幫助發(fā)現(xiàn)設(shè)計中的潛在問題和漏洞,從而提高驗證的質(zhì)量。
發(fā)現(xiàn)意外錯誤:隨機測試可以揭示一些設(shè)計者未曾考慮的異常情況,以及在正常測試中可能被忽略的邊緣情況。這有助于找到并修復一些潛在的設(shè)計錯誤。
減少人為偏見:手動創(chuàng)建測試用例可能受到驗證工程師的認知偏見和經(jīng)驗限制的影響。隨機驗證方法可以降低這種偏見對驗證結(jié)果的影響,從而提高驗證的可靠性。
減少人工編寫測試用例的時間和精力:隨機驗證方法可以自動生成大量測試用例,從而減少人工編寫測試用例的時間和精力。這有助于縮短驗證周期,提高驗證效率。
更好地應(yīng)對復雜性:隨著芯片設(shè)計變得越來越復雜,人工創(chuàng)建足夠多的測試用例以覆蓋所有可能的場景變得越來越困難。隨機驗證方法可以在面對復雜設(shè)計時自動生成更多的測試用例,從而更好地應(yīng)對這種復雜性。
雖然使用隨機驗證存在很多問題,但它在許多情況下仍然是一種非常有效的驗證方法。為了克服這些缺點,可以將隨機驗證與其他驗證方法(如指導性驗證、形式驗證等)相結(jié)合,以實現(xiàn)更全面、有效的芯片驗證。
審核編輯:劉清
-
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59991 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19236
原文標題:芯片驗證隨機(random)的六宗罪
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
關(guān)于功能驗證、時序驗證、形式驗證、時序建模的論文
【云智易試用體驗】開箱與初評六宗罪
怎么設(shè)計基于USB和FPGA的隨機數(shù)發(fā)生器驗證平臺?
設(shè)計驗證中的隨機約束
選購低價筆記本:不得不說的五宗罪
基于OVM驗證平臺的IP芯片驗證
基于System Verilog的可重用驗證平臺設(shè)計及驗證結(jié)果分析
![基于System Verilog的可重用<b class='flag-5'>驗證</b>平臺設(shè)計及<b class='flag-5'>驗證</b>結(jié)果分析](https://file1.elecfans.com//web2/M00/A7/27/wKgZomUMQrWAM1i9AAAnoQRwVDc843.gif)
分享編程的七宗罪,也許對你會有所啟發(fā)
安防行業(yè)產(chǎn)能過剩 智能安防企業(yè)成本控制的“四宗罪”概述
AN4230 STM32 MCU使用NIST隨機數(shù)生成驗證統(tǒng)計測試套件
![AN4230 STM32 MCU使用NIST<b class='flag-5'>隨機</b>數(shù)生成<b class='flag-5'>驗證</b>統(tǒng)計測試套件](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
受約束隨機驗證的效果真的比直接用例測試好嗎?
芯片驗證中的scoreboard分析
![<b class='flag-5'>芯片</b><b class='flag-5'>驗證</b>中的scoreboard分析](https://file1.elecfans.com/web2/M00/82/60/wKgZomRLP-mAMtgwAADenKonuuo157.jpg)
評論