How to achieve fork-join_none and fork join_any functionality using fork-join

In reply to MadhavSrikantam:

Although it’s possible to make this contrived example work like join_none or join_any

module top;

event ev_any, ev_none;
 
initial 
  begin
      fork
          begin : b1
            -> ev_none;
            #5 $display($time, " from block b1");
            -> ev_any;
          end : b1
 
          begin : b2
            -> ev_none;
            #10 $display($time, " from block b2");
            -> ev_any;
          end : b2
          
          begin
          @(ev_none) // replace with @(ev_any) to get join_any functionality 
          $display($time, " from outside fork-join block");
          end
      join
 
  end
 
endmodule


It would be very difficult to get this functionality was embedded inside a task or loop.

1 Like