Activar componentes uno tras otro

0

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;
    
pregunta user3637733

1 respuesta

0

VHDL es un lenguaje de descripción de hardware ... no activa los componentes, los crea una instancia. Todos sus componentes, los tres y el votante, se crearán y existirán para siempre (es decir, siempre que la simulación se esté ejecutando o hasta que reprograme el FPGA). Debe cambiar su perspectiva sobre la "programación" con un HDL.

Dicho esto, un componente combinacional está esencialmente inactivo hasta que cambian sus entradas. No lo activamos explícitamente, simplemente funciona de forma simultánea y asíncrona junto con todos los demás componentes combinacionales.

    
respondido por el Elliot Alderson

Lea otras preguntas en las etiquetas