fork-join_none和fork-join、fork-join_any的区别一样在于进程退出机制以及对于父进程的影响。
fork-join_none不会占用任何父进程的时间,即不会影响父进程。
基于这个特性,如果你希望启动一个并行的进程,而又不需要等待它结束就可以使用fork-join_none
module forkJoin; int a, b, c, d; initial begin fork : forkBlock begin //frst process #50 a = 5; $display($stime,,,"a = %0d",a); end begin //second process #100 b = 10; $display($stime,,,"b = %0d",b); end begin //third process #100 c = 20; $display($stime,,,"c = %0d",c); end begin //fourth process #40 d = 15; $display($stime,,,"d = %0d",d); end join_none $display($stime,,, "out of the loop"); #100; end endmodule
仿真log:
0 out of the loop 40 d = 15 50 a = 5 100 b = 10 100 c = 20 V C S S i m u l a t i o n R e p o r t
在上面的例子中,通过fork-join_none启动4个进程,然而从仿真log中可以看到父进程没有被阻塞,在时刻0就打印了“out of the loop” 。
原 审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !