按键消抖法1:debounce2(格式不同,实质一样)

本文介绍了一个用Verilog实现按键消抖的Debounce2模块,通过状态机检测按键脉冲,有效减少由于机械抖动引起的误触发问题。核心代码展示了如何利用异或操作检测按键边缘状态。
摘要由CSDN通过智能技术生成

module Debounce #

(
parameter KEY_WIDTH = 1,//按键个数
parameter CNT_NUM = 19'd240000  //20ms的计数
)
(
input clk, //system clock
input rst_n, //system reset
input [KEY_WIDTH-1:0] key, //button input,按键输入
output reg [KEY_WIDTH-1:0] key_edge, //按键消抖
output wire[KEY_WIDTH-1:0] key_pulse, //Debounce pulse output ,按键脉冲输出
output reg [KEY_WIDTH-1:0] key_state, //Debounce state output,按键状态输出
output [10:0] empty
);

assign empty = 11'h7ff;

reg [KEY_WIDTH-1:0] key_r,key_r_pre;

always @(posedge clk or negedge rst_n)
if (!rst_n) begin
key_r <= {KEY_WIDTH{1'b1}};
key_r_pre<= {KEY_WIDTH{1'b1}};

end 

else begin

key_r <= key;
key_r_pre <= key_r;
end

//Detect the edge of key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值