抢答器(VerilogHDL实现)

上传人:yh****1 文档编号:125626052 上传时间:2020-03-18 格式:DOC 页数:18 大小:109.50KB
返回 下载 相关 举报
抢答器(VerilogHDL实现)_第1页
第1页 / 共18页
抢答器(VerilogHDL实现)_第2页
第2页 / 共18页
抢答器(VerilogHDL实现)_第3页
第3页 / 共18页
抢答器(VerilogHDL实现)_第4页
第4页 / 共18页
抢答器(VerilogHDL实现)_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《抢答器(VerilogHDL实现)》由会员分享,可在线阅读,更多相关《抢答器(VerilogHDL实现)(18页珍藏版)》请在金锄头文库上搜索。

1、 桂林电子科技大学信息科技学院EDA技术与应用实训报告学 号 0952100110 姓 名 赵万里指导教师:江国强 杨艺敏 2011年04月20日 实训题目:智能电子抢答器 1.系统设计1.1 设计要求1.1.1 设计任务设计并制作一台智能电子抢答器。1.1.2 技术要求 用EDA实训仪的I/O设备和PLD芯片实现智能电子抢答器的设计。 智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答钮。 电路具有第一抢答信号的鉴别和锁存功能。在主持人将复位按钮按下后开始抢答,并用EDA实训仪上的八段数码管显示抢答者的序号,同时扬声器发出“嘟嘟”的响声,并维持3秒钟,此时电路自锁,不再接受其他选手的抢答信号

2、。 设计一个计分电路,每组在开始时设置为100分,抢答后由主持人计分,答对一次加10分,答错一次减10分。 设计一个犯规电路,对提前抢答和超时抢答者鸣喇叭示警,并显示犯规的组别序号。1.2 方案比较(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮。 (2) 电路具有第一抢答信号的鉴别和锁存功能。在主持人按下复位按钮后,若参加者按抢答开关,则该组指示灯亮。此时,电路应具备自锁功能,使别组的抢答开关不起作用。(3)自锁后,用八段数码管显示抢答者的序号,同时指示灯亮。(4) 设置计分电路。 每组在开始时预置成100,抢答后由主持人计分,答对一次加10,否则减10分 。(5)

3、电路具有淘汰功能,当每组的100分减少到0时,该组被淘汰,以后每次抢答,该组抢答按钮都无效。1.3 方案论证1.3.1 总体思路总体分为四部分:倒计时模块、计分模块、抢答模块和分屏显示模块。倒计时模块用一个20000000分频。产生一个进位,连接一个30的减法计数器构成。 计分模块中分为两部分,一部分用于计分,另一部分用于处理计数器的进制问题,当加到A时自动向前进位,并且把A变为0。当减少到F时,向前借位,并且把F变为9。这就实现了把十六进制变成一般用的十进制。抢答模块分两部分,复位模块和抢答模块,每次抢答都要初始化按键。抢答模块又分为误抢,无人抢答和正确抢答。每次抢答,当有一组按下抢答,立即

4、锁定,亮相应的分数和组号,并且亮起各种抢答所对应的灯信号。(即所要求的蜂鸣器)分屏显示模块中用每次抢答的组号作为输入,当抢答后立即换屏显示其组号分数。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分别为第一组、第二组、第三

5、组、第四组的减分进位端,当分数减少到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分

6、别为组号和各组分数的输入端,w换屏信号的输入端,qs位输出。(图4)(5)全局电路2各个模块程序的设计(1)倒计时模块,20000000分频产生进位,输入到计数器模块,完成30秒计数。(2)计分模块,用一个按键和一个拨动开关,拨动开关高点平时按键每按一次加十分,低电平时每按一次减十分。(3)抢答模块A、一个复位键,四个抢答键,当按下复位键后,如果有选手抢答,则电路立即锁定,使其他组不能再次抢答。B、在没有开始抢答之前,如果用人抢答即为误抢,显示其组号,分数。C、30秒倒计时开始,抢答者都不抢答,则表示无人抢答,亮起相应的灯。(4)分屏显示模块,此模块完全由输入的组号控制。3制作与调试过程(1)

7、30秒倒计时的调试,管脚锁定clk,使每秒产生一个进位,送到减数器模块。(2)计分模块,锁定两组的管脚,进行操作,组号的输入用拨动开关控制。(3)抢答模块,锁定相应的管脚,进行抢答,误抢和无人抢答操作,测试是否能够锁定,以及亮灯,显示正确的组号分数。4结论本次实训为期三周,确定下题目后,首先就是方案的确定。经过老师的辅导、同学的帮助、翻阅相关资料,综合各方面的考虑。了解EP1C3T144C8芯片的构造,需要查看大量的英文资料,我并没有气馁,一个管脚一个管脚的对比,终于弄清楚了实现功能的大体思路。然后就是再次学习Verilog HDL语言,虽然以前学过,但是差不多都忘了,用了几天时间熟悉了Ver

8、ilog HDL 源程序的编写。最后是硬件的调试,这是个漫长的过程,EP1C3T144C8芯片的接口也非常的繁杂,最后我坚持了下来。5实训心得体会通过这次实训,我对Verilog HDL有了深入的认识。同时也对EDA产生了更加浓厚的兴趣。本次实训,也检验了自己的能力,加强了逻辑思维的能力,不过我也发现了自身存在的一些问题,比如在quartus软件的应用上还有很多不成熟不理解的地方,但是相信在以后的学习生活中我可以很好的与予改正,取得更好的成绩,也希望日后老师能不厌其烦的指导我,给予我更大的支持。6参考文献1 江国强 EDA技术与应用 第三版 电子工业出版社 20102 谭会生,张昌凡. EDA

9、技术及应用.第二版.西安电子科技大学出版社,2009 附录:仿真波形图(部分模块)(图1 30秒倒计时) 程序清单(1)倒计时模块 A20000000分频程序 module cnt60(clk,cout,i,j,m);input clk,i,j,m;reg 24:0q;output reg cout;always (posedge clk&(i)&(j)&(m) begin if(q20000000-1) q=q+1; else q=0; if(q=20000000-1) cout=1; else cout=0; end endmoduleB、30秒倒计时程序module cntdj(clrn

10、,clk,q,count);input clk,clrn;output reg 7:0 q;output reg count; always (posedge clk or negedge clrn) if(clrn) begin q=h30;count=h0; end else begin if(q=0) q=h30; else q=q-1; if(q3:0=hf)begin q3:0=9;end if(q=h0) count=1; else count=0; endendmodule(2)计分模块程序module jiajianjishu(t1,t2,t3,t4,s1,d,count,cn

11、n1,cnn2,cnn3,cnn4,p);input s1,p;input 3:0d;output reg count,cnn1,cnn2,cnn3,cnn4;output reg11:0t1,t2,t3,t4;initial begin t1=h100;t2=h100;t3=h100;t4=h100; endalways (posedge s1 )beginif(p)beginif(d=h1) begin t1=t1+h10;if(t17:4=ha)begin t17:4=0;t111:8=t111:8+1;endelse if(t1=h1000) count=1;else count=0;

12、endelse if(d=h2) begin t2=t2+h10;if(t27:4=ha)begint27:4=0;t211:8=t211:8+1;end else if(t2=h1000) count=1;else count=0;endelse if(d=h3) begin t3=t3+h10;if(t37:4=ha)begin t37:4=0;t311:8=t311:8+1;endelse if(t3=h1000) count=1;else count=0;endelse if(d=h4) begin t4=t4+h10;if(t47:4=ha)begin t47:4=0;t411:8=

13、t411:8+1;end else if(t4=h1000) count=1;else count=0;endelse begin t1=h100;t2=h100;t3=h100;t4=h100; endendelse if(p) begin if(d=h1) begin t1=t1-h10;if(t17:4=hf)begin t17:4=9;t111:8=t111:8-1;if(t111:8=hf)begin t111:8=0;end /*else t111:8=t111:8;*/endelse if(t111:4=h0) begin cnn1=1;t111:0=h0; endelse cnn1=0;endelse if(d=h2) begin t2=t2-h10;if(t27:4=hf)begin t27:4=9;t211:8=t211:8-1;if(t211:8=hf)begin t211:8=0;end /*else t211:8=t211:8;*/end else if(t211:4=h0)begin cnn2=1;t211:0=h0; endels

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 设计及方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号