2014年4月17日 星期四

System Verilog Assertion

System Verilog Assertion 簡稱 SVA。

System Verilog 是高階的Verilog, 那 Assertion 呢?

查一下google 即可發現, 有人把它翻譯成斷言, 或是有人會翻譯成判定。

判定什麼呢?

SVA 主要是用來判斷RTL裡面的行為是否合乎你的預期。

然而有人會說, 傳統的Verilog 也可以寫成很棒的bench。

為什麼需要學習SVA 呢?


簡單來說,SVA 可以表達得更精確且易讀。

舉個例子來說,如果你想要在A訊號為high,B訊號必須在1~3 cycle 內看到也是high。

那要如何做呢?如果是傳統的Verilog,勢必要有counter ? 或是pipe delay?

然而不同門派,有不同的作法。

在SVA 卻只要短短幾行

property a;
    @(posedge clk) A |-> ##[1:3] B;
endproperty

沒有留言:

張貼留言