Why is this an issue?

Only enumerated type should be used to encode an FSM.

How to fix it

Code examples

Noncompliant code example

signal sm_moore : std_logic_vector(3 downto 0);

Compliant solution

state_moore_type is (state1, state2, state3);
signal sm_moore : state_moore_type;