按键去抖FPGA设计改良版
4页1、按键消抖sw_debounce 什么是debounce,为什么要debounce? 當按下按鈕時,表面上只按了一下。但是訊號的傳遞並不是很單純的由1直接跳到0 具体原理:通常,按键抖动会产生10-20MS的毛刺,因此要做的实际上就是在20MS中采样一次,当检测到按键突变的时候,就认定按下,其他状态忽略。 采用50MHz晶振,时钟周期是20ns,消除按键消抖的关键在于,在检测到按键电平发生跳变后的20ms内,不对按键电平进行判定。这就需要引入脉冲边沿检测法。脉冲边沿检测法,个人觉得, 在FPGA里的应用实在是太多了,几乎所有的程序都要用到,作用无非是防止竞争冒险,将一个信号延迟一个时钟周期,原来的信号取反,2个信号与一下,从而产生一个宽度为一个时钟周期(20ns)的脉冲,然后将这个脉冲作为控制信号去控制别的进程。 下面是之前开发板的一个按键程序:module sw_debounce( clk, rst_n, sw1_n, sw2_n, sw3_n, /output led_d1, / led 1-off,0-on led_d2, led_d3 );input clk;input rst_
2、n;input sw1_n,sw2_n,sw3_n; /Active low 低电平有效output led_d1;output led_d2;output led_d3;/脉冲边沿检测法(当按键电平发生突变时产生一个时钟周期的高电平,用这个高电平控制计数器的工作)reg 2:0 key_rst;always(posedge clk or negedge rst_n) if (!rst_n) key_rst=3b111; else key_rst=sw3_n,sw2_n,sw1_n;reg 2:0 key_rst_r;always(posedge clk or negedge rst_n) if (!rst_n) key_rst_r=3b111; else key_rst_r=key_rst;wire 2:0 key_an= key_rst_r2:0&(key_rst2:0);/ -reg 19:0 cnt;/ 时钟频率50MHz,周期20ns,所以20ms对应的需要10的6次方个周期,需要一个20位计数器计数。always (posedge clk or negedge rst_n)
3、 if (!rst_n) cnt = 20d0; else if (key_an) /利用脉冲边沿检测法控制计数器计数 cnt=20d0; else cnt = cnt + 1b1;reg 2:0 low_sw;always (posedge clk or negedge rst_n) if (!rst_n) low_sw = 3b111; else if (cnt = 20hfffff) /每隔20MS检测一次按键 low_sw = sw3_n,sw2_n,sw1_n; / -/ - reg 2:0 low_sw_r; /将low_sw信号锁存一个时钟周期,延时不是真的“锁存”always ( posedge clk or negedge rst_n ) if (!rst_n) low_sw_r = 3b111; else low_sw_r = low_sw; wire 2:0 led_ctrl = low_sw_r2:0 & ( low_sw2:0); /当检测到按键有下降沿变化时,代表该按键被按下,按键有效reg d1;reg d2;reg d3;always (posedge clk or negedge rst_n) if (!rst_n) begin d1 = 1b0; d2 = 1b0; d3 = 1b0; end else begin if ( led_ctrl0 ) d1 = d1; if ( led_ctrl1 ) d2 = d2; if ( led_ctrl2 ) d3 = d3; /当任意一个按键被按下的时候,对应的LED灯会亮灭切换 endassign led_d1 = d1 ? 1b0 : 1b1;assign led_d2 = d2 ? 1b0 : 1b1;assign led_d3 = d3 ? 1b0 : 1b1;endmodule
《按键去抖FPGA设计改良版》由会员re****.1分享,可在线阅读,更多相关《按键去抖FPGA设计改良版》请在金锄头文库上搜索。
采购经理的工作总结模板(10篇).doc
学生成长档案 (1)
2021学校运动会开幕式领导讲话稿年篇
永清人民公园绿化工程监理细则
湘西遮阳材料项目招商引资方案(模板范文)
生产车间基础及钢结构工程质量评估报告
九年级数学上册第二章一元二次方程2.1认识一元二次方程第2课时一元二次方程根的估算同步练习版北师大版0830316
普通员工辞职信100字
玻璃幕墙合同
PowerPoint幻灯片教学大纲修改
高一期末模拟卷一
区年度信息公开工作汇报
河北年产xxx台5G成套设备项目立项报告
初三化学中考总复习知识点汇总
食品买卖合同范文精选.doc
水泥混凝土复习资料
证券从业《保荐代表人》考核题库含参考答案2
品味文学的滋味作文【初中初一1300字】
施工机具检查项目.doc
房屋回购协议分享
2022-11-01 6页
2023-02-03 96页
2023-03-29 4页
2023-06-05 6页
2023-08-20 40页
2023-08-07 8页
2023-10-05 4页
2022-12-24 27页
2022-10-22 4页
2023-02-12 11页