“bins”是在功能覆蓋率coverpoint中收集設(shè)計(jì)特性用的。
功能覆蓋率覆蓋的就是一個(gè)個(gè)的coverpoint bins(不同的變量),對(duì)于一個(gè)8bit addr,那么默認(rèn)的bins就是8‘h00~8’hFF,當(dāng)然也可以顯式地指定不同值之間的切換為一個(gè)bins。
從這個(gè)角度來理解,coverpoint bins非常容易理解,但是涉及到具體的應(yīng)用還是會(huì)有很多問題需要考慮的。

例如,在下面的聲明中,將創(chuàng)建多少個(gè)bins?
bins adrbin1 = {[0:3]};
16個(gè)、4個(gè)還是1個(gè)。
答案是1個(gè)bin,相當(dāng)于覆蓋了

注意上面的寫法' bins adrbin1 '沒有[]括號(hào)。換句話說,' bins adrbin1 '不會(huì)為' addr '值{[0:3]}自動(dòng)創(chuàng)建4個(gè)bins,而是只創(chuàng)建1個(gè)bins來覆蓋值' 0 ',' 1 ',' 2 ',' 3 '。
也就是說,只要覆蓋了0~3其中的一個(gè),這個(gè)coverpoint覆蓋率就是100%
但是,如果你希望分別收集變量“adr”的每個(gè)值,該怎么辦呢。應(yīng)該按照下面的這種寫法,加上“[]”
binsadrbin2[]={[4:5]};
這時(shí)候會(huì)為4、5分別創(chuàng)建一個(gè)bins,只有4和5全部覆蓋,這個(gè)coverpoint的覆蓋率才是100%
在開發(fā)SV功能覆蓋率模型時(shí)可能沒有辦法把所有的值都寫滿,這個(gè)時(shí)候可以利用符號(hào)“$”,很多語義下它都代表著無限大的意思。對(duì)于一個(gè)8bit addr變量
bins adr[] = {[31:$]}
就意味著顯式地收集{[31:255]}
審核編輯:劉清
-
Verilog
+關(guān)注
關(guān)注
30文章
1373瀏覽量
114511 -
變量
+關(guān)注
關(guān)注
0文章
616瀏覽量
29504
原文標(biāo)題:什么是systemverilog bins?
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
[啟芯公開課] SystemVerilog for Verification
round robin 的 systemverilog 代碼
做FPGA工程師需要掌握SystemVerilog嗎?
SystemVerilog Assertion Handbo
SystemVerilog的斷言手冊(cè)
SystemVerilog的正式驗(yàn)證和混合驗(yàn)證
SystemVerilog對(duì)硬件功能如何進(jìn)行建模
怎樣去使用SystemVerilog中的Static方法呢
SystemVerilog中的Shallow Copy
從Verilog PLI到SystemVerilog DPI的演變過程
SystemVerilog里的regions以及events的調(diào)度
ignore_bins和default兩者之間有些什么細(xì)微差別呢?
systemverilog bins是如何去定義的
評(píng)論