打印

按键的verilog问题

[复制链接]
2141|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hjl240|  楼主 | 2013-4-30 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
module key(clk,key_in,key_out);
input clk;
input[3:0]key_in;//按键输入
output[3:0]key_out;
reg[3:0]dout1,dout2,dout3;
reg[3:0]a;
reg i;
//assign key_out=a;
always@(posedge clk)//按键消抖
begin        
         dout1<=key_in;
         dout2<=dout1;
         dout3<=dout2;
         a<=(dout1|dout2|dout3);
end
always@(posedge clk)
begin        
         if(a[0]==0) i=i+1;//按键按下,计一次数
end


endmodule
怎么改,在每按一次键时,i只加1?

相关帖子

沙发
GoldSunMonkey| | 2013-5-1 16:05 | 只看该作者
设置一个信号,让该信号检测到你按键以后置高,然后过一个周期后让其变低。
同时让时钟检测你设置的该信号,自然可以加1

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

56

帖子

1

粉丝