Grayhill 072 16进制键盘扫描器的Verilog实现

该博客详细介绍了使用Verilog语言实现Grayhill 072 16进制键盘扫描器的过程,包括按键模拟、同步装置设计、状态机分配以及具体的检测算法。通过4*4键盘输入,生成对应的码字。内容涵盖了从ASM方案到电路代码的完整实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点

1)按键的机械原理,如何用一个module 模拟出按键的功能:体现的是抽象描述的能力;
2)同步装置,因为按键输入的是异步信号,必须经过同步;因为s_row 信号在经过同步装置后立马进入一个组合逻辑,为了消除潜在的冒险,这个例子中同步clk 选用下边沿驱动;
3)分配状态机的状态:从功能出发。在这个例子中的方案是,先col 全部置为1,检测是否有键按下;然后依次检测每一列;检测完成后,考虑到按键按的时间肯定长于clk, 所以要维持按键被选中的状态,直到键被释放;
启示:在编码之前首先要确定好操作方案;
4)测试方案在给基本信号的同时,要考虑可视性;

实现功能及具体结构

一个4*4的键盘输入信号,Grayhill 模块输出对应的码字。整体示意图结构如下:
在这里插入图片描述
当某一个按键按下时,会将相应的行列连通,相应的行输出一个高信号给Grayhill 模块。根据此示意图描述出更具体的电路模块图如下:
在这里插入图片描述
用一个信号发生器来模拟键盘的输入,一个行信号模块根据key 和 Col 的值来产生row[3:0]。因为键盘的输入是一个异步信号

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值