現(xiàn)看一段代碼
請根據(jù)這段代碼寫一個(gè)assertion檢查 count 每次加5。
下面是一種寫法
看起來不算太復(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ǎng)上的資料,開始并沒有什么收獲。
大部分資料都偏向基礎(chǔ)的assertion語法解釋。
直到我們看到這份文檔,筆者大概猜到這就是我們要找的東西。
這完全符合我們最初的設(shè)想,有一系列的assertion checker Library 可以供我們調(diào)用,實(shí)現(xiàn)一些通用的assertion檢查。
回到上面第一個(gè)問題,我們要用assertion檢查count按cycle每次加5怎么做?assert_increment 很好的解決了這個(gè)問題。
調(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è)問題,fifo的underflow ,overflow的檢查。可以用assert_fifo 檢查。
說了這么多,很多人肯定想知道這個(gè)assertion checker library是放在哪里的。
答案是
$VCS_HOME/packages/sva/
沒錯,他就是VCS的 SVA checker library!
我們點(diǎn)開一個(gè)assert_never 看下
各個(gè)參數(shù)和說明都有,完美!
審核編輯:劉清
-
VCS
+關(guān)注
關(guān)注
0文章
79瀏覽量
9605 -
SVA
+關(guān)注
關(guān)注
1文章
19瀏覽量
10129 -
FIFO存儲
+關(guān)注
關(guān)注
0文章
103瀏覽量
5971 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17165
原文標(biāo)題:寫assertion很痛苦? 來了解下SVA Checker Library 吧!
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論