与关系运算符重复的含义是什么

sar*_*a8d 1 verilog system-verilog

我知道repeat(number)的含义是什么,但在下面的例子中含义是什么:

repeat(m_wr_queue.size()==0) @(posedge m_vif.AXI_ACLK);?
Run Code Online (Sandbox Code Playgroud)

dav*_*_59 5

这是非常糟糕的代码.关系运算符的结果是1'b0或1'b1,因此产生的效果与

if (m_wr_queue.size()==0) @(posedge m_vif.AXI_ACLK);
Run Code Online (Sandbox Code Playgroud)

这比原来的字符更少,更易读.

但是,他们有可能写出一些不是他们意图的东西.通常你想继续等待,直到有东西在队列中.然后他们应该写的是

while(m_wr_queue.size()==0) @(posedge m_vif.AXI_ACLK);
Run Code Online (Sandbox Code Playgroud)