Por lo tanto, actualmente estoy escribiendo el código VHDL para una pantalla de 7 segmentos que mostrará (0-F) una vez por segundo. Ya casi he hecho todo, lo único que me he quedado atascado es el controlador.
Necesito tener 4 botones, el primero inicia el contador, el segundo lo detiene, el tercero lo incrementa en uno y el último lo restablece a 0 (ya tengo el último hecho, solo necesito el primero tres)
Aquí está mi código general (tenga en cuenta que el componente del Problema 2 es mi contador):
entity SSD is
port (
seg : out std_logic_vector (6 downto 0);
an3 : out std_logic;
btn1, btn2, btn3, btn4 : in std_logic;
clk : in std_logic);
end SSD;
architecture Behavioral of SSD is
component hex7seg is
port (
x : in std_logic_vector (3 downto 0);
a_to_g : out std_logic_vector (6 downto 0));
end component;
component Problem2 is
port (
clr : in std_logic;
ce : in std_logic;
clk : in std_logic;
b : out std_logic_vector (3 downto 0);
tc : out std_logic);
end component;
component clkdiv is
port (
rst : in std_logic;
clk : in std_logic;
clkout : out std_logic);
end component;
component controller is
port (
start : in std_logic;
stop : in std_logic;
inc : in std_logic;
rst : in std_logic;
clk : in std_logic;
run : out std_logic);
end component;
signal b : std_logic_vector(3 downto 0);
signal run : std_logic;
signal clk_1sec : std_logic;
signal tc : std_logic;
begin
U1: hex7seg port map (x => b, a_to_g => seg);
U2: Problem2 port map (clr=>btn4, ce=>run, clk=>clk_1sec, b=>b, tc=>tc);
U3: controller port map (start => btn1, stop => btn2, inc => btn3, rst => btn4, clk => clk_1sec, run => run);
U4: clkdiv port map (rst => btn4, clk => clk, clkout => clk_1sec);
an3 <= '0';
end Behavioral;
Esto es lo que tengo hasta ahora para el código del controlador:
entity controller is
Port ( start : in STD_LOGIC;
stop : in STD_LOGIC;
inc : in STD_LOGIC;
rst : in STD_LOGIC;
clk : in STD_LOGIC;
run : out STD_LOGIC);
end controller;
architecture Behavioral of controller is
begin
run <= '1';
end Behavioral;
No estoy realmente seguro de a dónde ir para hacer funcionar los otros 3 botones, cualquier ayuda o dirección sería muy apreciada.