verilog使用@符號來控制基於特定事件的執行流,SystemVerilog增強了@事件控制。
@標記的一個基本應用——>推斷一個具有使能輸入的鎖存器。下面一個例子演示了一個鎖存器建模的基本風格。
always @(data or en) if(en) y<=data;
這種編碼風格效率極其低下,即使在使能輸入無效的情況下,數據輸入的每次改變都會觸發事件控制。
SystemVerilog在事件控制中加入了一個iff條件。只有當iff條件為真時,事件控制才會被觸發,使得只有在鎖存器輸出能夠改變的時候,事件控制才會被觸發。
always @(a or en iff en == 1) y <= a;
參考:http://blog.sina.com.cn/s/blog_6c7b6f030101csbp.html