在SystemVerilog中,經(jīng)常會需要將一些值或者翻轉(zhuǎn)行為從覆蓋率中排除掉,ignore_bins是經(jīng)常被用到的一種方式,其實除了ignore_bins之外,還可以將一些bins的值范圍指定為關(guān)鍵字defualt,從而實現(xiàn)將一些不期望或者無效的數(shù)據(jù)進行分配,同樣也可以實現(xiàn)命中該倉的數(shù)據(jù)不被收集到覆蓋率中。既生瑜何生亮,效果都一樣,為什么要存在兩個呢?兩者之間有些什么細(xì)微差別呢?下文將通過示例說明。
1 ignore_bins
【示例】忽略一些數(shù)值
【仿真結(jié)果】
示例中仿真統(tǒng)計結(jié)果中可以看到,命中val倉(ignore_bins)的數(shù)值被排除在覆蓋率的計算之外,即被exclude掉了,并且val倉及其中相關(guān)數(shù)值在解析時不會被命中。通過例子可以看到,當(dāng)定義了ignore_bins時,EDA仿真工具不會收集相應(yīng)ignore_bins中的數(shù)據(jù),即ignore_bins一般用于將一些值或者翻轉(zhuǎn)行為從覆蓋率中排除掉。
2 default bins
【示例】
【仿真結(jié)果】
示例仿真統(tǒng)計結(jié)果中可以看到,命中val1倉(default)的數(shù)值被排除在覆蓋率的計算之外,即被exclude掉了,但是val1倉在仿真時會被命中,從某種程度上來說ignore_bins更像是刻意去exclude一些數(shù)值,而default更像是要囊括一些確定要覆蓋數(shù)據(jù)之外的數(shù)據(jù)。既然兩者都這么“不接受不拒絕”,那么可不可把ignore_bins后頭的數(shù)值范圍也省略了直接用default呢?請看下例。
【示例】
【仿真結(jié)果】
么辦法,工具提示ignore_bins和default這兩個這種行為是不允許的,不能既想當(dāng)老鴇還要立牌坊,即不能將ignore_bins的取值范圍設(shè)成default,
在上述ignore_bins的示例中,注意到可以不定義其他的倉,僅僅只指定ignore_bins,那么對于指定的default倉,是否可以不指定其他倉,僅僅只指定一個倉為default呢?請看下頭的例子。
【示例】
【仿真結(jié)果】
從仿真結(jié)果中可以看到,仿真工具已經(jīng)無法顯示percent了,因為此時val倉的取值范圍為default,仿真工具不知道default之外的值是什么,所以也就無法進行相關(guān)的覆蓋率統(tǒng)計,當(dāng)然一般情況下也么人這么無聊在一個coverpoint中指定一個倉并且將其取值范圍設(shè)為default。
通過上面幾個示例,ignore_bins和倉的default之間的關(guān)系可以簡單匯總?cè)缦拢?/p>
?ignore_bins和倉的default對于coverage都么有什么影響;
?ignore_bins在仿真時不會進行倉的命中的統(tǒng)計,而倉的default會進行倉命中情況的統(tǒng)計;
?ignore_bins指定的取值范圍不能設(shè)為default;
?ignore_bins偏重于忽略一些具體范圍的值,即確定要忽略的一些值;
?倉取值范圍設(shè)為default主要是涵蓋一些不在計劃中或者無效的數(shù)據(jù),即一些不是太確定的數(shù)值;
審核編輯:劉清
-
EDA工具
+關(guān)注
關(guān)注
4文章
268瀏覽量
31814 -
仿真器
+關(guān)注
關(guān)注
14文章
1018瀏覽量
83790 -
Verilog語言
+關(guān)注
關(guān)注
0文章
113瀏覽量
8273
原文標(biāo)題:SystemVerilog中的ignore_bins和bin的default
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論