ZYNQ microphase 7020 开发板学习(2.键控灯)按键消抖
代码基于microphase学习改进:
module key_led(
input wire clk,
input wire rst_n,
input wire [2:0] key,
output wire [2:0] led
);
reg [5:0] key_dd;
always @(posedge clk or negedge rst_n)begin
if(~rst_n)begin
key_dd <='d0;
end
else begin
key_dd <= {key_dd[2:0],key};
end
end
assign led = key_dd[5:3];
endmodule
机械按键本身在处理机械按键输入时。机械按键在被按下或松开时,通常不会立即达到稳定状态,而是会有一个短暂的抖动期。这些抖动会导致在按键的状态变化过程中产生多次高低电平的切换,从而造成误判。以上是微相提供的学习资料。
对于该示例,由于使用按键操作控制LED灯的亮灭,对于高频时钟,LED的亮灭体现对人眼而言识别并不需要消除这种抖动。想简单的实现键控灯只用将按键接入LED灯即可,所谓的按键抖动最终在LED亮灭上的体现在人眼上是分辨不出来的。因此以下代码也可满足实验需求:
module key_led(
input wire clk,
input wire rst_n,
input wire [2:0] key,
output reg [2:0] led
);
always @(posedge clk or negedge rst_n) begin
if