如果在fork-join内部存在“ break”,如何中断循环?

时间:2018-07-16 16:12:01

标签: system-verilog

我需要中断一个repeat循环,该循环的break决定是在fork-join块内做出的,但是我的模拟器无法编译具有以下结构的代码。

repeat (10) begin
    fork
        begin
            // do something
        end
        begin
            #(100ms);
            break; // compile error
        end
    join_any
    disable fork;
end

我也尝试了disable命令。我能够进行编译,但是并没有中断循环。

repeat (10)
begin : repeat10_loop
    fork
        begin
            // do something
        end
        begin
            #(100ms);
            disable repeat10_loop; // try
        end
    join_any
    disable fork;
end : repeat10_loop

有没有办法在fork-join内使用breakdisable

1 个答案:

答案 0 :(得分:2)

breakcontinue语句必须与loop语句在同一进程中。禁用的问题是您错误地标记了循环。试试:

repeat10_loop: repeat (10)
   begin