Quiero implementar un búfer de tres estados para un vector de entrada, activado por un vector de habilitación, donde cada bit del vector de habilitación habilita el bit correspondiente del vector de entrada.
Algo así, pero con múltiples bits de habilitación:
Unúnicobúferdetresestadosseveasí:
Y<=Awhen(EN='0')else'Z';
(ejemplode:
Podría parecer esto (pero ese no funciona ...):
[...]
signal Y : std_logic_vector(N downto 0);
signal A : std_logic_vector(N downto 0);
signal EN : std_logic_vector(N downto 0);
Y <= A when EN = (others => '1') else (others => 'Z');
¿Hay alguna forma de declarar esto en VHDL o tengo que escribir un búfer para cada bit?
Editar: Para aclarar, estoy buscando una breve declaración para esto:
Y(0) <= A(0) when EN(0) = '1' else 'Z';
Y(1) <= A(1) when EN(1) = '1' else 'Z';
[...]
Y(N) <= A(N) when EN(N) = '1' else 'Z';