If condition statement

In reply to dave_59:

Thanks dave_59 for responding. In my case x is assigned using NBA exactly @posedge clk. So you means if x is assigned value using NBA, then it will be updated at the end of current time slot. But if condition is checked in the active region, so active region value of x i.e preponed value (which is 0 in my case) will be used in if condition. Updated value will be assigned in NBA region that comes after active region. That’s why if condition is evaluated false even though x is going 0 to 1 at posedge clk. If x is assigned using blocking or assign statement, then if condition will be evaluated true. Same rule applies to UVM monitor also.
Correct me if i am wrong.