VERILOG2122: “always_ff” block should not contain any blocking assignments for non-local variables
Summary
| Reliability | Security | Maintainability | Code attribute | Effort to fix | Tags |
|---|---|---|---|---|---|
| HIGH | - | - | Intentionality | Logical | 20min | synthesis, vscode, simulation, linter |
Description
always_ff block should not contain any blocking assignments for non-local variables.
Noncompliant code example
always_ff @(posedge clk) begin y = 0; // Noncompliant: Blocking assignment z <= 1; // Compliant: Non-blocking assignment int k; k = 42; // Compliant: Blocking assignment on local variable end
Compliant solution
always_ff @(posedge clk) begin y = 0; // Compliant: Non-blocking assignment z <= 1; // Compliant: Non-blocking assignment int k; k = 42; // Compliant: Blocking assignment on local variable end
Articles & blog posts
Parameters
No parameters.