To wait for a maximum of
10ns for positive edge on clk then carry on with simulation.
fork : wait_or_timeout begin #10ms; disable wait_or_timeout; end begin @(posedge clk); disable wait_or_timeout; end join
Often use to fail simulation if the expected signal does not occur, this stops simulation hanging and allows status reports to be generated.
Originally posted as SO answer.