Soy nuevo con el código vhdl. Tengo tres (y) componentes y un componente (elector). No quiero activar esos (y) componentes de una vez, quiero activar el primero entonces, cuando tengo la respuesta del primer (y) componente, activo el segundo y cuando tengo la respuesta del segundo activa la tercera. Luego vota entre tres respuestas. ¿Qué tengo que hacer? Por favor, ayúdame con este problema.
aquí está la principal entidad:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity triple is
port ( A, B: in std_logic;
O: out std_logic);
end triple;
architecture Behavioral of triple is
component and_1 is
port (a1, b1: in std_logic;
o1 : out std_logic);
end component;
component and_2 is
port (a2, b2: in std_logic;
o2 : out std_logic);
end component;
component and_3 is
port (a3, b3: in std_logic;
o3 : out std_logic);
end component;
component voter is
port (a, b, c: in std_logic;
output : out std_logic);
end component;
signal out1, out2, out3 : std_logic;
begin
-- ands---
firstand: and_1 port map (A, B, out1);
secondand: and_2 port map (A, B, out2);
thirdand: and_3 port map (A, B, out3);
---Voter---
vote: voter port map (out1, out2, out3, O);
end Behavioral;
El primero y el componente:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity and_1 is
port (a1, b1: in std_logic;
o1 : out std_logic);
end and_1;
architecture Behavioral of and_1 is
begin
o1 <= a1 and b1;
end Behavioral;
El segundo y el tercer componente son como el primero.
Aquí está el componente del votante:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity voter is
port (a, b, c: in std_logic;
output : out std_logic);
end voter;
architecture Behavioral of voter is
begin
output <= (a and b) or ( b and c) or (a and c);
end Behavioral;