微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog如何用矩阵键盘按三次输入三位数(0-999)?

verilog如何用矩阵键盘按三次输入三位数(0-999)?

时间:10-02 整理:3721RD 点击:
verilog如何用矩阵键盘按三次输入三位数(0-999)?
module key4x4
(
    clk,
    rst_n,
    row,                 
    col,               
    key_val         
);
input clk;
input rst_n;
input [3:0] row;      // 矩阵键盘 行
output reg[3:0] col;  // 矩阵键盘 列
output reg[3:0] key_val;  // 键盘值  
按键每按一次只会输出一个数字,连续按需要如下处理:
num=key_val;
key_data=(key_data)*10+num;
这样如何实现?

求问~~这个问题怎么实现呢,想了好久了!谢谢~~

你列出的模块,只是矩阵扫描的程序,通过key_val来表示按下什么值。但有个问题:key_val什么时候有效?例如它等于0时,表示没按下,还是按下时值为0。  如果想要实现你所需要的功能。你必须这样设计:增加一个输出指示key_vld,当key_vld有效时,表示捕捉到一个按下,并且值为key_val。  另外,再增加一个模块,来确认key_vld有效的次数和对应的key_val值并寄存下来。当key_vld三次有效了,那就有三个值了。那就组成三位数。 我是从明德扬的视频里学来的   

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top