-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkey_module.v
97 lines (86 loc) · 2.48 KB
/
key_module.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*=====================================================
*****************************************************
*****************************************************
功能说明:
对输入按键消抖进行统一处理
*****************************************************
*****************************************************
端口信号说明:
in clk :50M时钟输入
in rst_n :复位信号输入
in mode_key :模式按键输入
in move_key :移位按键输入
in add_key :数值加键输入
in switch_key :显示选择按键输入
out filter_mode_key :消抖模式按键输出
out filter_move_key :消抖移位按键输出
out filter_add_key :消抖数值加键输入
out filter_switch_key :消抖显示选择按键输出
*****************************************************
========================================================*/
module key_module
#(
parameter WIPE_TIME = 1000_000
//消抖时间参数定义,系统时钟50M,对应的20ms参数
)
(
input clk ,
input rst_n ,
input mode_key ,
input move_key ,
input add_key ,
input switch_key ,
output filter_mode_key ,
output filter_move_key ,
output filter_add_key ,
output filter_switch_key
);
//filter_mode_key
wipe_key_shake
#(
.WIPE_TIME (WIPE_TIME ) //20ms/50Mhz
)
key_low_1
(
.clk (clk ),
.rst_n (rst_n ),
.key_in (mode_key ),
.key_out (filter_mode_key )
);
//filter_move_key
wipe_key_shake
#(
.WIPE_TIME (WIPE_TIME ) //20ms/50Mhz
)
key_low_2
(
.clk (clk ),
.rst_n (rst_n ),
.key_in (move_key ),
.key_out (filter_move_key )
);
//filter_add_key
wipe_key_shake
#(
.WIPE_TIME (WIPE_TIME ) //20ms/50Mhz
)
key_low_3
(
.clk (clk ),
.rst_n (rst_n ),
.key_in (add_key ),
.key_out (filter_add_key )
);
//filter_mode_key
wipe_key_shake
#(
.WIPE_TIME (WIPE_TIME ) //20ms/50Mhz
)
key_low_4
(
.clk (clk ),
.rst_n (rst_n ),
.key_in (switch_key ),
.key_out (filter_switch_key)
);
endmodule