|
用示波器看一下按键时FPGA输入的信号,可以看到明显的抖动。按键一般是上拉到1的,在未按下去的时候是1,而按下去的瞬间,大概几十毫秒,可以看到明显的抖动,最后稳定到0。因此,这样的信号时不能直接用于内部逻辑的。 fpga按键去抖有两种。一种是复位信号的去抖,另外一种是键盘的去抖动,两者是不一样的。这里我给出一个复位信号的去抖的例子: input resetn_in; reg resetn_internal; reg r1,r2; reg count[19:0]; always @(posedge clk) begin r1<=r2;r2<= resetn_in; end always @(posedge clk) begin if(r1) count<=0; end else if(count<20’hFFFFF)count<= count+1; always @(posedge clk) begin if(count<20’hFFFFF) resetn_internal<=1’b1 else resetn_internal<=1’b0; end 另外一种是键盘的去抖动,目的是采集键盘上所有键的最终值
|
|