Verilog - Difference between Blocking and Non-Blocking statements?
Sigiloso
Blocking statement(=) is going to be executed before the execution of statements following it. Blocking statement is similar to the sequential programming. For example in a=1; b=a; b will be the equal to one. Non-Blocking statement (<=) schedule an assignment without blocking the procedural flow. for example in a<=1; b<=a; a will be scheduled to one and b will be scheduled to be equal to previous value of a. So after executing this piece of code b will not be equal to 1 but the previous value of a.