System Verilog視頻學習筆記(11)- Functional converage

Functional converage(功能覆蓋率)

內容來自啓芯-System Verilog視頻

============================================================== 

目錄結構:

1、驗證流程

2、計算功能覆蓋率

3、功能覆蓋率建模

4、總結

 ==============================================================

本章目標:

1、定義功能覆蓋結構

2、指定覆蓋率採樣機制

3、定義採樣的信號和變量

4、定義採樣值代表的功能

5、使用參數化使覆蓋率實例唯一

6、使用覆蓋率分配定義覆蓋率結構

7、動態監測testcase

 

1、驗證流程

圖1、驗證流程

驗證目標何時達到?

如何切換到corner-case驗證?當測試例子都到達預期目標時,設計邊界用例

什麼時候做直接測試?

圖2、Coverage位置

圖3、組合邏輯的驗證例子

完備輸入和輸出,定義需要採樣的信號

圖4、功能覆蓋率例子

(1)通過covergroup關鍵字,

coverpoint定義比特輸入,比特輸出

cross,交叉連接

option.goal驗證目標

endgroup

(2)實例化

(3)查詢結果

2、計算功能覆蓋率

圖5、計算覆蓋率

3、功能覆蓋率建模

狀態和狀態轉移生成

圖6、例子

對狀態和狀態轉換建模。

coverage bin生成:VCS內自動生成crosscoverage bins,如cross sa;

採樣:(1)指定採樣事件,@([specified_edge] signals | variables)。(2)使用系統函數 cov_object.sample()更新採樣比特。

控制覆蓋率過程$get_coverage()

coverage 屬性:可在coveragegroup等處定義。

主要的coverage選項

         (1)at_least(1):至少一次覆蓋

         (2)auto_bi_max(64):自動生成最大數

         (3)goal(100):100%覆蓋率

         (4)wight(1):coverage比特層數

         (5)per_instance(0):每個instance對覆蓋率的共享率

coverage結果報告:文件轉換成html、txt和仿真工具自動生成的格式

參數化coverage group

圖7:、參數化例子

通過傳遞參數方式定義。

 

4、總結

本節介紹了功能覆蓋率建模過程。

covergroup

coverpoint:採樣信號定義

cross:信號關係

endgroup

實例化,採樣、覆蓋率統計

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章