Étape 5: Bas Module compteur
Le compteur en bas est lié à la commande de LED et l’horloge afin de contrôler le moment et la LED. Le bas compteur démarre à 60 secondes (afin de changer le décompte à la seconde, nous avons changé la fréquence de l’horloge) et commencera à décompter une fois qu’il n’y a pas plus de gens dans la salle. Le compteur sera décrémente de 1 à chaque cycle d’horloge jusqu'à ce qu’elle atteigne 0 secondes. Une fois le bas compteur arrive à 0 seconde, signal enable LED devient 0 et tous les voyants sont éteints. Pendant que le compteur à rebours, si quelqu'un entre dans la pièce pendant le temps, la LED correspondante s’allume et le compteur vers le bas sera réinitialisé à 60 secondes.
architecture Behavioral of counter is signal num: std_logic_vector(5 downto 0); begin process (en, reset, clk) begin if (en = '0') then LED_en <= '0'; else LED_en <= '1'; if(reset = '1') then num <= "111100"; else if (rising_edge(clk)) then if (num > 0) then num <= num - 1; end if; if (num = 0) then LED_en <= '0'; end if; end if; end if; end if; end process; Q <= num; end Behavioral;