BLOCKING ASSIGNMENT: 1. The value of the evaluated expression on the RHS is updated to the LHS variable after the delay value mentioned in the expression 2. If the assignment to a variable from two different processes at the same time, then there is a possibility of race condition occurrence 3. Generally used in combinational always blocks. 4. Can be used in procedural assignment blocks like ‘ initial ‘ and ‘ always ‘ as well as in continuous assignments like ’ assign ‘
NON-BLOCKING ASSIGNMENT: 1. The value of the evaluated expression on the RHS is updated to the LHS variable at the end of current evaluation cycle. 2. No possibility of race condition since the updated value of RHS is assigned to LHS at the end of current evaluation cycle. 3. Generally used in sequential always blocks. 4. Should be used in procedural assignment blocks like initial and always
BLOCKING ASSIGNMENT:
ReplyDelete1. The value of the evaluated expression on the RHS is updated to the LHS variable after the delay value mentioned in the expression
2. If the assignment to a variable from two different processes at the same time, then there is a possibility of race condition occurrence
3. Generally used in combinational always blocks.
4. Can be used in procedural assignment blocks like ‘ initial ‘ and ‘ always ‘ as well as in continuous assignments like ’ assign ‘
NON-BLOCKING ASSIGNMENT:
1. The value of the evaluated expression on the RHS is updated to the LHS variable at the end of current evaluation cycle.
2. No possibility of race condition since the updated value of RHS is assigned to LHS at the end of current evaluation cycle.
3. Generally used in sequential always blocks.
4. Should be used in procedural assignment blocks like initial and always