Hi,
I am wondering why ev_b is not triggered in such two situations:
module tb;
event ev_a, ev_b;
initial begin
fork
begin
wait(ev_a.triggered);
$display("[%0t]Thread1: ev_a get triggered",$time);
end
begin
wait(ev_b.triggered);
$display("[%0t]Thread2: ev_b get triggered", $time);
end
begin
#40;
->ev_a;
end
begin
#30 ;
->ev_b;
end
begin
#10 ev_b = ev_a;
end
join
end
endmodule
[reporting result]
[30]Thread1: ev_a get triggered
module tb;
event ev_a, ev_b;
initial begin
fork
begin
wait(ev_a.triggered);
$display("[%0t]Thread1: ev_a get triggered",$time);
end
begin
wait(ev_b.triggered);
$display("[%0t]Thread2: ev_b get triggered", $time);
end
begin
#20;
->ev_a;
end
begin
#30 ;
->ev_b;
end
begin
#10 ev_b = ev_a;
end
join
end
endmodule
[reporting result]
[20]Thread1: ev_a get triggered