Как вы объединяете биты в VHDL? Я пытаюсь использовать следующий код:Конкатенация бит в VHDL
Case b0 & & b1 b2 b3 & является ...
и выдает ошибку
Благодаря
Как вы объединяете биты в VHDL? Я пытаюсь использовать следующий код:Конкатенация бит в VHDL
Case b0 & & b1 b2 b3 & является ...
и выдает ошибку
Благодаря
Оператор конкатенации '& 'разрешено с правой стороны оператора присваивания сигнала' < = ', только
пример оператора конкатенации:
architecture EXAMPLE of CONCATENATION is
signal Z_BUS : bit_vector (3 downto 0);
signal A_BIT, B_BIT, C_BIT, D_BIT : bit;
begin
Z_BUS <= A_BIT & B_BIT & C_BIT & D_BIT;
end EXAMPLE;
Вам не разрешено использовать оператор конкатенации с оператором case. Одним из возможных решений является использование переменной в процессе:
process(b0,b1,b2,b3)
variable bcat : std_logic_vector(0 to 3);
begin
bcat := b0 & b1 & b2 & b3;
case bcat is
when "0000" => x <= 1;
when others => x <= 2;
end case;
end process;
Он работает для переменных присваиваний `: =` также .. см. Другие ответы – 2010-03-04 12:07:25