Processeur/Processeur.srcs/sources_1/new/Clock_Divider.vhd
2021-06-10 18:36:04 +02:00

51 rader
1,3 KiB
VHDL

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