基于verilog HDL——长短按键识别

这篇博客记录了作者使用Verilog HDL设计长短按键识别模块的过程。通过计数器和状态机结合的方式,实现了按键短按触发功能1,长按触发功能2的功能。作者在编写过程中遇到了思维转换和并行处理的挑战,最终成功完成设计,但依然感到有些许不足,期待得到资深人士的指导。
摘要由CSDN通过智能技术生成
 

  老师给了我一个任务。这个是其中的一个模块——长短按键识别。就是说,我按着按键短点,可以实现功能1;按着久点,可以实现功能2。初学Verilog,有很多不懂,编写过程稍微吃力。以前用C很好写,但是用Verilog感觉就不同了。所以我第一个想法就是直接用状态机,但是新学,编起来有点乱,思维绞死。然后果断放弃,改用另个——直接计数,按键按下开始计数,再识别按键释放时的计数。想法不错,嘿嘿,然后感觉可行。可编到一半,又有点晕了。不习惯并行思维。于是在这个基础上,加了状态机。果断,行。嘿嘿。。。。终于搞掂。

  虽然已经出来了,但是感觉还是有点问题的,希望前辈能稍微指点迷津。嘿嘿。

 

  

 
module key(clk,reset,key_in,STOP_RUN,RST,CONFIG);

input clk;
input reset;
input key_in;
output reg RST;                 //复位信号RST ,高电平有效
output reg STOP_RUN;            //停车态或行车态
output reg CONFIG;              //CONFIG=1,表示进入设置状态


reg [2:0] CURRENT_STATE,NEXT_STATE;                    //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值