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;
这样如何实现????????????
此帖出自
小平头技术问答
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
总共4个键,
一个总输入,一个确定兼移位,一个输入单个0到9, 一个确认
一周热门 更多>