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`子进程。这是一个非常常见的错误。请参见我的示例