我遇到了一段代码,其中 always
block 中有一个 continue
。例如:
always @(posedge clk) begin
count = count + 1;
if(count[0])
continue;
$display("count: ",count);
end
我无法理解这个 continue
在这里是如何工作的,因为我认为 continue
仅在循环中使用时才适用。请告知任何相关内容。
最佳答案
根据 IEEE Std 1800-2017,第 12.8 节跳转语句:
The continue and break statements can only be used in a loop.
由于 continue
语句不在循环内(例如 for
或 while
循环),因此它是非法语法。 edaplayground上的几个模拟器产生编译错误。如果您没有收到错误,则说明您的模拟器不符合标准,并且您的代码将无法与其他模拟器移植。此外,由于标准中明确禁止它,因此其行为未定义。
关于system-verilog - Always block 中的 continue 有何作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67102595/