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

📄 debounce.vhd

📁 时钟分配和分路传输功能的VHDL语言程序
💻 VHD
字号:
--------------------------------------------------------------------------------------------------
--
-- Title       : Debounce
-- Design      : RC_CKJH
-- Author      : 杨云龙
-- Company     : 北京百科融创科技有限公司
--
---------------------------------------------------------------------------------------------------
--
-- File        : Debounce.vhd
-- Generated   : Tue Nov 21 10:28:46 2003
-- From        : interface description file
-- By          : Itf2Vhdl ver. 1.20
--
---------------------------------------------------------------------------------------------------
--
-- Description : 
--
---------------------------------------------------------------------------------------------------

--{{ Section below this comment is automatically maintained
--   and may be overwritten
--{entity {lcd_port} architecture {a}}
--*************************************************************
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

--**************************************************************
ENTITY Debounce is
  PORT(
     clr : in std_logic;
     CLK  : IN    STD_LOGIC;        -- CLOCK
     DIN  : IN    STD_LOGIC;        -- Input Signal
     DOUT   : OUT   STD_LOGIC         -- Debounce O/P
    );
END Debounce;

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

Free_Counter : Block    -- 计数器  & 产生扫描信号               
   Signal   Q_debou  : STD_LOGIC_VECTOR(9 DOWNTO 0);
  Signal  d_debou : STD_LOGIC;
Begin
  
  PROCESS (CLK,CLR)          -- 计数器计数       
  Begin
    if clr ='1' then
      Q_debou <= (others=> '0');
      d_debou <='0';
    elsif CLK 'Event AND CLK='1' then
      if Q_debou ="1111111111" then
        Q_debou <= (others => '0');
      else
        Q_debou <= Q_debou +1;
      end if;
      d_debou <= Q_debou(9);              
      SAMPLE <= Q_debou(9) AND (NOT d_debou);    --产生125HZ脉冲?    
    END IF;
  END PROCESS;
  
  --SAMPLE <= Q(1) AND NOT d_debou;  
END Block Free_Counter;                      


Debunce : Block              -- Debounce
  SIGNAL Dc, Dd, S, R : STD_LOGIC;  
Begin
  Process (CLK)
  Begin
    IF CLK 'EVENT AND CLK='1' THEN
      IF SAMPLE = '1' THEN
        Dd <= Dc; Dc <= DIN;    -- Two Stage Delay
        S <= Dc AND Dd;        -- Generate S、R  
        R <= (NOT Dc) AND (NOT Dd);
      END IF;    
    DLY <= R NOR NDLY;      -- Debounce O/P
  NDLY <=S NOR DLY;  
  DOUT <= DLY;
  END IF;
  End Process;  

End Block Debunce;
END a;

⌨️ 快捷键说明

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