This document summarizes a presentation on understanding blocking and non-blocking assignments in Verilog. The key points are:
- Blocking assignments evaluate and assign in a single step, blocking further execution until complete. Non-blocking assignments evaluate immediately but assign later.
- Procedural assignments can be modeled as sequential (determinate order) or concurrent (indeterminate order).
- Simulation time is divided into queues for evaluating different statement types. Blocking assigns in Q1, non-blocking assigns in Q2.
- Timing controls like # delays can postpone when an assignment is evaluated or assigned, allowing non-blocking assignments even in sequential blocks.