2 use ieee.std_logic_1164.all;
\r
3 use work.math_pkg.all;
\r
5 package debounce_pkg is
\r
6 component debounce_fsm is
\r
9 RESET_VALUE : std_logic;
\r
10 CNT_MAX : integer range 2 to integer'high
\r
14 sys_clk : in std_logic;
\r
15 sys_res_n : in std_logic;
\r
17 cnt : in std_logic_vector(log2c(CNT_MAX) - 1 downto 0);
\r
18 clear_cnt : out std_logic;
\r
21 end component debounce_fsm;
\r
23 component counter is
\r
26 CNT_MAX : integer range 2 to integer'high
\r
30 sys_clk : in std_logic;
\r
31 sys_res_n : in std_logic;
\r
32 clear_cnt : in std_logic;
\r
33 cnt : out std_logic_vector(log2c(CNT_MAX) - 1 downto 0)
\r
35 end component counter;
\r
37 component debounce is
\r
41 TIMEOUT : time range 100 us to 100 ms := 1 ms;
\r
42 RESET_VALUE : std_logic := '0';
\r
43 SYNC_STAGES : integer range 2 to integer'high
\r
47 sys_clk : in std_logic;
\r
48 sys_res_n : in std_logic;
\r
50 data_in : in std_logic;
\r
51 data_out : out std_logic
\r
53 end component debounce;
\r
54 end package debounce_pkg;
\r