If condition statement

In reply to shekher201778:

It uses the value of the RHS expression in the active region. Whether the active region value of the expression is the same as the preponed region value depends on how b is assigned. If you have

always@(posedge clk)
   #1ns a<=#5ns b;
always@(posedge clk)
   #1ns b = b +1;

There is still a race between whether at 1ns after the posedge clock if the first assignment to a uses the old value of b (which would be the same value it had in the preponed region), or the new value of b that was just updated by the second assignment statement in the active region.

Certain constructs like assertions and clocking blocks only use values from the preponed region. This is called the sampled value.