Verilog之event的用法

时间:2023-03-09 07:34:20
Verilog之event的用法

编写verilog的testbench时,可使用event变量触发事件。

event变量声明为:

event var;

event触发为:

->var;

捕获触发为:

@(var);

在modelsim中可运行的实例码如下:

10个时间单位后reset_trigger事件被触发,捕获后将reset设置一个时钟周期再触发reset_done_trigger。之后再分别设置10个周期的随机信号给enable和reset。

 `timescale 1ns/100ps
module event_test;
event reset_trigger;
event reset_done_trigger;
reg clk;
reg reset;
reg enable; initial
begin
clk = ;
forever # clk = ~clk;
end initial begin
forever begin
@(reset_trigger);
@(negedge clk);
reset = ;
@(negedge clk);
reset = ;
-> reset_done_trigger;
end
end initial
begin
# -> reset_trigger;
@(reset_done_trigger);
fork
repeat () begin
@(negedge clk);
enable = $random;
end
repeat () begin
@(negedge clk);
reset = $random;
end
join
end
endmodule

运行结果如下:两个白点处是事件触发的时刻

Verilog之event的用法