Checks和coverage是覆蓋率驅(qū)動(dòng)的驗(yàn)證流程的關(guān)鍵。在驗(yàn)證環(huán)境中,Checks和coverage可以被定義在多個(gè)位置。
在Classes中實(shí)現(xiàn)Checks和Coverage
uvm_monitor的派生類總是存在于agent中,因此包含必要的Checks和Coverage。下面是一個(gè)斷言檢查的簡(jiǎn)單例子,傳輸?shù)膕ize字段是1、2、4或8。否則斷言失敗。
check也可以寫成函數(shù)的形式,例如檢查size字段的值與動(dòng)態(tài)數(shù)組的size相匹配。
這兩個(gè)檢查都應(yīng)該在transfer被monitor收集時(shí)執(zhí)行。由于這些check是在同一時(shí)間發(fā)生的,所以可以封裝成一個(gè)函數(shù),這樣就只需要進(jìn)行一次調(diào)用。
功能覆蓋是通過SystemVerilog covergroups實(shí)現(xiàn)的,下面是一個(gè)簡(jiǎn)單的covergroups的例子。
這個(gè)covergroup被定義在一個(gè)從uvm_monitor派生出來的類里面。對(duì)于上述covergroup,應(yīng)該在一個(gè)函數(shù)中聲明作為coverpoints的局部變量,然后對(duì)covergroup進(jìn)行采樣。
SystemVerilog沒有提供動(dòng)態(tài)數(shù)組覆蓋率收集的能力,這個(gè)函數(shù)實(shí)現(xiàn)了這個(gè)功能。perform_transfer_coverage()函數(shù)會(huì)像 perform_transfer_checks()一樣,在transaction被monitor收集時(shí)調(diào)用。
在Interfaces中實(shí)現(xiàn)Checks和Coverage
InterfacesChecks被實(shí)現(xiàn)為assertions,以檢查信號(hào)協(xié)議為主。例如,一個(gè)斷言可能會(huì)檢查一個(gè)地址在有效的傳輸過程中從未出現(xiàn)過X。
在Formal FPV中,
當(dāng)property表達(dá)DUT的內(nèi)部和輸出行為時(shí),使用assert進(jìn)行檢查。
當(dāng)property表達(dá)產(chǎn)生DUT激勵(lì)的環(huán)境行為時(shí),就使用assume約束。
控制Checks和Coverage
應(yīng)該提供一個(gè)字段來控制Checks是否被執(zhí)行和Coverage是否被收集,該字段可以通過uvm_config_db接口來控制。下面是一個(gè)使用checks_enable位來控制Checks的例子。
if (checks_enable) perform_transfer_checks();
uvm_config_db#(int)::set(this,"masters[0].monitor", "checks_enable", 0);
?
審核編輯:劉清
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110400 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19231 -
DUT
+關(guān)注
關(guān)注
0文章
189瀏覽量
12491
原文標(biāo)題:在驗(yàn)證環(huán)境中開發(fā)Checks和Coverage
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
在STM32F334上使用IAR開發(fā)環(huán)境和jlink的SWD接口調(diào)試,怎么設(shè)置才可以使用IAR的code coverage功能?
【大聯(lián)大世平Intel?神經(jīng)計(jì)算棒NCS2試用體驗(yàn)】2.搭建OpenVino開發(fā)環(huán)境下——測(cè)試驗(yàn)證開發(fā)環(huán)境
ST-Link調(diào)試開發(fā)環(huán)境介紹設(shè)置步驟
怎樣在Arduino環(huán)境中添加ESP32開發(fā)板呢
重點(diǎn)厘清覆蓋率相關(guān)的概念以及在芯片開發(fā)流程中跟覆蓋率相關(guān)的事項(xiàng)
SpinalHDL開發(fā)環(huán)境搭建步驟相關(guān)資料分享
聊聊芯片IC驗(yàn)證中的風(fēng)險(xiǎn)
一個(gè)coverage merge小技巧
![一個(gè)<b class='flag-5'>coverage</b> merge小技巧](https://file1.elecfans.com/web2/M00/88/99/wKgaomRtce-AXhshAAA_k1fc_to033.png)
SystemVerilog實(shí)用知識(shí)點(diǎn):覆蓋率之Function Coverage
![SystemVerilog實(shí)用知識(shí)點(diǎn):覆蓋率之Function <b class='flag-5'>Coverage</b>](https://file1.elecfans.com/web2/M00/89/2D/wKgZomR8TDGAc0leAADkFCfty84581.jpg)
基于UVM驗(yàn)證環(huán)境開發(fā)測(cè)試流程
![基于UVM<b class='flag-5'>驗(yàn)證</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>開發(fā)</b>測(cè)試流程](https://file1.elecfans.com/web2/M00/89/66/wKgZomSCmKqAHoQMAAAxpYwXPE4642.png)
可重用的驗(yàn)證組件中構(gòu)建測(cè)試平臺(tái)的步驟
![可重用的<b class='flag-5'>驗(yàn)證</b>組件<b class='flag-5'>中</b>構(gòu)建測(cè)試平臺(tái)的<b class='flag-5'>步驟</b>](https://file1.elecfans.com/web2/M00/89/8B/wKgZomSHwvCAMZd1AAA9F9tRAYU977.png)
如何在Arduino IDE中安裝ESP32開發(fā)環(huán)境
![如何在Arduino IDE<b class='flag-5'>中</b>安裝ESP32<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>](https://file1.elecfans.com/web2/M00/8C/AC/wKgZomSvudCASHnzAADYSS0eA9c537.jpg)
編寫動(dòng)態(tài)的驗(yàn)證環(huán)境
![編寫動(dòng)態(tài)的<b class='flag-5'>驗(yàn)證</b><b class='flag-5'>環(huán)境</b>](https://file1.elecfans.com/web2/M00/8C/E1/wKgaomS0qoKAcKDjAAAW9f5pLLE341.png)
在美國(guó)VPS上設(shè)置開發(fā)和測(cè)試環(huán)境的基本步驟和技巧
![<b class='flag-5'>在</b>美國(guó)VPS上設(shè)置<b class='flag-5'>開發(fā)</b>和測(cè)試<b class='flag-5'>環(huán)境</b>的基本<b class='flag-5'>步驟</b>和技巧](https://file1.elecfans.com//web2/M00/F2/53/wKgZomZ5FlSAM_bKAAAoKJo7Gxo591.png)
評(píng)論