Verilog Non-Blocking And IF-Statement
Yes, you are right.  It will use the old value when evaluating the conditional.  All the statements are evaluated in order, but none of the assignment take place until after the clock &quot;ticks&quot;.  So the last assignment will &quot;win&quot; if there are multiple assignments to the same register.