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

2019-03-25 07:34发布

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;
这样如何实现????????????
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
yuxuanwlfei
2019-03-26 08:28
yuxuanwlfei 发表于 2015-9-2 11:24
可否将你所说的方式例程公布一下?!

        jzjp jzjp(
                .row(row),
                .col(col),
                .real_number(number),
                .clk(clk_slow),
                .rst_n(rst_n),
                .flag(flag),
                .opcode(opcode)
        );       
       
        conv conv(
                .clk(clk_slow),
                .opcode(opcode),
                .flag(flag),
                .number(number),
                .rst_n(rst_n),
                .data_in(data),
                .fuhao(fuhao),
                .dp(dp)
        );

我参考过至芯的计算器例程,但下载到板子中无法实现,每次按键按下,会连续显示好几个数字。如果每次按下一个数字,产生一个flag,然后

if(flag)
begin
num=key_val;
key_data=(key_data)*10+num;
end

一周热门 更多>