---------------------------------------------------------------------------------- -- Company: INSA-Toulouse -- Engineer: Paul Faure -- -- Create Date: 08.05.2021 21:00:25 -- Module Name: Clock_Divider - Behavioral -- Project Name: Processeur sécurisé -- Target Devices: Basys 3 ARTIX7 -- Tool Versions: Vivado 2016.4 -- Description: Diviseur de clock (rapport de 1000) -- -- Dependencies: None ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Clock_Divider is Port ( CLK_IN : in STD_LOGIC; CLK_OUT : out STD_LOGIC); end Clock_Divider; architecture Behavioral of Clock_Divider is -- Compteur pour le diviseur signal N : Integer := 0; -- Signal enregistrant l'ancienne valeur de CLK signal CLK : STD_LOGIC := '1'; begin process begin -- Synchronisation wait until CLK_IN'event and CLK_IN = '1'; -- Incrementation du compteur N <= N + 1; if (N = 1000) then -- Remise a 0 et changement d'état de la CLK N <= 0; if (CLK = '1') then CLK <= '0'; else CLK <= '1'; end if; end if; end process; -- Sortie du signal (assynchrone -> imédiat) CLK_OUT <= CLK; end Behavioral;