方法一:clk是已经分频好的时钟。
module Light( in_key,out_key,clk,clr);
input in_key,clk,clr;
output out_key;
reg delay1,delay2,delay3;
always@( posedge clk)//CLK 50M
begin
if(clr)
begin
delay1 <= 0;
delay2 <= 0;
delay3 <= 0;
end
else
begin
delay1 <= in_key;
delay2 <= delay1;
delay3 <= delay2;
end
end
assign out_key = delay1&delay2&delay3;
endmodule
方法二:
http://blog.csdn.net/ywhfdl/article/details/7552289 这个做法是自己做的时钟,不过这个代码风格比较差,不建议这样写。里面没有加复位,整个混乱。
方法三:
module key_debounce(
input key,clk,clr,
output key_changed2
);
wire key_changed1;
reg [20:0] count;
//reg [2:0] count; //for simulation
reg sample1, sample_locked1, sample2, sample_locked2;
always @(posedge clk or posedge clr)
if(clr) sample1 &
本文探讨了在FPGA中实现按钮防抖动设计的两种方法,包括使用已分频的时钟和自定义时钟。文章提到了采用已分频时钟的方法并引用了一个实例,同时指出该实例的代码风格不佳且缺少复位功能。
最低0.47元/天 解锁文章
497

被折叠的 条评论
为什么被折叠?



