⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debunce.vhd

📁 有用的VHDL源代码
💻 VHD
字号:
--*************************************************************
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

--**************************************************************
ENTITY Debunce is
	PORT(
		 CP			: IN    STD_LOGIC;				-- CLOCK
		 Key	    : IN    STD_LOGIC;				-- Input Signal
		 DLY_OUT    : OUT   STD_LOGIC; 				-- Debounce O/P
		 DIF_OUT	: OUT   STD_LOGIC				-- Differential O/P
		);
END Debunce;

--**************************************************************
ARCHITECTURE a OF Debunce IS
	SIGNAL SAMPLE, DLY, NDLY, DIFF	: STD_LOGIC;	-- Binary 
BEGIN

Free_Counter : Block		-- 计数器  & 产生扫描信号             	
 	Signal 	Q	: STD_LOGIC_VECTOR(14 DOWNTO 0);
	Signal  D0 : STD_LOGIC;
Begin
	
	PROCESS (CP)					-- 计数器计数       
	Begin
		IF CP'Event AND CP='1' then
			D0 <= Q(14);
			Q <= Q+1;			
		END IF;
	END PROCESS;
	
	SAMPLE <= Q(14) AND NOT D0;		--产生125HZ脉冲?    
	--SAMPLE <= Q(1) AND NOT D0;	
END Block Free_Counter;											


Debunce : Block							-- Debounce
	SIGNAL D0, D1, S, R : STD_LOGIC;  
Begin
	Process (CP)
	Begin
		IF CP'EVENT AND CP='1' THEN
			IF SAMPLE = '1' THEN
				D1 <= D0; D0 <= KEY;		-- Two Stage Delay
				S <= D0 AND D1;				-- Generate S、R	
				R <= NOT D0 AND NOT D1;
			END IF;		
		END IF;
	End Process;	
	DLY <= R NOR NDLY;			-- Debounce O/P
	NDLY <=S NOR DLY;	
	DLY_OUT <= DLY;

End Block Debunce;


Differential : Block				--	Differential
	Signal D1,D0 : STD_LOGIC;
BEGIN
	Process (CP)
	Begin
		IF CP'EVENT AND CP='1' THEN
			D1 <= D0; D0 <= DLY;	-- Two State Delay
		END IF;
	End Process;	
	DIFF <= D0 AND NOT D1;			-- Differential
END Block Differential;

DIF_OUT <= DIFF;					-- Differential O/P

END a;







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -