1 / 24
文档名称:

实验十三 用VHDL设计四人抢答器.doc

格式:doc   大小:497KB   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验十三 用VHDL设计四人抢答器.doc

上传人:653072647 2018/8/12 文件大小:497 KB

下载得到文件列表

实验十三 用VHDL设计四人抢答器.doc

文档介绍

文档介绍:实验十三用VHDL设计四人抢答器
实验目的
熟悉四人抢答器的工作原理。
加深对VHDL语言的理解。
掌握EDA开发的基本流程。
实验原理
抢答器在各类竞赛性质的场合得到了广泛的应用,它的出现,消除了原来由于人眼的误差而未能正确判断最先抢答的人的情况。
抢答器的原理比较简单,首先必须设置一个抢答允许标志位,目的就是为了允许或者禁止抢答者按按钮;如果抢答允许位有效,那么第一个抢答者按下的按钮就将其清楚,同时记录按钮的序号,也就是对应的按按钮的人,这样做的目的是为了禁止后面再有人按下按钮的情况。总的说来,抢答器的实现就是在抢答允许位有效后,第一个按下按钮的人将其清除以禁止再有按钮按下,同时记录清楚抢答允许位的按钮的序号并显示出来,这就是抢答器的实现原理。
实验内容
本实验的任务是设计一个四人抢答器,用按键模块的S5来作抢答允许按钮,用S1~S4来表示1号抢答者~4号抢答者,同时用LED模块的LED1~LED4分别表示于抢答者对应的位子。具体要求为:按下S5一次,允许一次抢答,这时S1~S4中第一个按下的按键将抢答允许位清除,同时将对应的LED点亮,用来表示对应的按键抢答成功。数码管显示对应抢答成功者的号码。
在此实验中数码管、LED、按键开关与FPGA的连接电路和管脚连接在以前的实验中都做了详细说明,这里不在赘述。
实验步骤
下面将通过这个实验,向读者介绍QUARTUSII的项目文件的生成、编译、管脚分配以及时序仿真等的操作过程。
1、建立工程文件
1)选择开始>程序>Altera>,运行QUARTUSII软件。或者双击桌面上的QUARTUSII的图标运行QUARTUSII软件,出现如图1-3所示,如果是第一次打开QUARTUSII软件可能会有其它的提示信息,使用者可以根据自己的实际情况进行设定后进入图1-3所示界面。
图1-3 QUARTUSII软件运行界面
2)选择软件中的菜单File>New Project Wizard,新建一个工程。如图1-4所示。
3)点击图1-4中的NEXT进入工作目录,工程名的设定对话框如图1-5所示。第一个输入框为工程目录输入框,用户可以输入如e:/eda等工作路径来设定工程的目录,设定好后,所有的生成文件将放入这个工作目录。第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。用户可以设定如EXP1,一般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定。
图1-4 新建工程对话框
图1-5 指定工程名称及工作目录
4)点击NEXT,进入下一个设定对话框,按默认选项直接点击NEXT进行器件选择对话框。如图1-6所示。这里我们以选用CycloneII系列芯片EP2C35F672C8为例进行介绍。用户可以根据使用的不同芯片来进行设定。
图1-6 器件选择界面
首先在对话框的左上方的Family下拉菜单中选取CycloneII,在中间右边的Speed grade下拉菜单中选取8,在左下方的Available devices框中选取EP2C35F672C8,点击NEXT完成器件的选取,进入EDA TOOL设定界面如图1-7所示。
图1-7 EDA TOOL对话框
5)按默认选项,点击NEXT出现新建工程以前所有的设定信息,如图1-8所示,点击FINISH完成新建工程的建立。
图1-8 新建工程信息
2、建立VHDL设计文件
1)在创建好设计工程后,选择File>NEW…菜单,出现图1-9所示的新建设计文件类型选择窗口。这里我们以建立VHDL设计文件为例进行说明,其它设计输入方法与之基本相同。
图1-9 新建设计文件选择窗口
2)在New对话框(图1-9)中选择Device Design Files页下的VHDL File,点击OK按钮,打开图形编辑器对话框,如图1-10所示。图中标明了常用的每个按钮的功能
3) 在文本编辑器中输入如下vhdl程序:
library ieee;
use ;
use ;
use ;
--------------------------------------------------------------------
entity exp1 is
port( S1,S2,S3,S4 : in std_logic; --输入:表示4个人
S5 : in std_logic; --主持人按键
ledag : out std_logic_vector(6 downto 0);
Dout : out