Übungen der VHDL-Einführung
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

down_counter_int.vhd 1.4KB

12345678910111213141516171819202122232425262728293031
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.numeric_std.all;
  4. entity Backward_Counter is
  5. port (
  6. CLK : in std_logic; -- Eingangssignal fuer den Takt
  7. RESET : in std_logic; -- Eingangssignal zum Zuruecksetzen des Zaehlers
  8. INITIAL_VALUE : in integer range 0 to 127; -- Anfangswert fuer den Zaehler
  9. COUNT_OUT : out integer range 0 to 127 -- Ausgangssignal fuer den aktuellen Zaehlerstand
  10. );
  11. end Backward_Counter;
  12. architecture Behavioral of Backward_Counter is
  13. signal count : integer range 0 to 127; -- Signal fuer den Zaehler
  14. begin
  15. process(CLK, RESET)
  16. begin
  17. if RESET = '1' then -- Wenn RESET aktiv ist
  18. count <= INITIAL_VALUE; -- setze den Zaehler auf den Anfangswert
  19. elsif rising_edge(CLK) then -- Bei steigender Taktflanke
  20. if count = 0 then -- Wenn der Zaehlerstand 0 ist
  21. count <= 127; -- setze den Zaehlerstand auf den maximalen Wert (127)
  22. else
  23. count <= count - 1; -- Verringere den Zaehlerstand um 1
  24. end if;
  25. end if;
  26. end process;
  27. COUNT_OUT <= count; -- Weise den aktuellen Zaehlerstand dem Ausgangssignal zu
  28. end Behavioral;