四人抢答器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四人抢答器
一、课程设计目的:
1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知
识,解决实际问题的能力;
2、结合理论知识,考察阅读参考资料、文献、手册的能力;
3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、
下载验证等环节的实现方法和应用技巧;
4、锻炼撰写研究报告、研究论文的能力;
5、通过本实践环节,培养科学和严谨的工作作风。二、课程设计内容:
l、设计用于竞赛的四人抢答器,功能如下:
(1) 有多路抢答器,台数为四;
(2) 具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;
(3) 能显示超前抢答台号并显示犯规警报;
(4) 能显示各路得分,并具有加、减分功能; 2、系统复位后进入抢答状态,
当有一路抢答键按下时,该路抢答信
号将其余各路抢答封锁,同时铃声响,直至该路按键松开,显示
牌显示该路抢答台号。
3、用VHDL语言设计符合上述功能要求的四人抢答器,并用层次设计方法设计
该电路。
三、课程设计步骤:
根据设计内容的要求可以得知抢答器应分为以下几个模块比较好。即抢答器鉴
别模块、抢答器计时模块、抢答器计分模块,由以上三个模块就可完成四人抢答器
的功能要求。但大家都知道,作为一个VHDL语言源程序,一般需要一个顶层文件将各个模块统一起来,故而还需要顶层文件模块。现将各个模块介绍如下:
1、抢答器鉴别模块:
既然是抢答器所以首先必须有抢答的功能。在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录正常抢答和朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号能立即显示出来而其它路的信号无论抢没抢答都不能让其显示。也就是说具有将其余的抢答器发过来的信号封锁的功能。
本次程序中设定的共有四个抢答信号K1、K2、K3、K4;抢答使能信号en;抢答状态显示信号states;警报时钟信号clk2;系统复位信号rst;超前警报信号ring。
其工作条件应该如下:当系统一个复位信号(rst=’1’有效)到来时,主持人按下允许抢答按键时即en=‘1’,各路才准开始抢答,当有一路正常获得抢答时,系统会立即自动封锁另外三路的抢答信号,只允许一人处于答题状态;当主持人没有按下允许抢答键时,若有人超前抢答,警报会立即响起,同时只要有人抢答那么抢答显示台(states)会显示哪一个在抢答。其抢答时序图如下图1所示:
图1 鉴别模块的时序
在系统第一个复位信号来临后,电路自动复位,在允许抢答信号来临之前(即en=‘0’,非抢答区),任何的按键都是超前抢答,此时警报就会响起(即超前抢答警报信号ring获得一个频率很高的脉冲,就会响起);在主持人复位(rst=1,抢答
区)时,允许抢答,K1~K4中最先为高电平的即抢答成功,此时抢答显示台将会显示其对应的台号。
该模块的程序以及下面的各个模块的程序都会附在最后的附录上。
2、抢答器计时模块:
在这个模块中主要实现抢答器在抢答过程中的计时功能,在有抢答开始后进行20秒的倒计时,并且在20秒倒计时后,若无人抢答显示超时并报警。其中有抢答时钟信号clk;系统复位信号rst;抢答使能信号en;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位个位信号tb,ta。
本模块主是实现抢答器计时功能的,其工作情况应应该如下:系统复位信号来临(即rst=‘1’),计时复位为20秒倒计时,当主持人允许抢答时即en=1,开始倒计时,随着系统时钟来一个上升沿倒计时减1,当到20倒计时计玩仍然无人抢答时,警报指示灯亮(即warn=‘1’),若有人抢答主持人可以按下中止键(即
stop=‘1’),这样倒计时就会回到20秒初始状态。
其工作时序如下图2所示
图2 计分模块的时序
图中是CLK上升沿有效,当人rst=0且en=1时才会从二十开始倒计时,当遇到stop(高电平)信号时或者当20减到0时,计时才会停止。
3、抢答器记分模块:
在这个模块中主要是实现计分的功能的。根据要求只需要能显示各路得分,并具有加、减分功能即可。若做加减法,给各个台号预置一定的分数比较好。此处给每个抢答信号预置10分,当抢答并答对时加1分,答错
减1分,没有获得抢答保持不变。其中各端口的定义如下:抢答时钟信号为clk;系统复位信号为rst;抢答使能信号为en;抢答状态显示信号为states;记分加减信号为add(add,‘1’时为加,add,‘0’时为减);四个信号的得分显示信号为
a_out,b_out,c_out,d_out。
此时抢答器的计分模块的工作的时序图如下图3所示:
图3 计分模块的时序图
即有图2中的抢答后才能有图3的计分才有效。即有抢答的必有加减分得存在,没抢答的分数将会保持不变~
4、顶层文件:
在这个模块中是对前三个模块的综合编写的顶层文件。
四、课程设计验证:
本次课程设计在EDA实验系统GW48-PK2上完成,芯片均选用“cyclone”系列的“EP1C6Q240C6”。本课程设计选择模式5,依托Qutartus强大的仿真及编译功能,对程序进行查错在确认无误后进行管脚锁定,管脚锁定好后对设计文件进行重新编译,产生设计电路的下载文件(.sof)。然后打开GW48-PK2实验系统,执行菜单“tools-programmer”,点击“add file…”加载下载文件:点击“hardware setup…”选择编程下载方式“ByteBlasterMV”;
“Programmer”窗口中“mode”项选择“JTAG”,然后点击“start”开始下载,下载完成后,即可在实验箱上验证设计电路。
经验证后抢答器的相应功能实现了,说明设计已经设计完成~在课程设计验证过程中的仿真的波形如下图四:
图4 综合仿真的波形
如上图所示,当k2超前抢答时,states中显示出了超前抢答的台号2,同时输出outa得到一个报警信号clk2;当k4抢答成功后,其他的强答台号无效,显示灯只显示四号的;当无人抢答是给出了一个报警信号,提示抢答倒计时结束无人抢答。
五、课程设计心得:
本次我们的课程设计设计较好地完成了既定目标,能够正确显示出抢答台号,完成积分功能,并能较精确的进行倒计时计数。最终完成了本次试验交给我们的任务~