1、eda实训 智能电子抢答器 桂林电子科技大学信息科技学院EDA技术及应用实训报告学 号 * 姓 名 张常彪 指导教师:覃琴 2012 年 6 月 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.1 设计思路模块qdq具有抢答所存功能,模块jfq 具有计算选手分数的功能模块fpq 将20MHZ的转为一秒的脉冲,模块bj具有超时抢答警报的功能,cnt3具有3秒倒计时的功能,还有contr和cont1两个控功能的模块。1.2.2 总体设计框图2各个模块程序的设计(1)抢答器抢答器模块有5个输入,分别为4个选手按键以及一个始能端一个清零端,3个输出分别接到LED模块,犯规模块。m
3、odule qdq(k,k1,k2,k3,k4,led,q,kk,en,q2);input k,k1,k2,k3,k4;output reg3:0 q;output reg3:0 led;output kk,en;wire ena,p;reg en1,en2,en3,en4,kk1,kk2,kk3,kk4,j1=0,j2=0,j3=0,j4=0;output reg q2;assign ena=(|q);assign kk=kk1|kk2|kk3|kk4;assign en=en1|en2|en3|en4;assign p=j1|j2|j3|j4; alwaysbeginif(p=1) q2=
4、1;else q2=0;endalways(negedge k1 or negedge k)begin if(k) begin q0=0; en1=1;j1=0;end else if(ena) begin q0=1; kk1=1; j1=1;end else q0=q0;end always(negedge k2 or negedge k)beginif(k) begin q1=0;en2=1;j2=0; end else if(ena) begin q1=1; kk2=1;j2=1;end else q1=q1;end always(negedge k3 or negedge k)begi
5、n if(k) begin q2=0;en3=1;j3=0;end else if(ena) begin q2=1; kk3=1;j3=1;end else q2=q2;end always(negedge k4 or negedge k)begin if(k) begin q3=0;en4=1;j4=0;end else if(ena) begin q3=1; kk4=1;j4=1;end else q3=q3;end alwayscase(q)0:led=0;1:led=1;2:led=2;4:led=3;8:led=4;endcaseendmodule(2)加减模块计分模块主要是起到一个
6、为各组选手计分的作用,当分组选手抢答成功时就会显示相应的分数,初始分数是10分,答对一题加1分打错一题减掉1分module jfq(clk,j,k1,clr,e);input 1:0 j;input 3:0 k1;input clk;input clr;output reg 7:0 e;reg 7:0c,d,f,g;always (posedge clk or negedge clr)begin if(clr) begin c7:4=0;c3:0=0;d7:4=0;d3:0=0;f7:4=0;f3:0=0;g7:4=0;g3:0=0;end else if (k1=0) begin e7:0=
7、0;end else if(k1=1) begin if(j0=1) begin if(c3:09&c7:4!=9) c3:0=c3:0+1; else if(c3:0=9&c7:4!=9) begin c3:0=0;c7:4=c7:4+1;end else if(c3:0=9&c7:4=9) begin c3:0=9;c7:4=9;end e=c; end else if(j1=1) begin if(c3:0=0&c7:4=0) begin c3:0=0;c7:4=0;end else if(c3:0=0&c7:4!=0) begin c3:0=9;c7:4=c7:4-1;end else
8、 if (c3:0!=0&c7:4=0) c3:0=c3:0-1; else if(c3:0!=0&c7:4!=0) begin c7:4=c7:4;c3:0=c3:0-1;end e=c; end else e=c; end else if(k1=2) begin if(j0=1) begin if(d3:09&d7:4!=9) d3:0=d3:0+1; else if(d3:0=9&d7:4!=9) begin d3:0=0;d7:4=d7:4+1;end else if(d3:0=9&d7:4=9) begin d3:0=9;d7:4=9;end e=d; end else if(j1=
9、1) begin if(d3:0=0&d7:4=0) begin d3:0=0;d7:4=0;end else if(d3:0=0&d7:4!=0) begin d3:0=9;d7:4=d7:4-1;end else if (d3:0!=0&d7:4=0) d3:0=d3:0-1; else if(d3:0!=0&d7:4!=0) begin d7:4=d7:4;d3:0=d3:0-1;end e=d; end else e=d; end else if(k1=3) begin if(j0=1) begin if(f3:09&f7:4!=9) f3:0=f3:0+1; else if(f3:0
10、=9&f7:4!=9) begin f3:0=0;f7:4=f7:4+1;end else if(f3:0=9&f7:4=9) begin f3:0=9;f7:4=9;end e=f; end else if(j1=1) begin if(f3:0=0&f7:4=0) begin f3:0=0;f7:4=0;end else if(f3:0=0&f7:4!=0) begin f3:0=9;f7:4=f7:4-1;end else if (f3:0!=0&f7:4=0) f3:0=f3:0-1; else if(f3:0!=0&f7:4!=0) begin f7:4=f7:4;f3:0=f3:0
11、-1;end e=f; end else e=f; end else if(k1=4) begin if(j0=1) begin if(g3:09&g7:4!=9) g3:0=g3:0+1; else if(g3:0=9&g7:4!=9) begin g3:0=0;g7:4=g7:4+1;end else if(g3:0=9&g7:4=9) begin g3:0=9;g7:4=9;end e=g; end else if(j1=1) begin if(g3:0=0&g7:4=0) begin g3:0=0;g7:4=0;end else if(g3:0=0&g7:4!=0) begin g3:
12、0=9;g7:4=g7:4-1;end else if (g3:0!=0&g7:4=0) g3:0=g3:0-1; else if(g3:0!=0&g7:4!=0) begin g7:4=g7:4;g3:0=g3:0-1;end e=g; end else e=g; end endendmodule(3)报警电路module bj(bout,q2,clr,fout);input bout,q2,clr;output reg fout;alwaysbeginif(bout=1)begin if(q2=0) fout=0; else fout=1;endendendmodule(4)倒计时器倒计时
13、模块主要是一个倒计时的作用,我们设计的是一个3秒的倒计时。module cnt3(clk,lod,d,q,bout); input clk,lod; input 3:0 d; output reg3:0 q; output reg bout; always (posedge clk or negedge lod) begin if (lod) begin q=d;bout=0;end else begin if (q=0) q=h0; else q=q-1; if (q=0) bout=1; else bout=0; end endendmodule(5)分频器 分频器实现的是将高频时钟信号转
14、换成低频的时钟信号,用于触发控制器,计数器和扫描显示电路。该分频器,将EDA实训仪主板提供的20MHz的主频经20000000分频后,得到电路所需的1Hz(秒)时钟。其设计模块如图2所示。 module fpq(clk,cout);input clk;reg 24:0 q;output reg cout;always (posedge clk)begin if(q20000000-1) q=q+1; else q=0; if(q=20000000-1) cout=1; else cout=0;endendmodule(6)抢答器结构图3调试过程根据自己画的电路图以及个管脚功能,锁定相应引脚,然
15、后编译下载到试验箱中去。然后就进行硬件调试,刚开始时,加分模块功能有问题,按下加分按键后不是分很多就是加不了,经过反复更改程序后,最后得到的所要求的加分功能,其他模块有的有一些问题,有的很容易就改过来了,最后有部分功能还没调试出来,不过大部分都已经完成。4功能测试4.1 测试仪器与设备1. 安装Quartus II软件电脑一台2. EDA实训仪一台4.2 性能指标测试 实现了用EDA实训仪的I/O设备和PLD芯片实现智能电子抢答器的设计。 实现了智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答钮。 实现了电路具有第一抢答信号的鉴别和锁存功能。在主持人将复位按钮按下后开始抢答,并用EDA实训仪
16、上的八段数码管显示抢答者的序号,同时LED灯闪烁提示。此时电路自锁,不再接受其他选手的抢答信号。 实现了设计一个计分电路,每组在开始时设置为10分,抢答后由主持人计分,答对一次加1分,答错一次减1分。 实现了设计一个犯规电路,对提前抢答和超时抢答者进行警告提示,并显示犯规的组别序号。 5实训心得体会 通过本次实训,觉得以后不管做什么制作,首先应该理清思路,需要有模块,怎么连接,每个模块的作用是什么,模块与模块之间有什么联系,还有一些输入输出。然后再细分到每个模块的突破,写程序也一样,再在写这些复杂的程序前我们先要有一个整体思路。接下来就是根据每各快的功能来写这写程序,有些可以参考书上的一些程序
17、,在这个程序上加以修改就可以实现功能。最后就是把程序变成器件,再把各个快连接起来,接上输入输出口。再锁管脚的时候不同的作用的引脚要锁不同的地方,比如要脉冲信号的要接16,有的接按键;有的接拨动开关等。在次过程中碰到了好多问题,不仅是知识上的缺陷,更重要的是自己心态,在碰到问题一下子不能解决时,一定不能浮躁,要静下心,慢慢思考,这段时间坚持下来,就一定会把问题解决。所以不管做什么事,一定要坚持。 6参考文献 EDA技术与应用 电子工业出版社 江国强 编著 附录:仿真波形图(部分模块)1.分频器模块2.Cnt仿真波形图程序清单module qdq(k,k1,k2,k3,k4,led,q,kk,en
18、,q2);input k,k1,k2,k3,k4;output reg3:0 q;output reg3:0 led;output kk,en;wire ena,p;reg en1,en2,en3,en4,kk1,kk2,kk3,kk4,j1=0,j2=0,j3=0,j4=0;output reg q2;assign ena=(|q);assign kk=kk1|kk2|kk3|kk4;assign en=en1|en2|en3|en4;assign p=j1|j2|j3|j4; alwaysbeginif(p=1) q2=1;else q2=0;endalways(negedge k1 or
19、 negedge k)begin if(k) begin q0=0; en1=1;j1=0;end else if(ena) begin q0=1; kk1=1; j1=1;end else q0=q0;end always(negedge k2 or negedge k)beginif(k) begin q1=0;en2=1;j2=0; end else if(ena) begin q1=1; kk2=1;j2=1;end else q1=q1;end always(negedge k3 or negedge k)begin if(k) begin q2=0;en3=1;j3=0;end e
20、lse if(ena) begin q2=1; kk3=1;j3=1;end else q2=q2;end always(negedge k4 or negedge k)begin if(k) begin q3=0;en4=1;j4=0;end else if(ena) begin q3=1; kk4=1;j4=1;end else q3=q3;end alwayscase(q)0:led=0;1:led=1;2:led=2;4:led=3;8:led=4;endcaseendmodulemodule jfq(clk,j,k1,clr,e);input 1:0 j;input 3:0 k1;i
21、nput clk;input clr;output reg 7:0 e;reg 7:0c,d,f,g;always (posedge clk or negedge clr)begin if(clr) begin c7:4=0;c3:0=0;d7:4=0;d3:0=0;f7:4=0;f3:0=0;g7:4=0;g3:0=0;end else if (k1=0) begin e7:0=0;end else if(k1=1) begin if(j0=1) begin if(c3:09&c7:4!=9) c3:0=c3:0+1; else if(c3:0=9&c7:4!=9) begin c3:0=0
22、;c7:4=c7:4+1;end else if(c3:0=9&c7:4=9) begin c3:0=9;c7:4=9;end e=c; end else if(j1=1) begin if(c3:0=0&c7:4=0) begin c3:0=0;c7:4=0;end else if(c3:0=0&c7:4!=0) begin c3:0=9;c7:4=c7:4-1;end else if (c3:0!=0&c7:4=0) c3:0=c3:0-1; else if(c3:0!=0&c7:4!=0) begin c7:4=c7:4;c3:0=c3:0-1;end e=c; end else e=c
23、; end else if(k1=2) begin if(j0=1) begin if(d3:09&d7:4!=9) d3:0=d3:0+1; else if(d3:0=9&d7:4!=9) begin d3:0=0;d7:4=d7:4+1;end else if(d3:0=9&d7:4=9) begin d3:0=9;d7:4=9;end e=d; end else if(j1=1) begin if(d3:0=0&d7:4=0) begin d3:0=0;d7:4=0;end else if(d3:0=0&d7:4!=0) begin d3:0=9;d7:4=d7:4-1;end else
24、 if (d3:0!=0&d7:4=0) d3:0=d3:0-1; else if(d3:0!=0&d7:4!=0) begin d7:4=d7:4;d3:0=d3:0-1;end e=d; end else e=d; end else if(k1=3) begin if(j0=1) begin if(f3:09&f7:4!=9) f3:0=f3:0+1; else if(f3:0=9&f7:4!=9) begin f3:0=0;f7:4=f7:4+1;end else if(f3:0=9&f7:4=9) begin f3:0=9;f7:4=9;end e=f; end else if(j1=
25、1) begin if(f3:0=0&f7:4=0) begin f3:0=0;f7:4=0;end else if(f3:0=0&f7:4!=0) begin f3:0=9;f7:4=f7:4-1;end else if (f3:0!=0&f7:4=0) f3:0=f3:0-1; else if(f3:0!=0&f7:4!=0) begin f7:4=f7:4;f3:0=f3:0-1;end e=f; end else e=f; end else if(k1=4) begin if(j0=1) begin if(g3:09&g7:4!=9) g3:0=g3:0+1; else if(g3:0
26、=9&g7:4!=9) begin g3:0=0;g7:4=g7:4+1;end else if(g3:0=9&g7:4=9) begin g3:0=9;g7:4=9;end e=g; end else if(j1=1) begin if(g3:0=0&g7:4=0) begin g3:0=0;g7:4=0;end else if(g3:0=0&g7:4!=0) begin g3:0=9;g7:4=g7:4-1;end else if (g3:0!=0&g7:4=0) g3:0=g3:0-1; else if(g3:0!=0&g7:4!=0) begin g7:4=g7:4;g3:0=g3:0-1;end e=g; end else e=g; end endendmodulemodule bj(bout,q2,clr,fout);input bout,q2,clr;output reg fout;alwaysbeginif(bout=1)begin if(q2=0) fout=0; else fout=1;endendendmodulemodule fpq(clk,cout);input clk;reg 24:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1