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
沒有留言:
張貼留言