组员:杨刚,曾鹏宇
设计方案:通过 4*4 扫描键盘输入,根据按键的不同,输出相应
的音调和节拍。从第一列第二个开始设为开始的第一个功能键中音
1,然后从列开始数设置了共十五个功能键,从中音 1-中音 7,高音 1-
高音 7,还多设置了一个低音 1,数码管显示音调位数,红灯代表中
音区,黄灯代表高音区,绿灯代表低音区。
1.关于输入信号:
- `clk`: 时钟信号,所有同步操作都以此为基础
- `rst`: 复位信号,用于复位所有寄存器,将模块状态重置为初始状态
- `column`: 表示键盘列线的输入信号,其宽度为 4 位
2.关于输出信号:
- `beep`: 蜂鸣器控制信号
- `led_row` 和 `led_col`: 分别用于控制 LED 显示的行和列
- `row`: 表示键盘行线的输出信号,其宽度为 4 位
- `scan_key`: 扫描键盘的结果输出,其宽度为 4 位
- `dataout`: 要显示的数据输出,其宽度为 8 位
模块的主要部分可以分为以下几个方面:
1. **扫描键盘**:这个部分的代码主要位于第二个`always`块中,用
于定期扫描键盘的输入,确定被按下的键,并将结果存储在`scan_key`
寄存器中。扫描的频率由`cnt_scan`寄存器控制。每当`cnt_scan`达到
预定值时,就将行线`row`向右循环移位,然后将`cnt_scan`清零,开