2 use ieee.std_logic_1164.all;
\r
3 use work.sync_pkg.all;
\r
4 use work.debounce_pkg.all;
\r
5 use work.math_pkg.all;
\r
7 architecture struct of debounce is
\r
8 constant CLK_PERIOD : time := 1E9 / CLK_FREQ * 1 ns;
\r
9 constant CNT_MAX : integer := TIMEOUT / CLK_PERIOD;
\r
10 signal data_sync : std_logic;
\r
11 signal clear_cnt : std_logic;
\r
12 signal cnt : std_logic_vector(log2c(CNT_MAX) - 1 downto 0);
\r
17 SYNC_STAGES => SYNC_STAGES,
\r
18 RESET_VALUE => RESET_VALUE
\r
23 sys_res_n => sys_res_n,
\r
25 data_out => data_sync
\r
28 fsm_inst : debounce_fsm
\r
31 RESET_VALUE => RESET_VALUE,
\r
37 sys_res_n => sys_res_n,
\r
40 clear_cnt => clear_cnt,
\r
44 counter_inst : counter
\r
52 sys_res_n => sys_res_n,
\r
53 clear_cnt => clear_cnt,
\r
56 end architecture struct;
\r