debouncing sys_res_n
[hwmod.git] / src / debouncing / debounce_pkg.vhd
1 library ieee;\r
2 use ieee.std_logic_1164.all;\r
3 use work.math_pkg.all;\r
4 \r
5 package debounce_pkg is\r
6   component debounce_fsm is\r
7     generic\r
8     (\r
9       RESET_VALUE : std_logic;\r
10       CNT_MAX : integer range 2 to integer'high\r
11     );\r
12     port\r
13     (\r
14       sys_clk : in std_logic;\r
15       sys_res_n : in std_logic;\r
16       i : in std_logic;\r
17       cnt : in std_logic_vector(log2c(CNT_MAX) - 1 downto 0);\r
18       clear_cnt : out std_logic;\r
19       o : out std_logic\r
20     );\r
21   end component debounce_fsm;\r
22 \r
23   component counter is\r
24     generic\r
25     (\r
26       CNT_MAX : integer range 2 to integer'high\r
27     );\r
28     port\r
29     (\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
34     );\r
35   end component counter;\r
36 \r
37   component debounce is\r
38     generic\r
39     (\r
40       CLK_FREQ    : integer;\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
44     );\r
45     port\r
46     (\r
47       sys_clk : in std_logic;\r
48       sys_res_n : in std_logic;\r
49 \r
50       data_in : in std_logic;\r
51       data_out : out std_logic\r
52     );\r
53   end component debounce;\r
54 end package debounce_pkg;\r