跳转至

模拟期末考试实验

注意

这题是助教应同学们要求出的用来模拟考试的题目。题目应该是比正式期末考试难的,请大家仅仅将本题作为参考。实际上我没试过这题要花多少时间,随便出的。

以及,由于题目仅供参考,请不要向助教询问题目如何进行解答。

背景知识

摩斯电码表,数字(16 进制)部分:

Number Wave
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
A .-
B -...
C -.-.
D -..
E .
F ..-.

在本题中,我们规定短于 1 秒为短按,长于 1 秒为长按。

步骤 1(5 分):译码器

本步骤请实现不带译码的数码管的译码模块。

输入:由 4 位拨码开关进行控制(0000 到 1111)。

输出:在数码管上对应显示 0 到 F。

步骤 2(15 分):简单摩斯电码翻译

本步骤中我们将实现摩斯电码的翻译。

实现本步骤默认步骤 1 已经完成。

输入:两位拨码开关,00 表示短按,01 表示长按,10 表示结束。CLK 用于进行编码输入,每次 CLK 按下表示输入 1 位摩斯电码 / 结束输入。

输出:1 位 LED 灯,表示是否为错误的(表外的)摩斯电码。7 位不带译码的数码管,在完成输入时,显示对应的数字。

验收时将随机进行两个数字和 1 个字母的检查。

步骤 3(10 分):长按和短按

本步骤中,我们将实现短按和长按的判定。

利用时钟和计数寄存器,我们可以在电路中完成按钮按下的时间的判断。

当按钮按下后(之前为 0,现在为 1),使用同步的方式(响应时钟而不是按钮)将计数寄存器清零。

当按钮持续按下时,每次时钟上升沿到来,将计数器加 1。

当计数器大于某个值时,激活长按灯,否则激活短按灯。

输入:1M 时钟,CLK 按钮。

输出:两个 LED 灯,分别表示长按和短按。

步骤 4(5 分):完整的摩斯电码译码

实现本步骤默认步骤 1-3 已经完成。

本步骤中,我们将实现一个较为综合的摩斯电码译码。

通过按钮,按下一系列由长按和短按组成的信号序列,将译码结果输出在不带译码的数码管上。若不匹配,则输出错误信号。

按下 RST 时,重置状态机。

请仔细思考状态机进行转移的条件。

输入:1M 时钟,CLK 按钮,RST 按钮

输出:1 位 LED 灯,表示是否为错误的(表外的)摩斯电码。7 位不带译码的数码管,在完成输入时,显示对应的数字。

步骤 5(5 分):示波器的使用

请将输入的 1M 时钟,通过 FPGA 进行 6 分频(即输出的频率为输入的频率的 1/6),将两个信号接到示波器的两个通道上进行显示。


最后更新: 2023年6月1日
作者:cuibst (97.73%), Jiajie Chen (2.27%)