Fork/join inside for loop

In reply to noel_sumners:

The point is, code might be ‘never ending’ because you don’t have any conditions to disable the forever loop.

Also,

forever begin : resetloop
  wait(drv_rst_state==RESET_INACTIVE);

  fork : resetloop_fork

  // Process 1
  fork
  join_none

  // Process 2
  fork
  join_none

  // Process 3
  begin
  wait(drv_rst_state==amd_reset_uvc_pkg::RESET_ACTIVE);
  end

  // You will encounter join_any statement as 
  // Process 1 and 2 finishes immediately.
  join_any
  disable resetloop_fork;

end // block: resetloop