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;