System Verilog-等待语句
System Verilog- Wait statements
我对 wait 语句的确切含义感到困惑。
在这种情况下会发生什么:
forever begin
wait (vif.xn_valid == 1'b1);
@(posedge vif.clk);
end
等待语句是否阻塞?是
@(posedge vif.clk)
无论等待表达式的求值如何,每次在循环内执行?
在这种情况下:
forever begin
wait(vif.cyc_tic == 1'b1) @(posedge vif.clk) #0 fact_log2_samp_t = vif.fact_log2_samp;
end
是等待后的代码(#0 fact_log2_samp_t = vif.fact_log2_samp;
) 仅在等待表达式的计算结果为真时才执行?
在这种情况下
forever begin
wait (vif.xn_valid == 1'b1);
@(posedge vif.clk);
end
循环阻塞直到表达式 (vif.xn_valid == 1'b1)
为真,然后它阻塞直到 vif.clk
.
上有一个 posedge
A wait
语句块,直到条件为真。如果条件已经为真,则立即执行。
在这种情况下:
forever begin
wait(vif.cyc_tic == 1'b1) @(posedge vif.clk) #0 fact_log2_samp_t = vif.fact_log2_samp;
end
循环阻塞直到表达式 (vif.cyc_tic == 1'b1)
为真,然后它阻塞直到 vif.clk
上有一个 posedge
。等同于:
forever begin
wait(vif.cyc_tic == 1'b1);
@(posedge vif.clk);
#0 fact_log2_samp_t = vif.fact_log2_samp;
end
我对 wait 语句的确切含义感到困惑。
在这种情况下会发生什么:
forever begin
wait (vif.xn_valid == 1'b1);
@(posedge vif.clk);
end
等待语句是否阻塞?是
@(posedge vif.clk)
无论等待表达式的求值如何,每次在循环内执行?
在这种情况下:
forever begin
wait(vif.cyc_tic == 1'b1) @(posedge vif.clk) #0 fact_log2_samp_t = vif.fact_log2_samp;
end
是等待后的代码(#0 fact_log2_samp_t = vif.fact_log2_samp;
) 仅在等待表达式的计算结果为真时才执行?
在这种情况下
forever begin
wait (vif.xn_valid == 1'b1);
@(posedge vif.clk);
end
循环阻塞直到表达式 (vif.xn_valid == 1'b1)
为真,然后它阻塞直到 vif.clk
.
posedge
A wait
语句块,直到条件为真。如果条件已经为真,则立即执行。
在这种情况下:
forever begin
wait(vif.cyc_tic == 1'b1) @(posedge vif.clk) #0 fact_log2_samp_t = vif.fact_log2_samp;
end
循环阻塞直到表达式 (vif.cyc_tic == 1'b1)
为真,然后它阻塞直到 vif.clk
上有一个 posedge
。等同于:
forever begin
wait(vif.cyc_tic == 1'b1);
@(posedge vif.clk);
#0 fact_log2_samp_t = vif.fact_log2_samp;
end