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
相关产品推荐
相关产品推荐

