12345678910111213141516171819202122232425262728293031 |
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.numeric_std.all;
-
- entity Backward_Counter is
- port (
- CLK : in std_logic; -- Eingangssignal fuer den Takt
- RESET : in std_logic; -- Eingangssignal zum Zuruecksetzen des Zaehlers
- INITIAL_VALUE : in integer range 0 to 127; -- Anfangswert fuer den Zaehler
- COUNT_OUT : out integer range 0 to 127 -- Ausgangssignal fuer den aktuellen Zaehlerstand
- );
- end Backward_Counter;
-
- architecture Behavioral of Backward_Counter is
- signal count : integer range 0 to 127; -- Signal fuer den Zaehler
- begin
- process(CLK, RESET)
- begin
- if RESET = '1' then -- Wenn RESET aktiv ist
- count <= INITIAL_VALUE; -- setze den Zaehler auf den Anfangswert
- elsif rising_edge(CLK) then -- Bei steigender Taktflanke
- if count = 0 then -- Wenn der Zaehlerstand 0 ist
- count <= 127; -- setze den Zaehlerstand auf den maximalen Wert (127)
- else
- count <= count - 1; -- Verringere den Zaehlerstand um 1
- end if;
- end if;
- end process;
-
- COUNT_OUT <= count; -- Weise den aktuellen Zaehlerstand dem Ausgangssignal zu
- end Behavioral;
|