Вам необходимо пройти через размер цели и источника в назначениях, так как есть несоответствие размера нескольких мест, например, присваивать regA
в строке 42:
A : in STD_LOGIC_VECTOR (0 to 7);
...
signal regA : std_logic_vector(0 to 7); -- Register А
...
regA <= A & "0000";
Размер цели равен 8бит (signal regA : in std_logic_vector(0 to 7)
) и размер источника составляет 8 бит (A : in STD_LOGIC_VECTOR (0 to 7);
) + 4 бита ("0000"
) = 12 бит.
В сборке ISim могут быть некоторые предупреждения обо всех местах снесоответствие размера.