基于VHDL的抢答器的设计实验
基于VHDL的抢答器的设计
一、 实验目的
1、熟悉四人抢答器的工作原理。
2、 加深对VHDL语言的理解。
3、 掌握EDA开发的基本流程。
二、 实验原理
抢答器在各类竞赛性质的场合得到了广泛的应用,它的出现,消除了原来由于人眼的误差而未能正确判断最先抢答的人的情况。
抢答器的原理比较简单,首先必须设置一个抢答允许标志位,目的就是为了允许或者禁止抢答者按按钮;如果抢答允许位有效,那么第一个抢答者按下的按钮就将其清楚,同时记录按钮的序号,也就是对应的按按钮的人,这样做的目的是为了禁止后面再有人按下按钮的情况。总的说来,抢答器的实现就是在抢答允许位有效后,第一个按下按钮的人将其清除以禁止再有按钮按下,同时记录清楚抢答允许位的按钮的序号并显示出来,这就是抢答器的实现原理。
三、 实验内容
本实验的任务是设计一个四人抢答器,用按键模块的K8来作抢答允许按钮,用BT1~BT4来表示1号抢答者~4号抢答者,同时用LED模块的D1~D4分别表示于抢答者对应的位置。具体要求为:按下BT8一次,允许一次抢答,这时BT1~BT4中第一个按下的按键将抢答允许位清除,同时将对应的LED点亮,用来表示对应的按键抢答成功。数码管显示对应抢答成功者的号码。
四、 实验步骤
1、 打开QUARTUSII软件,新建一个工程。
2、 建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3、 按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。
4、 编写完VHDL程序后,保存起来。方法同实验一。
5、 对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
6、 编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再 进 行全编译一次,以使管脚分配生效。
7、 根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。
如果是调用的本书提供的VHDL代码,则实验连线如下:
START:允许抢答信号,接一个按键开关BT8。
K1、K2、K3、K4:抢答者输入信号,接四个按键开关BT1、BT2、BT3、BT4。
LEDAG[6..0]:数码管显示信号,接数码管的G、F、E、D、C、B、A。
DOUT[3..0]: 抢答成功者显示信号,接四个LED灯D4、D3、D2、D1。
8、 用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。
五、 实验结果与现象
以设计的参考示例为例,当设计文件加载到目标器件后,确认信号连接线已正确连接,按下按键开关的BT8按键,表示开始抢答。然后,同时按下BT1-BT4,首先按下的键的键值被数码管显示出来,对应的LED灯被点亮。与此同时,其它按键失去抢答作用。
六、 实验报告
1、 绘出仿真波形,并作说明。
2、 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。