Concatenando os bits em VHDL
-
03-07-2019 - |
Pergunta
Como você concatenar bits em VHDL? Eu estou tentando usar o seguinte código:
Caso b0 e b1 e b2 e b3 é ...
e ele lança um erro
Graças
Solução
O operador de concatenação '&' é permitido no lado direito do operador de atribuição de sinal '<=', única
Outras dicas
Aqui está um exemplo de operador de concatenação:
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;
Você não tem permissão para usar o operador de concatenação com a declaração caso. Uma possível solução é usar uma variável dentro do processo:
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;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow