System verilog 如何让fork join/join\u any使用循环

System verilog 如何让fork join/join\u any使用循环,system-verilog,fork-join,System Verilog,Fork Join,按照 for(int j=1;j如果要等待由fork-jone\u none派生的所有进程完成,则在for循环后放置一个wait fork;语句。wait fork语句等待当前线程的所有子进程完成 Id在此之前,fork-jone_none创建了一些进程,对于仍处于活动状态的循环,您不想等待,您需要将这段代码放在隔离线程中 fork some_other_process; join_none fork begin : isolation_process for(int j=1;

按照


for(int j=1;j如果要等待由
fork-jone\u none
派生的所有进程完成,则在for循环后放置一个
wait fork;
语句。
wait fork
语句等待当前线程的所有子进程完成

Id在此之前,
fork-jone_none创建了一些进程,对于仍处于活动状态的
循环,您不想等待,您需要将这段代码放在隔离线程中

fork
  some_other_process;
join_none
fork 
  begin : isolation_process
    for(int j=1; j <=3; ++j) begin : for_loop
      fork
         automatic int k = j;
         begin
            .... # use k here
         end
      join_none
    end : for_loop
  wait fork; // will not wait for some other process
 end :isolation_thread
 join

如果要等待由
fork-jone\u none
派生的所有进程完成,请在for循环后放置
wait fork;
语句。
wait fork
语句等待当前线程的所有子进程完成

Id在此之前,
fork-jone_none创建了一些进程,对于仍处于活动状态的
循环,您不想等待,您需要将这段代码放在隔离线程中

fork
  some_other_process;
join_none
fork 
  begin : isolation_process
    for(int j=1; j <=3; ++j) begin : for_loop
      fork
         automatic int k = j;
         begin
            .... # use k here
         end
      join_none
    end : for_loop
  wait fork; // will not wait for some other process
 end :isolation_thread
 join

您正在查找
wait fork
。请参阅§9.6.1 wait fork语句

wait fork语句阻塞进程执行流,直到所有直接子进程(由当前进程创建的进程,不包括其子进程)完成执行

在for循环之后添加
wait fork
,以获得所需的效果:

for(int j=1; j <=3; ++j)
fork
    automatic int k = j;
    begin
        .... # use k here
    end
join_none

wait fork; // wait for all the above fork-join_none to complete

for(int j=1;j您正在查找的
wait fork
。请参阅§9.6.1 wait fork语句

wait fork语句阻塞进程执行流,直到所有直接子进程(由当前进程创建的进程,不包括其子进程)完成执行

在for循环之后添加
wait fork
,以获得所需的效果:

for(int j=1; j <=3; ++j)
fork
    automatic int k = j;
    begin
        .... # use k here
    end
join_none

wait fork; // wait for all the above fork-join_none to complete

用于(int j=1;j Greg和我的回答相同。但是要小心-
wait fork
不只是等待上面的
fork-join\u none
它等待当前进程的所有fork-join\u none`子进程。这是一个非常常见的错误。请看我的示例Greg和我的回答相同。但是要小心-
等待rk
不只是等待上面的
fork-join\u none
它等待当前进程的所有fork-join\u none`子进程。这是一个非常常见的错误。请参见我的示例