# VHDL190: Variables should only be used in processes, functions and procedures ## Summary ```{raw} html

Count: 1

ReliabilitySecurityMaintainabilityCode attributeEffort to fixTags
MEDIUM--Intentionality | Logical20minsynthesis, vscode, cnes-std-06300, linter, cnes
``` ## Description ```{raw} html

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. ```{raw} html ```