Used as variable in one process and allows faster processing. They can be declared in a process or in the dedicated brackets of Process. Variables can be written and read by one Process, but they will be set instantly. So you can write
count := count + 1;If (count = ...)
with the increased value.
VARIABLE <Name> : <Type> <Range> := default;
VARIABLE Counter : UNSIGNED (7 downto 0) := (others => '0');
Range: For INTEGER, NATURAL and POSITIVE: ... to ... -> will allow numbers from ... to ... For STD_LOGIC_VECTOR or other vectors: (... to/downto ...) -> will have bit ... to ...
Default: Important if you write e.g. Counter <= Counter + 1;, because it needs a startvalue.
Same as with Signal, but use := except of <= (The VHDP IDE converts = to :=/<= automatically)