VHDL190: Variables should only be used in processes, functions and procedures

Summary

Count: 1

ReliabilitySecurityMaintainabilityCode attributeEffort to fixTags
MEDIUM--Intentionality | Logical20minsynthesis, vscode, cnes-std-06300, linter, cnes

Description

VHDL signal is the object used to describe an electrical wire connection or a register. VHDL signal is the way to have a communication between VHDL processes, whereas variable were meant to store a value inside a VHDL process. A variable is assigned without any delay whereas signal assignment lead to an event after a delta delay. This difference can induce design errors or simulation and synthesis mismatch. Thus, variable should only be used in processes, functions and procedures.

Related rules

Noncompliant code example

entity e is -- Noncompliant: Variable v not declared in process or function or procedure
  variable v : std_logic;
begin
  ...
end;

Compliant solution

process -- Compliant: Variable v declared in process
  variable v : std_logic;
begin
  ...
end process;

Parameters

No parameters.