system-verilog - Always block 中的 continue 有何作用?

标签 system-verilog

我遇到了一段代码,其中 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 语句不在循环内(例如 forwhile 循环),因此它是非法语法。 edaplayground上的几个模拟器产生编译错误。如果您没有收到错误,则说明您的模拟器不符合标准,并且您的代码将无法与其他模拟器移植。此外,由于标准中明确禁止它,因此其行为未定义。

关于system-verilog - Always block 中的 continue 有何作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67102595/

相关文章:

indentation - 如何修复 Systemverilog 源代码中的缩进

system-verilog - 如何在系统verilog中运行时显示调用堆栈?

constraints - SystemVerilog 中一组变量的循环随机化

verilog - SystemVerilog 将一系列任务转换为单独的文件而不损失可读性

verilog - 我可以在 systemverilog 中合成一个使用结构作为参数的参数化函数吗?

object - 如何使用在 SystemVerilog 中对其进行操作的方法获取实例的名称?

interface - 声明模块接口(interface)时出现 SystemVerilog 编译错误(未声明的标识符 [12.5(IEEE)])

enums - 系统Verilog : How come the enum next() method cannot be used in a constant function?

system-verilog - 在 System Verilog 中检测时间刻度

verilog - 如何使用UVM工厂的set_inst_override_by_name来覆盖序列项