為了確保驗證的完備性,我們需要量化驗證目標。SystemVerilog提供了一套豐富的覆蓋率建模方式。有兩種覆蓋率建模方法:
functional coverage。用戶指定覆蓋率的目標,所需覆蓋的值和收集的時刻。完成所有覆蓋率的收集是確定DUT驗證完成情況的指標之一。
code-coverage。通常情況下,創(chuàng)建一個code-coverage很簡單,不需要花費很多精力。例如,行覆蓋率、toogle覆蓋率和FSM(有限狀態(tài)機)覆蓋率都是code-coverage。code-coverage的缺點是很難將code-coverage映射到驗證特性目標上,code-coverage沒有考慮到high-level的事務級行為。
建議從functional coverage開始建立一個功能覆蓋率模型來表示high-level驗證目標,之后可以使用code-coverage作為作為functional coverage的補充。
在code-coverage很低的情況下達到100%的functional coverage,通常意味著需要完善和加強functional coverage建模。
實現(xiàn)Functional Coverage Model
一個驗證組件應該有一個針對協(xié)議的功能覆蓋模型。你可能想禁用一些不重要或不需要驗證的覆蓋點。例如,你可能不需要測試系統(tǒng)中所有的總線事務類型。
你可能還想擴展功能覆蓋模型,在驗證組件覆蓋率和系統(tǒng)中的其他屬性或其他接口驗證組件之間建立關聯(lián)。例如,你可能想確保當FIFO已經滿時所有類型的事務都被發(fā)送過,這就需要事務類型與FIFO-狀態(tài)之間的cross。
啟用和禁用Coverage
驗證IP開發(fā)者應提供配置,允許驗證環(huán)境集成者或測試用例開發(fā)人員控制覆蓋率模型的Enable和Disabe。驗證VIP文檔應該包括哪些屬性可以被設置來影響覆蓋率的收集,最基本的控制是決定是否要收集覆蓋率。
uvm_config_db#(int)::(this,"ubus0.masters[0].monitor","coverage_enable",0); 或者 ubus0.masters[0].monitor.coverage_enable = 0;
?
審核編輯:劉清
-
有限狀態(tài)機
+關注
關注
0文章
52瀏覽量
10376 -
FIFO存儲
+關注
關注
0文章
103瀏覽量
6038 -
FSMC
+關注
關注
0文章
55瀏覽量
38221 -
Verilog語言
+關注
關注
0文章
113瀏覽量
8310 -
DUT
+關注
關注
0文章
189瀏覽量
12496
原文標題:開發(fā)一個覆蓋率模型
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
嵌入式仿真平臺SkyEye的覆蓋率分析相關資料下載
關于SpinalHDL中的驗證覆蓋率收集簡單說明
重點厘清覆蓋率相關的概念以及在芯片開發(fā)流程中跟覆蓋率相關的事項
Systemverilog覆蓋率的合并和計算方式
Verilog代碼覆蓋率檢查
IP開發(fā)時如何考慮復用覆蓋率
嵌入式代碼覆蓋率統(tǒng)計方法和經驗
![嵌入式代碼<b class='flag-5'>覆蓋率</b>統(tǒng)計方法和經驗](https://file.elecfans.com/web1/M00/D8/D3/o4YBAF_1YqiAZu9UAAAxHZKXLMg754.png)
統(tǒng)計嵌入式代碼覆蓋率的方法和經驗
![統(tǒng)計嵌入式代碼<b class='flag-5'>覆蓋率</b>的方法和經驗](https://file.elecfans.com/web1/M00/E7/B9/pIYBAGBhb12AYhw9AAAxHZKXLMg997.png)
怎么才能寫出高覆蓋率的Verilog代碼?
高覆蓋率的Verilog代碼的編寫技巧
代碼覆蓋率記錄
![代碼<b class='flag-5'>覆蓋率</b>記錄](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論