現(xiàn)看一段代碼
請(qǐng)根據(jù)這段代碼寫一個(gè)assertion檢查 count 每次加5。
下面是一種寫法
看起來(lái)不算太復(fù)雜。
但是如果讓你寫一個(gè)關(guān)于fifo 不能overflow 和 underflow的assertion呢?
是不是發(fā)現(xiàn)很頭大?
筆者發(fā)現(xiàn)我們驗(yàn)證中很多assertion 具有一些共性,比如
某個(gè)條件永遠(yuǎn)不能發(fā)生;
某個(gè)條件一直為真;
req ack的檢查;
在一段時(shí)間內(nèi),某條件一直為真;
fifo的檢查;
等等
這些共性的東西,能不能整理成一個(gè)assertion的lib呢?帶著疑問(wèn)我們收集了網(wǎng)上的資料,開始并沒有什么收獲。
大部分資料都偏向基礎(chǔ)的assertion語(yǔ)法解釋。
直到我們看到這份文檔,筆者大概猜到這就是我們要找的東西。
這完全符合我們最初的設(shè)想,有一系列的assertion checker Library 可以供我們調(diào)用,實(shí)現(xiàn)一些通用的assertion檢查。
回到上面第一個(gè)問(wèn)題,我們要用assertion檢查count按cycle每次加5怎么做?assert_increment 很好的解決了這個(gè)問(wèn)題。
調(diào)用方法:
assert_increment #(0, 7, 5, 0,"ERROR: count has increased beyond allowable limit", 0, 0, 0, 1)invalid_count_increase (clk, reset_n, count);
第二個(gè)問(wèn)題,fifo的underflow ,overflow的檢查??梢杂胊ssert_fifo 檢查。
說(shuō)了這么多,很多人肯定想知道這個(gè)assertion checker library是放在哪里的。
答案是
$VCS_HOME/packages/sva/
沒錯(cuò),他就是VCS的 SVA checker library!
我們點(diǎn)開一個(gè)assert_never 看下
各個(gè)參數(shù)和說(shuō)明都有,完美!
審核編輯:劉清
-
VCS
+關(guān)注
關(guān)注
0文章
78瀏覽量
9581 -
SVA
+關(guān)注
關(guān)注
1文章
19瀏覽量
10117 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
5955 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17104
原文標(biāo)題:寫assertion很痛苦? 來(lái)了解下SVA Checker Library 吧!
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論