抢答器(-Verilog-HDL实现)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
抢答器(-Verilog-HDL实现)
桂林电子科技大学信息科技学院《EDA技术与应用》实训报告
学号0952100110
姓名赵万里
指导教师:江国强杨艺敏
2011年04月20日
实训题目:智能电子抢答器
1.系统设计
1.1 设计要求
1.1.1 设计任务
设计并制作一台智能电子抢答器。
1.1.2 技术要求
①用EDA实训仪的I/O设备和PLD芯片实现智能电子抢答器的设计。
②智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答钮。
③电路具有第一抢答信号的鉴别和锁存功能。在主持人将复位按钮按下后开始抢答,并用EDA实训仪上的八段数码管显示抢答者的序号,同时扬声器发出“嘟嘟”的响声,并维持3秒钟,此时电路自锁,不再接受其他选手的抢答信号。
④设计一个计分电路,每组在开始时设置为100分,抢答后由主持人计分,答对一次加10分,答错一次减10分。
⑤设计一个犯规电路,对提前抢答和超时抢答者鸣喇叭示警,并显示犯规的组别序号。
1.2 方案比较
(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮。
(2) 电路具有第一抢答信号的鉴别和锁存功能。在主持人按下复位按钮后,若参加者按抢答开关,则该组指示灯亮。此时,电路应具备自锁功能,使别组的抢答开关不起作用。
(3)自锁后,用八段数码管显示抢答者的序号,同时指示灯亮。(4) 设置计分电路。每组在开始时预置成100,抢答后由主持人计分,答对一次加10,否则减10分。
(5)电路具有淘汰功能,当每组的100分减少到0时,该组被淘汰,以后每次抢答,该组抢答按钮都无效。
1.3 方案论证
1.3.1 总体思路
总体分为四部分:倒计时模块、计分模块、抢答模块和分屏显示模块。
倒计时模块用一个20000000分频。产生一个进位,连接一个30的减法计数器构成。
计分模块中分为两部分,一部分用于计分,另一部分用于处理计数器的进制问题,当加到A时自动向前进位,并且把A变为0。当减少到F时,向前借位,并且把F变为9。这就实现了把十六进制变成一般用的十进制。
抢答模块分两部分,复位模块和抢答模块,每次抢答都要初始化按键。抢答模块又分为误抢,无人抢答和正确抢答。每次抢答,当有一组按下抢答,立即锁定,亮相应的分数和组号,并且亮起各种抢答所对应的灯信号。(即所要求的蜂鸣器)
分屏显示模块中用每次抢答的组号作为输入,当抢答后立即换屏显示其组号分数。
1.3.2 设计方案
(1)根据设计要求需要一个时钟的接入端clk,清除端clrn,使倒
计时复位,count进位端当倒计时到0时进位,进位端返回到j,使倒计时停止。当佣人抢答时,输入一个低电平,在取反输入到i,使倒计时停止。
(图1)
(2)电路的计分模块,d位组号的输入端,是s1位计数按键,p位加减的控制端,高电平是s1位加分,低电平s1位减分,t1、t2、t3、t4位各组的分数输出端,cnn1、cnn2、cnn3、cnn4分别为第一组、第二组、第三组、第四组的减分进位端,当分数减少到0的时候,产生进位,使该组不能再次抢答,使其淘汰。
(图2)
(3)抢答模块,clk位时钟的输入端,再程序的开始捕捉时钟的上
升沿,qd是抢答初始化,每次抢答开始首先初始化,使抢答就位,准备开始抢答。qd1、qd2、qd3、qd4为四组的抢答按键,每次有一组抢答后程序立即锁定,使别的组不能再抢答。K为抢答开的的控制键,k高电平时开始抢答,低电平时抢答即为误抢。cnn1、cnn2、cnn3、cnn4位减数进位端,sig、sig1、sig2为各种抢的标志的输出,即亮灯(蜂鸣器)。d位抢答者的组号输出端。
(图3)
(4)分屏显示模块mux_1,d,t1、t2、t3、t4分别为组号和各组分数的输入端,w换屏信号的输入端,qs位输出。
(图4)
(5)全局电路
2.各个模块程序的设计
(1)倒计时模块,20000000分频产生进位,输入到计数器模块,完成30秒计数。
(2)计分模块,用一个按键和一个拨动开关,拨动开关高点平时按键每按一次加十分,低电平时每按一次减十分。
(3)抢答模块
A、一个复位键,四个抢答键,当按下复位键后,如果有选手抢答,则电路立即锁定,使其他组不能再次抢答。
B、在没有开始抢答之前,如果用人抢答即为误抢,显示其组号,分数。
C、30秒倒计时开始,抢答者都不抢答,则表示无人抢答,亮起相应的灯。
(4)分屏显示模块,此模块完全由输入的组号控制。
3.制作与调试过程
(1)30秒倒计时的调试,管脚锁定clk,使每秒产生一个进位,送到减数器模块。
(2)计分模块,锁定两组的管脚,进行操作,组号的输入用拨动开关控制。
(3)抢答模块,锁定相应的管脚,进行抢答,误抢和无人抢答操作,测试是否能够锁定,以及亮灯,显示正确的组号分数。
4.结论
本次实训为期三周,确定下题目后,首先就是方案的确定。经过老师的辅导、同学的帮助、翻阅相关资料,综合各方面的考虑。了解EP1C3T144C8芯片的构造,需要查看大量的英文资料,我并没有气馁,一个管脚一个管脚的对比,终于弄清楚了实现功能的大体思路。然后就是再次学习Verilog HDL语言,虽然以前学过,但是差不多都忘了,用了几天时间熟悉了Verilog HDL 源程序的编写。最后是硬件的调试,这是个漫长的过程,EP1C3T144C8芯片的接口也非常的繁杂,最后我坚持了下来。
5.实训心得体会
通过这次实训,我对Verilog HDL有了深入的认识。同时也对EDA 产生了更加浓厚的兴趣。本次实训,也检验了自己的能力,加强了逻辑思维的能力,不过我也发现了自身存在的一些问题,比如在quartus软件的应用上还有很多不成熟不理解的地方,但是相信在以后的学习生活中我可以很好的与予改正,取得更好的成绩,也希望日后老师能不厌其烦的指导我,给予我更大的支持。
6.参考文献
1 江国强EDA技术与应用第三版电子工业出版社2010