查看: 733|回复: 0
打印 上一主题 下一主题

verilog键盘防抖程序

[复制链接]
跳转到指定楼层
沙发
发表于 2016-4-15 19:53:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
module key2(key,led,clk,rst);

input key,clk,rst;
output led;


reg[17:0] cout;
always@(posedge clk)
begin
        if(!rst)
                cout<=12'b0;
        else cout<=cout+1;
end

        wire clk_5ms=&cout;
        
reg key_r;
always@(posedge clk)
begin
        if(!rst)
         key_r<=1'b1;
        else if (clk_5ms)
         key_r<=key;         
end

reg key_r_sw;
always@(posedge clk)
key_r_sw<=key_r;

wire ledctrl=key_r_sw&(!key_r);

reg led;
always@(posedge clk or negedge rst )
begin
        if(!rst)
                led<=1'b0;
        else if (ledctrl)
            led<=~led;
        
end

endmodule


本来看艾米的程序,觉得自己看懂了,但是自己编完上面的程序之后,又迷茫了,觉得这样是错的,但是下载到板子上,居然能防抖。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表