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