用VHDL编写简单的按键消抖程序

一般按键延时在20ms左右,根据时钟频率决定你的计数范围。程序非常简单,但经常用到,对于FPGA初学者要好好学习这部分。

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity reseter is
port(clk,reset_in:in std_logic;           --按键按下时为0
     reset_out:out std_logic:='0');
      end reseter;

architecture behav of reseter is

begin

PROCESS(clk,reset_in) 
  VARIABLE COUNT1 :INTEGER RANGE 0 TO 100000; 
BEGIN 
IF reset_in='0' THEN 
   IF RISING_EDGE(clk) THEN
    IF COUNT1<10000 THEN COUNT1:=COUNT1+1; 
    ELSE COUNT1:=COUNT1; END IF; 
    IF COUNT1<=9999 THEN reset_out<='1'; 
    ELSE reset_out<='0'; END IF; 
  END IF; 
ELSE COUNT1:=0;
     reset_out<='1';
END IF; 
END PROCESS ;
end behav;```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一个计数器通常是由一组触发器构成,该组触发器按照预先给定的顺序改变其状态,如果所有触发器的状态改变是在同一时钟脉冲...
    锦穗阅读 14,460评论 0 6
  • 姓名:徐娇 学号:17011210547 转自 http://mp.weixin.qq.com/s/WNigJh...
    徐Jiao阅读 2,385评论 0 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,073评论 25 709
  • 南方在经历了一个夏天的持续高温后,随着副高南撤,又进入了阴雨绵绵天。让我在夏日蛰伏后,也难以出门释放身心。于是乎,...
    惠在远方阅读 898评论 0 1
  • 曾经我们认为 遇到我们喜欢的人 就应该义无反顾的去付出 去爱 去包容和原谅 但往往事与愿违 任何一种纵容换来的不是...
    Indy阅读 2,402评论 1 2