打印
[Verilog HDL]

verilog语法理解

[复制链接]
1418|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
damoyeren|  楼主 | 2013-10-28 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是一个检测按键按下时抖动的程序,不明白为什么key_ret_r的值比key_rst的值晚一个节拍?假如:key_rst:      1   1   1
key_ret_r:        1    1    1   (晚一个时钟周期不知道为什么)
两个always语句同时执行,况且敏感信号都是一样的,应该不会晚一个时钟周期的啊?不明白!
reg[2:0] key_rst;
always @(posedge clk  or negedge rst_n)  
  if (!rst_n) key_rst <= 3'b111;  
  else key_rst <= {sw3_n,sw2_n,sw1_n};

reg[2:0] key_rst_r;       //每个时钟周期的上升沿将low_sw信号锁存到low_sw_r中always @ ( posedge clk  or negedge rst_n )   
if (!rst_n) key_rst_r <= 3'b111;   
else key_rst_r <= key_rst;

相关帖子

沙发
jamgame| | 2013-10-28 15:58 | 只看该作者
我觉得是你使用了非阻塞赋值才导致这样的结果。

使用特权

评论回复
板凳
GoldSunMonkey| | 2013-10-29 22:54 | 只看该作者
这个延时有什么疑问么?

使用特权

评论回复
地板
GoldSunMonkey| | 2013-10-29 22:54 | 只看该作者
和楼上说的一致啊

使用特权

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

本版积分规则

126

主题

393

帖子

2

粉丝