一. 硬件介绍
FPGA开发板
一个按键
一个led灯
二. 功能介绍
可以满足三种不同要求的消抖方式
通过led灯测试三种消抖方式
三. 消抖方式介绍
mode 0 : 按键按下消抖后,算一次。
mode 1 : 按键按下消抖后,抬起,算一次。
mode 2 : 按键按下消抖后,每隔一段时间,算一次。
通过下面这个mode参数可以在例化的时候,选择对应的模式。
//模式 //0 按下生效,抬起,算一次 //1 按下抬起,算一次 //2 按下后,一段时间算一次 parameter mode = 2;
四. 测试top文件介绍
mode 0 : 按下的时候,led状态取反 mode 1: 按下,抬起的时候,led状态取反 mode 2: 按下,每隔一段时间,led状态取反 module top( input clk, input rst_n, input key, output led ); wire okey; reg led_reg; assign led = led_reg; always@(posedge clk or negedge rst_n) begin if(rst_n == 1'b0) led_reg <= 1'b0; else if(okey == 1'b1) led_reg <= ~led_reg; else led_reg <= led_reg; end btn_dis_shake #( .mode (1) ) btn_dis_shake_HP( .clk (clk), .rst_n (rst_n), .ikey (key), .okey (okey) ); endmodule
公众号:FPGA之旅