From 944910842767a26c9d2dac92f4acd094576579f1 Mon Sep 17 00:00:00 2001 From: galmes Date: Wed, 28 Apr 2004 18:32:40 +0000 Subject: clk1us : bloc qui génère une horloge à 1us. --- 2004/n/fpga/src/clk1us/clk1us.vhd | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 2004/n/fpga/src/clk1us/clk1us.vhd (limited to '2004/n/fpga/src/clk1us/clk1us.vhd') diff --git a/2004/n/fpga/src/clk1us/clk1us.vhd b/2004/n/fpga/src/clk1us/clk1us.vhd new file mode 100644 index 0000000..82f26c8 --- /dev/null +++ b/2004/n/fpga/src/clk1us/clk1us.vhd @@ -0,0 +1,48 @@ +-- clk1us.vhd +-- Eurobot 2004 : APB Team +-- Auteur : Fidèle GAFAN et Pierre-André Galmes +-- Module générateur d'horloge 1us-périodique +-- +-- On fera attention que cette horloge repose sur la fq d'horloge du FPGA. +-- Pour changer cette fréquence, aller voir nono_const : FREQ_CLK. + + +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.std_logic_arith.all; + +use work.nono_const.all; + +--ENTITY +entity clk1us is + port ( + RST : in std_logic; + CLK : in std_logic; --40MHz + CLK1USOUT : out std_logic + ); +end entity; + +--ARCHITECTURE +architecture RTL of clk1us is + -- nombres de cycles de clk necessaires pour 1us incrémente. + signal compt: T_OCTET; +begin + process(RST,CLK) + begin + if (RST = '1') then + CLK1USOUT <= '0'; + compt <= x"00"; + elsif (CLK'event and CLK = '1') then + compt <= compt + x"01"; + if (compt = x"00") then -- 30 + CLK1USOUT <= '1'; + else + CLK1USOUT <= '0'; + if (compt = (FREQ_CLK - x"01")) then + compt <= x"00"; -- 30 + end if; + end if; + end if; + end process; +end RTL; -- cgit v1.2.3