I’m confuse regarding the exact meaning of wait statement.
What does happen in this case:
forever begin
wait (vif.xn_valid == 1'b1);
@(posedge vif.clk);
end
Is wait statement is blocking statement?
Is the
@(posedge vif.clk)
exexuted each loop (regardless the evaluation of the wait expression) ?
And in this case:
forever begin
wait(vif.cyc_tic == 1'b1) @(posedge vif.clk) #0 fact_log2_samp_t = vif.fact_log2_samp;
end
Is the code after the wait (
#0 fact_log2_samp_t = vif.fact_log2_samp;
) executed only if the evaluation of the wait expression is true)?