Объединяющие биты в VHDL - PullRequest
       38

Объединяющие биты в VHDL

14 голосов
/ 16 октября 2008

Как вы объединяете биты в VHDL? Я пытаюсь использовать следующий код:

Случай b0 & b1 & b2 & b3 ...

и выдает ошибку

Спасибо

Ответы [ 3 ]

25 голосов
/ 16 октября 2008

Оператор конкатенации '&' разрешен справа от оператора назначения сигнала '<=', только </p>

12 голосов
/ 16 октября 2008

Вот пример оператора конкатенации:

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;
11 голосов
/ 01 декабря 2009

Вы не можете использовать оператор конкатенации с оператором 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;
...