Étape 3: Clock Divider Module
Notre module d’horloge est presque la même que celle qui nous sont fourni en laboratoire, à l’exception d’une fréquence différente. Le but de l’horloge est de fournir un signal oscillant qui peut utiliser un circuit. Notre intention était d’utiliser le module de diviseur d’horloge comme une horloge qui a compté secondes réelles. Afin de ralentir le signal oscillant qui sort de l’horloge, nous avons dû changer la fréquence de l’horloge pour un signal de sortie chaque seconde.
entity clk_div2 is<br> Port ( clk : in std_logic; sclk : out std_logic); end clk_div2;
architecture my_clk_div of clk_div2 is constant max_count : integer := (50000000); signal tmp_clk : std_logic := '0'; begin my_div: process (clk,tmp_clk) variable div_cnt : integer := 0; begin if (rising_edge(clk)) then if (div_cnt = MAX_COUNT) then tmp_clk <= not tmp_clk; div_cnt := 0; else div_cnt := div_cnt + 1; end if; end if; sclk <= tmp_clk; end process my_div; end my_clk_div;