123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- ----------------------------------------------------------------------------------
- -- 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;
|