|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- /*--------------------------------------------------------------------------------------
- -- Filename ﹕ show_ctrl.v
- -- Author ﹕tony-ning
- -- Description ﹕按键消抖
- -- Called by ﹕Top module
- -- Revision History ﹕15-10-16
- -- Revision 1.0
- -- Company ﹕
- -- Copyright(c) All right reserved
- ---------------------------------------------------------------------------------------*/
! E Z5 x \$ L) T( u% |% T7 S; t- module debounce_module
- (
- CLK, //采集时钟,40Hz
- RSTn, //系统复位信号
- BUTTON_IN, //按键输入信号
- BUTTON_OUT //消抖后的输出信号
- );
- input CLK;
- input RSTn;
- input BUTTON_IN;
- output BUTTON_OUT;
- % @3 X+ C9 z t( h
- reg key_reg1,key_reg2,key_out;
- reg [24:0]count2;
-
- always @( posedge CLK)//CLK 50M
- begin
- count2<=count2+1;
- if(count2==250000)
- begin
- key_reg1<=BUTTON_IN;
- count2<=0;
- end
- key_reg2<=key_reg1;
- key_out<=key_reg2&(!key_reg1);
- end
; W& f. S! u4 U* I6 Q4 Y) a8 d- assign BUTTON_OUT = key_out;
-
- endmodule1 O5 E" I* g+ \* ?6 E
, b/ J& Q+ \: x r5 Y5 [+ C6 X9 U$ e! P$ |
$ Q3 t0 p4 d& {: x
) h0 h( d8 ]1 d* o6 J# u* U. Z0 n# C# n' f' \" V! m0 n
此模块存在一个时钟匹配问题,下个接口按键动作只需要一个时钟脉冲,可此处产生的是10ms的脉冲
. ?2 n' Y N+ d9 P1 X
. _, R) Y; N7 |
/ G8 l: P m3 W+ l- I
, I; D$ k; Q; i
, n. G! @# G$ n: t9 ^& j5 L5 N* l" E7 ^8 T. g
|
|