verilog一种按键消抖的处理方法

本文介绍了使用Verilog实现按键消抖的一种方法,通过提供的Testbench代码和仿真图,详细阐述了该消抖处理的过程。
摘要由CSDN通过智能技术生成

实现方法如下:

//
//
// Engineer: mankaichuang
// Create Date: 2020/11/20 13:37:09
// Module Name: key_debounce
// Description: 一种按键去抖动的方法
// 
//

`timescale 1ns / 1ps

module key_debounce(
    input           sys_clk,            //系统时钟
    input           sys_rst_n,          //复位
    input           key,                //输入按键
    
    output reg      keyvalue,           //按键值
    output reg      keyflag             //按键成功标志
);

reg[19:0]            cnt;                //计数器
reg                 key_reg;            //按键键值寄存器

always @(posedge sys_clk or negedge sys_rst_n) begin
    if(!sys_rst_n) begin                //复位的时候,按键值默认为1,计数器清零
        key_reg <= 1'b1;                
        cnt <= 20'd0;
    end
    else begin                          //进入正常工作状态
        if(key_reg != key) begin        //如果key值变化了
//            cnt <= 20'd100_0000;      //设置计数初始值,下个时钟周期开始计数(一般消抖延时 
                   
  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值