VERILOG2122: “always_ff” block should not contain any blocking assignments for non-local variables

Summary

Count: 1

ReliabilitySecurityMaintainabilityCode attributeEffort to fixTags
HIGH--Intentionality | Logical20minsynthesis, 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.