初级会员
- 积分
- 95
- 金钱
- 95
- 注册时间
- 2020-12-19
- 在线时间
- 18 小时
|
楼主 |
发表于 2021-8-22 00:37:04
|
显示全部楼层
.v代码第36行delay_cnt == 20'd0 的另一个问题:
波形图中:左1红线时刻为复位完后的第一个sys_clk上升沿,
由于程序是复位完后:delay_cnt = 20'd,
所以左1红线时刻执行了代码第36行,
使得key_flag = 1,key_value = 0,
在下一个sys_clk上升沿时,即左2红线时刻,满足
else if(key_flag && (~key_value))
beep <= ~beep;
导致按键明明没有按下,beep却发生跳转的现象。
此后执行的是.v代码第40行else,使得flag = 0,不再跳转beep。
然后当delay_cnt减到0时,又执行了第36行delay_cnt == 20'd0,
并且一直执行这里,导致beep连续上下跳变
|
|