debouncing sys_res_n
[hwmod.git] / src / debouncing / event_counter_beh.vhd
1 library ieee;\r
2 use ieee.std_logic_1164.all;\r
3 use ieee.numeric_std.all;\r
4 \r
5 architecture beh of event_counter is\r
6   signal sense_old, sense_old_next : std_logic;\r
7   signal cnt_int, cnt_next : std_logic_vector(CNT_WIDTH - 1 downto 0);\r
8 begin\r
9   cnt <= cnt_int;\r
10 \r
11   process(sys_clk, sys_res_n)\r
12   begin\r
13     if sys_res_n = '0' then\r
14       cnt_int <= (others => '0');\r
15       sense_old <= RESET_VALUE;\r
16     elsif rising_edge(sys_clk) then\r
17       cnt_int <= cnt_next;\r
18       sense_old <= sense_old_next;\r
19     end if;\r
20   end process;\r
21   \r
22   process(cnt_int, sense, sense_old)\r
23   begin\r
24     sense_old_next <= sense;\r
25     cnt_next <= cnt_int;\r
26 \r
27     if sense_old /= sense and sense = '0' then\r
28       cnt_next <= std_logic_vector(unsigned(cnt_int) + 1);\r
29     end if;\r
30   end process;\r
31 end architecture beh;\r