En el modelado VHDL Dataflow , todas las declaraciones son concurrentes para cada evento.
Por ejemplo, el evento en el que B
se activa por primera vez lleva a ejecuciones simultáneas de las declaraciones 1 , 3 y 6 . Pero en la declaración 6 no tenemos valor para ABAR
.
Entonces, la ejecución continuará con un valor inicial (predeterminado) de ABAR
( predeterminado para el valor más a la izquierda ('izquierda) de su tipo declarado ), o qué?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity DECODER2x4 is
port (A, B, ENABLE: in BIT;
Z: out BIT_VECTOR(0 to 3));
end DECODER2x4;
architecture dec_dataflgw of DECODER2x4 is
signal ABAR, BBAR: BIT;
begin
Z(3) <= not (A and B and ENABLE); -- statement 1
Z(0) <= not (ABAR and BBAR and ENABLE); -- statement 2
BBAR <= not B; -- statement 3
Z(2) <= not (A and BBAR and ENABLE); -- statement 4
ABAR <= not A; -- statement 5
Z(1 ) <= not (ABAR and B and ENABLE); -- statement 6
end dec_dataflgw;
editar:
He actualizado el código, lo he comprobado, este funciona.