覆蓋率選項,覆蓋率分析

2021-10-11 22:46:26 字數 1521 閱讀 4916

covergroup選項提供不同的覆蓋率選項,來計算覆蓋率。

乙個covergroup可能會被多個地方例化使用,預設情況下sv會將所有的例項的覆蓋率合併到一起計算。如果需要單獨列出每個covergroup例項的覆蓋率,需要以下設定覆蓋率選項。

covergroup cov;

coverpoint tr.length;

option.per_instance=1;

//指定單獨計算該覆蓋率吧報告

endgroup

covergroup cov

(int lo, hi, string comment)

;//lo,hi,引數也能傳進來,提高復用率

option.comment=comment;

//每個例化的cov都會傳入乙個comment

option.per_instance=1;

//指定單獨計算該覆蓋率吧報告

coverpoint port;}

endgroup

cov cp_lo=

new(0,

3,"low port number");

//傳入comment,傳入注釋

cov cp_hi=

new(0,

3,"high port number"

);

達到最低取樣次數,就表明是覆蓋上了,預設最少取樣是1次。

option.at_least,選項設定取樣次數。在covergroup中宣告時,表示該covergroup中所有的bin全部都設定有效,放在coverpoint中宣告,則只對當前的coverpoint中的bin有效
option.goal=

90; 覆蓋率設定90

%,同樣是放到covergroup或者coverpoint中有不同的效果

sample

() :取樣

get_coverage()

//獲取所有該covergroup例項的覆蓋率,返回0~100數

get_inst_coverage()

//返回當前例項的覆蓋率,返回0~100數

set_inst_name

(string)

//設定covergroup的名稱,出現在覆蓋率報告上

start()

/stop()

//使能或者關閉覆蓋率收集

在**過程中進行覆蓋率統計,以此動態的獲取當前的覆蓋率資訊,來調整約束,或者新增測試用例,來提覆蓋率

$get_coverage()

//這是個系統函式,可以得到總體覆蓋率

covergroup_inst.

get_inst_coverage()

//獲取單個covergroup例項的覆蓋率

覆蓋率分析

為什麼需要 覆蓋率分析?在發布 的時候,我們常常會對其進行一系列的測試來協調軟體的效能和功能,使他們和預計的相同。但是檢驗通常都是相當的困難,即使程式相當的簡單。開發者常常會借助一些 測試工具 test suite 來模擬或者重建執行指令碼。如果測試程式組是徹底的,那麼程式的各個功能都將被測試到並且...

功能覆蓋率

功能覆蓋率 function coverage 是屬於黑盒測試範疇內的,在實際測試中,涉及到的覆蓋率一般都是結構化覆蓋率,與黑盒相關的覆蓋率比較少。功能覆蓋中最常見的是需求覆蓋,其含義是通過設計一定的測試用例,要求每個需求點都被測試到。其公式是 需求覆蓋 被驗證到的需求數量 總的需求數量 在黑盒測試...

測試覆蓋率

摘要 在測試方法中粗略的介紹了幾種測試方法。其中,白盒測試的動態分析方法中提到邏輯覆蓋率測試有 語句覆蓋 分支覆蓋 判定覆蓋 條件覆蓋 條件 判定覆蓋和路徑覆蓋。這裡將詳細闡述邏輯覆蓋率測試。準備知識 可執行語句 可執行的一項操作 真 假分支 ture false 運算元 opreand 操作符 o...