📄 key.v
字号:
//按键去抖模块:key.v module key(clk,keyin,keyout,keyoutdir,en); input clk; input [3:0]keyin; output [3:0]keyout; output keyoutdir,en; reg en; reg [3:0]keyout; reg [16:0]scan; reg [3:0]key; reg keyen; integer i=0; parameter FLKxM=10; //时钟频率MHz parameter LEN=10; //去抖时间10ms assign keyoutdir=1'b0; always@(posedge clk) if(keyin!=4'hf) if(scan==FLKxM*LEN)//在有键按下10ms以后准备读取键值 begin keyen<=1'b0; scan<=scan+1'b0;end else begin keyen<=1'b0; scan<=scan+1'b1;end else begin if(scan!=0) scan<=scan-1'b1; else scan<=scan; keyen<=1'b0; end always@(posedge clk) if(keyen) //去除抖动后开始读数 keyout<=~keyin; else keyout<=4'b0; always@(posedge clk) if(keyin!=4'hf) en=1'b0; else en=1'b1; endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -