top of page
15.5. Best Practices and Guidelines
​
Function Best Practices
​
-
Use for combinational logic and calculations
​
-
Keep functions pure (no side effects)
​
-
Use descriptive names (calculate_parity, not f1)
​
-
Document expected input ranges
​
-
Avoid complex nested functions
​
Task Best Practices
​
-
Use for testbench stimulus/checking
​
-
Use automatic for fork-join scenarios
​
-
Clearly document timing behavior
​
-
Group related protocol operations
​
-
Use meaningful parameter names
​
General Guidelines
​
-
Use automatic by default in modern code
​
-
One task/function per operation
​
-
Keep them focused and simple
​
-
Comment complex logic
​
-
Test thoroughly
​
15.5.1. Common Mistakes and Solutions
​
Mistake #1: Timing Controls in Functions
Verilog
Mistake #2: Forgetting 'automatic' for Recursion
Verilog
Mistake #3: Using Task Call in Expression
Verilog
Mistake #4: Not Returning Value in Function
Verilog
bottom of page
