You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fork join_any并行块与后续语句同时执行时的执行顺序是否有保障?

关于Verilog中fork-join_any与后续语句执行顺序的疑问

以下是测试用的Verilog代码:

module test();
reg a,b,c,d;
initial begin
    fork
        #5  $display("Fork Time is %0t",$time);
        #10 $display("Fork Time is %0t",$time);
        #15 $display("Fork Time is %0t",$time);
    join_any
    #5 $display("Time is %0t",$time);
    #5 $display("Time is %0t",$time);
end
endmodule

标准规定顺序块内的语句会被顺序执行,但当顺序块中的fork/join_any或join_none导致并行块内的语句与并行块后的语句同时执行时,二者的执行顺序是否有明确保障?我使用多款仿真器进行了测试,结果如下:

# Fork Time is 5
# Fork Time is 10
# Time is 10
# Fork Time is 15
# Time is 15

我猜测并行块内的语句会先于同时执行的后续语句执行,但无法找到相关依据。

内容的提问来源于stack exchange,提问作者chen zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:47:37