SystemVerilog divides a single time slot into multiple "regions" to order execution.
| Region | What happens here? |
|---|---|
| 1. Preponed | Sampling values for assertions (SVA). Values here are "stable". |
| 2. Active | Blocking assignments (=), continuous assignments
(assign), primitive evaluations. |
| 3. Inactive | #0 delays. (Try to avoid using these). |
| 4. NBA | Non-Blocking Assignments (<=) updates happen here. |
| 5. Observed | Evaluation of Assertions properties. |
| 6. Reactive | Execution of Testbench programs, Checker code. |
| 7. Postponed | $monitor, $strobe. Read-only region at end of time slot. |