使用systemverilog已经有一段时间了,主要是其中的部分新特性能够简化代码的编写,比如interface、支持多维端口等。为了进一步深入学习systemverilog,最近抽空更广泛的学习了一些systemverilog的内容。本文记录一下Systemverilog中的事件控制和sequence控制相关内容的学习情况。
Systemverilog在@事件控制中添加了iff修饰词,只有当iff后的条件为真时,@事件才会触发。注意,iff可以在always和always_ff下使用,但是不能在always_comb、always_latch中使用。
module tb(
);
reg a;
reg en;
logic outa;
initial begin
a = 1'b0;
en = 1'b0;
#100 a = 1'b1;
#20 a = 1'b0;
#20 en = 1'b1;
#10 a = 1'b1;
#10 a = 1'b0;
end
always @ (a iff en)
outa <= a;
endmodule
上述代码的仿真结果如下,只有当en为真时,outa才会输出a的值。