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