Pregunta

¿Cómo concatenar bits en VHDL? Estoy tratando de usar el siguiente código:

Caso b0 & amp; b1 & amp; b2 & amp; b3 es  ...

y arroja un error

Gracias

¿Fue útil?

Solución

El operador de concatenación '& amp;' está permitido en el lado derecho del operador de asignación de señal '< =', solo

Otros consejos

Aquí hay un ejemplo de operador de concatenación:

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;

No está permitido utilizar el operador de concatenación con la declaración de caso. Una posible solución es usar una variable dentro del proceso:

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top