ルーレット用の分周をつくります。
大雑把に1Hzをクロックするを利用しました。
クロックがあまり早いと、目押しが難しいので、(私は全然ダメ)、16Hz=62.5ms位にしておきます。リーチとビンゴ用に、2Hz 8Hzも用意しました。
-- Divider for Roullet
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity DIVIDER is
port(
CLK : in std_logic;
DIV_CLK_2HZ : out std_logic;
DIV_CLK_8HZ : out std_logic;
DIV_CLK_16HZ : out std_logic
);
end DIVIDER;
architecture RTL of DIVIDER is
constant OSC_BIT : integer := 25; --Osc 33MHz: 25bit
signal DIV_COUNTER : std_logic_vector(OSC_BIT-1 downto 0);
begin
process(CLK)
begin
if (CLK'event and CLK = '0') then
DIV_COUNTER <= DIV_COUNTER + 1;
end if;
end process;
DIV_CLK_2HZ <= not DIV_COUNTER(OSC_BIT-2);
DIV_CLK_8HZ <= not DIV_COUNTER(OSC_BIT-4);
DIV_CLK_16HZ <= not DIV_COUNTER(OSC_BIT-5);
end RTL;