OpenCores
URL https://opencores.org/ocsvn/graphicsaccelerator/graphicsaccelerator/trunk

Subversion Repositories graphicsaccelerator

[/] [graphicsaccelerator/] [trunk/] [Debouncer.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 OmarMokhta
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.numeric_std.all;
4
use IEEE.std_logic_unsigned.all;
5
entity Debouncer is
6
    Port ( Clk : in  STD_LOGIC;
7
           Button : in  STD_LOGIC;
8
                          Dout : out  STD_LOGIC);
9
end Debouncer;
10
architecture Behavioral of Debouncer is
11
signal Counter,nCounter : STD_LOGIC_VECTOR (23 downto 0) := x"000000";
12
signal ButtonHistory,nButtonHistory : STD_LOGIC_VECTOR (1 downto 0) := "00";
13
signal nextHistory : STD_LOGIC := '0';
14
begin
15
nCounter <= x"FFFFFF" when Counter=x"FFFFFF" and Button='1' else
16
                                x"000000" when Counter=x"000000" and Button='0' else
17
                                Counter+1 when Button='1' else Counter-1;
18
nextHistory <= '0' when Counter=x"000000" else '1';
19
nButtonHistory <= nextHistory & ButtonHistory(1);
20
Dout <= '1' when ButtonHistory="01" else '0';
21
process (Clk) begin
22
        if (rising_edge(Clk)) then
23
                Counter <= nCounter;
24
                ButtonHistory <= nButtonHistory;
25
        end if;
26
end process;
27
end Behavioral;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.