為了確保驗(yàn)證的完備性,我們需要量化驗(yàn)證目標(biāo)。SystemVerilog提供了一套豐富的覆蓋率建模方式。有兩種覆蓋率建模方法:
functional coverage。用戶指定覆蓋率的目標(biāo),所需覆蓋的值和收集的時(shí)刻。完成所有覆蓋率的收集是確定DUT驗(yàn)證完成情況的指標(biāo)之一。
code-coverage。通常情況下,創(chuàng)建一個(gè)code-coverage很簡單,不需要花費(fèi)很多精力。例如,行覆蓋率、toogle覆蓋率和FSM(有限狀態(tài)機(jī))覆蓋率都是code-coverage。code-coverage的缺點(diǎn)是很難將code-coverage映射到驗(yàn)證特性目標(biāo)上,code-coverage沒有考慮到high-level的事務(wù)級(jí)行為。
建議從functional coverage開始建立一個(gè)功能覆蓋率模型來表示high-level驗(yàn)證目標(biāo),之后可以使用code-coverage作為作為functional coverage的補(bǔ)充。
在code-coverage很低的情況下達(dá)到100%的functional coverage,通常意味著需要完善和加強(qiáng)functional coverage建模。
實(shí)現(xiàn)Functional Coverage Model
一個(gè)驗(yàn)證組件應(yīng)該有一個(gè)針對(duì)協(xié)議的功能覆蓋模型。你可能想禁用一些不重要或不需要驗(yàn)證的覆蓋點(diǎn)。例如,你可能不需要測試系統(tǒng)中所有的總線事務(wù)類型。
你可能還想擴(kuò)展功能覆蓋模型,在驗(yàn)證組件覆蓋率和系統(tǒng)中的其他屬性或其他接口驗(yàn)證組件之間建立關(guān)聯(lián)。例如,你可能想確保當(dāng)FIFO已經(jīng)滿時(shí)所有類型的事務(wù)都被發(fā)送過,這就需要事務(wù)類型與FIFO-狀態(tài)之間的cross。
啟用和禁用Coverage
驗(yàn)證IP開發(fā)者應(yīng)提供配置,允許驗(yàn)證環(huán)境集成者或測試用例開發(fā)人員控制覆蓋率模型的Enable和Disabe。驗(yàn)證VIP文檔應(yīng)該包括哪些屬性可以被設(shè)置來影響覆蓋率的收集,最基本的控制是決定是否要收集覆蓋率。
uvm_config_db#(int)::(this,"ubus0.masters[0].monitor","coverage_enable",0); 或者 ubus0.masters[0].monitor.coverage_enable = 0;
?
審核編輯:劉清
-
有限狀態(tài)機(jī)
+關(guān)注
關(guān)注
0文章
52瀏覽量
10338 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
5988 -
FSMC
+關(guān)注
關(guān)注
0文章
55瀏覽量
38160 -
Verilog語言
+關(guān)注
關(guān)注
0文章
113瀏覽量
8249 -
DUT
+關(guān)注
關(guān)注
0文章
189瀏覽量
12392
原文標(biāo)題:開發(fā)一個(gè)覆蓋率模型
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論