In reply to saritr:
Whenever I see #0’s or #1 in a user’s code, I view that as a workaround for code they wrote and do not completely understand, or a workaround for code that someone else wrote who did not know what they were doing. If you must put #0 or #1 in your code, you need to document why you thought it was needed. In almost all cases, it’s not needed, or there is a much better way to write your code without it.
Without knowing all the timing of your signals, my best guess is to move the forever loops inside each process of the fork
fork
begin : process1
forever begin
...
end
end
begin : process2
forever begin
...
end
end
join
The join will never be reached, and that is OK for a monitor or driver.