head	1.2;
access;
symbols
	bg2_23:1.2
	bg2_22:1.2
	bg2_21:1.2
	bg2_20:1.2
	bg2_16:1.2
	bg2_15:1.2
	bg2_12:1.2
	bg2_07:1.2
	isorc2008_submission:1.1
	handbook_alpha_edition:1.1
	jtres2007_submission:1.1;
locks; strict;
comment	@# @;


1.2
date	2008.02.25.13.08.56;	author martin;	state Exp;
branches;
next	1.1;
commitid	56ee47c2bde64567;

1.1
date	2007.05.21.19.55.36;	author martin;	state Exp;
branches;
next	;
commitid	2f44651f9364567;


desc
@@


1.2
log
@JOP goes GPL
@
text
@--
--  This file is part of JOP, the Java Optimized Processor
--
--  Copyright (C) 2007, Peter Hilber
--
--  This program is free software: you can redistribute it and/or modify
--  it under the terms of the GNU General Public License as published by
--  the Free Software Foundation, either version 3 of the License, or
--  (at your option) any later version.
--
--  This program is distributed in the hope that it will be useful,
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--  GNU General Public License for more details.
--
--  You should have received a copy of the GNU General Public License
--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
--


library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity debounce is
	generic (clk_freq : integer);
	
	port (
		clk: in std_logic;
		reset: in std_logic;
		
		input: in std_logic;
		output: buffer std_logic);
end debounce;
		
architecture rtl of debounce is
	constant debounce_count: integer := clk_freq / 20;

	signal counter: unsigned(26 downto 0);
begin
	synch: process(clk, reset)
	begin
		if reset = '1' then
			counter <= (others => '0');
			output <= '0';		
		elsif rising_edge(clk) then
			counter <= counter + 1;
					
			if input = output then
				counter <= (others => '0');
			end if;
			
			if counter = debounce_count then	-- XXX
				output <= not output;
				counter <= (others => '0');
			end if;
		end if;		
	end process;
end rtl;@


1.1
log
@LEGO roboter first release
@
text
@d1 20
@

