在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3802|回复: 4

[求助] verilog 怎么获取按键松开的状态

[复制链接]
发表于 2014-5-23 09:13:52 | 显示全部楼层 |阅读模式
20资产
比如我要实行,按键按下,发一段时间的波形A,然后松开了发一段波形B。现在我已经实现了按下发码的功能。
请问:松开发码的功能要怎么实现?!!
按键按下计时可以在按键按下(key1=0)那段时间计时,但是松开我总不能也写没按键(key1=1)开始计时。
所以要怎么获取松开按键那个状态,让计时器对clk进行计时??


急急急~~菜鸟拜谢!

最佳答案

查看完整内容

方案1: always @(posedge clk) begin key1_d1
发表于 2014-5-23 09:13:53 | 显示全部楼层
方案1:

always @(posedge clk)
   begin
      key1_d1 <= #1 key1;
end

assign press_trigger = !key1 & key1_d1; //按下触发

assign release_trigger = key1 & (!key1_d1); //释放触发

//用触发启动你不同的发送状态

方案2:
   我一般喜欢用个状态机来控制,idle进 ‘0’态,‘0’态进‘1’态。
状态跳转的时候计数器先清零,然后开始计数,根据当前状态决定发什么序列
 楼主| 发表于 2014-5-23 09:58:37 | 显示全部楼层
回复 2# richardxingxing


   谢了,我用了第一种,菜鸟还没接触过状态机,等这个弄好去学习下。
发表于 2014-5-27 20:06:58 | 显示全部楼层
agree with  richardxingxing
发表于 2014-7-3 17:32:00 | 显示全部楼层
@richardxingxing, 程序中的#1延时作用是什么?在很多地方看到过,请指教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 16:06 , Processed in 0.022518 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表