library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; --use ieee.std_logic_unsigned.all; entity Taktgenerator is generic ( gi_Period : integer := 200 -- Frequenz um Faktor 400 herunterteilen auf 250 kHz ); Port ( pi1c_CLK: in std_logic ; pi1r_RST: in std_logic ; po1_SCLK : out std_logic -- CLK heruntergeteilt auf 250 kHz ); end entity Taktgenerator ; architecture VERHALTEN of Taktgenerator is signal si_Cnt : integer range 0 to gi_Period + 1 ; signal s1_SCLK_low : std_logic := '0'; begin process (pi1c_CLK,pi1r_RST) begin if (pi1r_RST='0') then s1_SCLK_low<= '0' ; si_Cnt <= gi_Period ; elsif rising_edge (pi1c_CLK) then si_Cnt <= si_Cnt - 1 ; --herunterzählen if (si_Cnt = 1) then s1_SCLK_low <= not s1_SCLK_low ; -- SCLK toggelt, wenn 200 steigende CLK-Flanken si_Cnt <= gi_period ; -- => Frequenz von SCLK um Faktor 100 geringer end if; end if; end process; po1_SCLK <= s1_SCLK_low; -- SCLK an Ausgangsport übergeben end VERHALTEN;