实现方法如下:
//////////////////////////////////////////////////////////////////////////////////
//
// 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值变化了
//

本文介绍了使用Verilog实现按键消抖的一种方法,通过提供的Testbench代码和仿真图,详细阐述了该消抖处理的过程。
最低0.47元/天 解锁文章
624





