按键扫描有问题,帮忙求解一下----很简短的小程序

[复制链接]
2801|2
 楼主| libaizhihun 发表于 2010-4-23 08:50 | 显示全部楼层 |阅读模式
最近在做FPGA毕业设计。
   我做了四个按键,每个按键触发,对应执行一段代码。
   为了防止按键抖动产生的异常,我采取了扫描的办法。即在每个clk上升沿获取按键值,赋予key0,且如果当前按键值key!=0,置keyclk为高电平,触发下一个always,实现程序转移。
   可是实验发现,我的扫描结果,即使按键key值发生了变化,寄存器key0也不会被赋值。这让我很不解。我没有仿真,用singletap看的。
    我都快崩溃了,这种问题也能出。
   
input clk;
input [3:0] key;
reg [3:0] key0;
reg keyclk;
always @ (posedge clk)
begin
key0<=key;        
if(key!=0) keyclk<=1;
else keyclk<=0;
end

always @ (posedge keyclk)
begin
case(key0)
4'b0001:   
4'b0010:
4'b0100:
4'b1000:
default:
endcase
end
 楼主| libaizhihun 发表于 2010-4-23 09:01 | 显示全部楼层
刚才仿真了一下,没问题。这就奇了怪了。
 楼主| libaizhihun 发表于 2010-4-23 09:31 | 显示全部楼层
我要结贴了,可能跟singletap调试有关,我想。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部