14.4.1. Delay-Based Timing Controls
Delay-based timing controls use the # symbol followed by a delay value to suspend execution for a specific amount of time. Delays are expressed in simulation time units.
14.4.1.1. Regular Delay Control (#delay)
Syntax and Basic Usage
Verilog
Characteristics
-
Delays are CUMULATIVE in sequential blocks
-
Execution suspends for the specified time
-
NOT synthesizable (testbench use only)
-
Can use expressions: #(period/2)
-
Simulator advances time by delay amount
Delay Types
Verilog
Practical Examples
Verilog
14.4.1.2. Intra-Assignment Delay
Concept and Syntax
Intra-assignment delay places the delay AFTER the assignment operator. The RHS is evaluated immediately, but the assignment to LHS is delayed.
Verilog
Regular vs Intra-Assignment Delay
Verilog
Timing Diagram Comparison
.png)
14.4.1.3. Zero Delay (#0)
Zero delay is a special case that doesn't advance simulation time but allows other scheduled events at the same time to execute first.
Purpose and Usage
Verilog
Used for:
-
Avoiding race conditions
-
Ensuring all concurrent events complete first
-
Deterministic event ordering
