Escolar Documentos
Profissional Documentos
Cultura Documentos
Código:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity atividade5 is
generic (
f_clk: integer := 15_000_000 -- Frequência do clock
);
port (
clk: in std_logic; -- Entrada do clock
enable: in std_logic; -- Botão de habilitar
reset: in std_logic; -- Botão de reset
pause: in std_logic; -- Botão de pausa
leds: out std_logic_vector(9 downto 0) -- Saída dos LEDs de 10 bits
);
end entity atividade5;
begin
-- Processo de controle de LEDs
process (clk, reset, enable, pause)
begin
if reset = '0' then
-- Quando o botão de reset é pressionado, redefina as variáveis
contador <= 0;
indice_led <= 0;
leds_temp <= (others => '0');
direcao <= '0';
tempo_led <= 0;
elsif rising_edge(clk) and enable = '1' then
-- Somente se o botão de habilitar estiver pressionado
if pause = '0' then
-- Se não estiver pausado
if contador = tempo_piscar then
contador <= 0;
leds_temp <= (others => '0');
leds_temp(indice_led) <= '1';
leds <= leds_temp; -- Atualiza as saídas dos LEDs com o valor temporário
end architecture atividade5;