|
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
- ---------------------------------------------------------------------------------------*/
- & W* R" T9 h; }9 s( k! p' A+ T
- module debounce_module
- (
- CLK, //采集时钟,40Hz
- RSTn, //系统复位信号
- BUTTON_IN, //按键输入信号
- BUTTON_OUT //消抖后的输出信号
- );
- input CLK;
- input RSTn;
- input BUTTON_IN;
- output BUTTON_OUT;
7 T- |2 z; c9 q, I, v; h9 t! O0 A- 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
1 D- [" V& g6 S1 c! @, ?+ j- assign BUTTON_OUT = key_out;
-
- endmodule
# u8 a& ^+ t5 q4 U$ f) P ) @- j* \1 ?( D5 ]8 N6 b
4 m. P& `$ H1 D9 x3 e2 T
$ g$ S( |4 N- C# N2 Z0 K1 R# Z
& V4 G# q3 }' X: i% A0 d# p' P# K9 i. o) E
此模块存在一个时钟匹配问题,下个接口按键动作只需要一个时钟脉冲,可此处产生的是10ms的脉冲
& w4 B; i3 w( Y7 k9 z% X
5 @8 }! H# H/ `" ?. \( \( J p2 b- ?( ]: n- }- {( a2 ]9 u
. q" d8 w6 G0 G9 Y \) L
: f# g' t. g8 v& }$ O. x) N
5 v: i2 e3 ~4 N |
|