eda实训 智能电子抢答器.docx

上传人:b****6 文档编号:5607829 上传时间:2022-12-29 格式:DOCX 页数:19 大小:118.80KB
下载 相关 举报
eda实训 智能电子抢答器.docx_第1页
第1页 / 共19页
eda实训 智能电子抢答器.docx_第2页
第2页 / 共19页
eda实训 智能电子抢答器.docx_第3页
第3页 / 共19页
eda实训 智能电子抢答器.docx_第4页
第4页 / 共19页
eda实训 智能电子抢答器.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

eda实训 智能电子抢答器.docx

《eda实训 智能电子抢答器.docx》由会员分享,可在线阅读,更多相关《eda实训 智能电子抢答器.docx(19页珍藏版)》请在冰豆网上搜索。

eda实训 智能电子抢答器.docx

eda实训智能电子抢答器

桂林电子科技大学信息科技学院

《EDA技术及应用》实训报告

学号**********

姓名张常彪

指导教师:

覃琴

2012年6月20日

 

智能电子抢答器

1.系统设计

1.1设计要求

1.1.1设计任务

设计并制作一台智能电子抢答器。

1.1.2性能指标要求

①用EDA实训仪的I/O设备和PLD芯片实现智能电子抢答器的设计。

②智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答按键。

③电路具有第一抢答信号的鉴别和锁存功能。

在主持人将复位按钮按下后开始抢答,并用EDA实训仪上的八段数码管显示抢答者的序号,同时扬声器发出“嘟嘟”的响声,并维持3秒钟,此时电路自锁,不再接受其他选手的抢答信号。

④设计一个计分电路,每组在开始时设置为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模块,犯规模块。

moduleqdq(k,k1,k2,k3,k4,led,q,kk,en,q2);

inputk,k1,k2,k3,k4;

outputreg[3:

0]q;

outputreg[3:

0]led;

outputkk,en;

wireena,p;

regen1,en2,en3,en4,kk1,kk2,kk3,kk4,j1=0,j2=0,j3=0,j4=0;

outputregq2;

assignena=~(|q);

assignkk=kk1|kk2|kk3|kk4;

assignen=en1|en2|en3|en4;

assignp=j1|j2|j3|j4;

always

begin

if(p==1)q2=1;

elseq2=0;

end

always@(negedgek1ornegedgek)

begin

if(~k)beginq[0]=0;en1=1;j1=0;end

elseif(ena)beginq[0]=1;kk1=1;j1=1;end

elseq[0]=q[0];

end

always@(negedgek2ornegedgek)

begin

if(~k)beginq[1]=0;en2=1;j2=0;end

elseif(ena)beginq[1]=1;kk2=1;j2=1;end

elseq[1]=q[1];

end

always@(negedgek3ornegedgek)

begin

if(~k)beginq[2]=0;en3=1;j3=0;end

elseif(ena)beginq[2]=1;kk3=1;j3=1;end

elseq[2]=q[2];

end

always@(negedgek4ornegedgek)

begin

if(~k)beginq[3]=0;en4=1;j4=0;end

elseif(ena)beginq[3]=1;kk4=1;j4=1;end

elseq[3]=q[3];

end

always

case(q)

0:

led=0;

1:

led=1;

2:

led=2;

4:

led=3;

8:

led=4;

endcase

endmodule

(2)加减模块

计分模块主要是起到一个为各组选手计分的作用,当分组选手抢答成功时就会显示相应的分数,初始分数是10分,答对一题加1分打错一题减掉1分

modulejfq(clk,j,k1,clr,e);

input[1:

0]j;

input[3:

0]k1;

inputclk;

inputclr;

outputreg[7:

0]e;

reg[7:

0]c,d,f,g;

always@(posedgeclkornegedgeclr)

begin

if(~clr)beginc[7:

4]=0;c[3:

0]=0;d[7:

4]=0;d[3:

0]=0;f[7:

4]=0;f[3:

0]=0;g[7:

4]=0;g[3:

0]=0;end

elseif(k1==0)begine[7:

0]=0;end

elseif(k1==1)

beginif(j[0]==1)

beginif(c[3:

0]<9&&c[7:

4]!

=9)

c[3:

0]=c[3:

0]+1;

elseif(c[3:

0]==9&&c[7:

4]!

=9)

beginc[3:

0]=0;c[7:

4]=c[7:

4]+1;end

elseif(c[3:

0]==9&&c[7:

4]==9)

beginc[3:

0]=9;c[7:

4]=9;end

e=c;

end

elseif(j[1]==1)

beginif(c[3:

0]==0&&c[7:

4]==0)

beginc[3:

0]=0;c[7:

4]=0;end

elseif(c[3:

0]==0&&c[7:

4]!

=0)

beginc[3:

0]=9;c[7:

4]=c[7:

4]-1;end

elseif(c[3:

0]!

=0&&c[7:

4]==0)

c[3:

0]=c[3:

0]-1;

elseif(c[3:

0]!

=0&&c[7:

4]!

=0)

beginc[7:

4]=c[7:

4];c[3:

0]=c[3:

0]-1;end

e=c;

end

elsee=c;

end

elseif(k1==2)

beginif(j[0]==1)

beginif(d[3:

0]<9&&d[7:

4]!

=9)

d[3:

0]=d[3:

0]+1;

elseif(d[3:

0]==9&&d[7:

4]!

=9)

begind[3:

0]=0;d[7:

4]=d[7:

4]+1;end

elseif(d[3:

0]==9&&d[7:

4]==9)

begind[3:

0]=9;d[7:

4]=9;end

e=d;

end

elseif(j[1]==1)

beginif(d[3:

0]==0&&d[7:

4]==0)

begind[3:

0]=0;d[7:

4]=0;end

elseif(d[3:

0]==0&&d[7:

4]!

=0)

begind[3:

0]=9;d[7:

4]=d[7:

4]-1;end

elseif(d[3:

0]!

=0&&d[7:

4]==0)

d[3:

0]=d[3:

0]-1;

elseif(d[3:

0]!

=0&&d[7:

4]!

=0)

begind[7:

4]=d[7:

4];d[3:

0]=d[3:

0]-1;end

e=d;

end

elsee=d;

end

elseif(k1==3)

beginif(j[0]==1)

beginif(f[3:

0]<9&&f[7:

4]!

=9)

f[3:

0]=f[3:

0]+1;

elseif(f[3:

0]==9&&f[7:

4]!

=9)

beginf[3:

0]=0;f[7:

4]=f[7:

4]+1;end

elseif(f[3:

0]==9&&f[7:

4]==9)

beginf[3:

0]=9;f[7:

4]=9;end

e=f;

end

elseif(j[1]==1)

beginif(f[3:

0]==0&&f[7:

4]==0)

beginf[3:

0]=0;f[7:

4]=0;end

elseif(f[3:

0]==0&&f[7:

4]!

=0)

beginf[3:

0]=9;f[7:

4]=f[7:

4]-1;end

elseif(f[3:

0]!

=0&&f[7:

4]==0)

f[3:

0]=f[3:

0]-1;

elseif(f[3:

0]!

=0&&f[7:

4]!

=0)

beginf[7:

4]=f[7:

4];f[3:

0]=f[3:

0]-1;end

e=f;

end

elsee=f;

end

elseif(k1==4)

beginif(j[0]==1)

beginif(g[3:

0]<9&&g[7:

4]!

=9)

g[3:

0]=g[3:

0]+1;

elseif(g[3:

0]==9&&g[7:

4]!

=9)

beging[3:

0]=0;g[7:

4]=g[7:

4]+1;end

elseif(g[3:

0]==9&&g[7:

4]==9)

beging[3:

0]=9;g[7:

4]=9;end

e=g;

end

elseif(j[1]==1)

beginif(g[3:

0]==0&&g[7:

4]==0)

beging[3:

0]=0;g[7:

4]=0;end

elseif(g[3:

0]==0&&g[7:

4]!

=0)

beging[3:

0]=9;g[7:

4]=g[7:

4]-1;end

elseif(g[3:

0]!

=0&&g[7:

4]==0)

g[3:

0]=g[3:

0]-1;

elseif(g[3:

0]!

=0&&g[7:

4]!

=0)

beging[7:

4]=g[7:

4];g[3:

0]=g[3:

0]-1;end

e=g;

end

elsee=g;

end

end

endmodule

(3)报警电路

modulebj(bout,q2,clr,fout);

inputbout,q2,clr;

outputregfout;

always

begin

if(bout==1)

begin

if(q2==0)fout=0;

elsefout=1;

end

end

endmodule

(4)倒计时器

倒计时模块主要是一个倒计时的作用,我们设计的是一个3秒的倒计时。

modulecnt3(clk,lod,d,q,bout);

inputclk,lod;

input[3:

0]d;

outputreg[3:

0]q;

outputregbout;

always@(posedgeclkornegedgelod)

begin

if(~lod)beginq=d;bout=0;end

elsebegin

if(q==0)q='h0;

elseq=q-1;

if(q==0)bout=1;

elsebout=0;

end

end

endmodule

(5)分频器

分频器实现的是将高频时钟信号转换成低频的时钟信号,用于触发控制器,计数器和扫描显示电路。

该分频器,将EDA实训仪主板提供的20MHz的主频经20000000分频后,得到电路所需的1Hz(秒)时钟。

其设计模块如图2所示。

modulefpq(clk,cout);

inputclk;

reg[24:

0]q;

outputregcout;

always@(posedgeclk)

begin

if(q<20000000-1)q=q+1;

elseq=0;

if(q==20000000-1)cout=1;

elsecout=0;

end

endmodule

(6)抢答器结构图

3.调试过程

根据自己画的电路图以及个管脚功能,锁定相应引脚,然后编译下载到试验箱中去。

然后就进行硬件调试,刚开始时,加分模块功能有问题,按下加分按键后不是分很多就是加不了,经过反复更改程序后,最后得到的所要求的加分功能,其他模块有的有一些问题,有的很容易就改过来了,最后有部分功能还没调试出来,不过大部分都已经完成。

4.功能测试

4.1测试仪器与设备

1.安装QuartusII软件电脑一台

2.EDA实训仪一台

4.2性能指标测试

①实现了用EDA实训仪的I/O设备和PLD芯片实现智能电子抢答器的设计。

②实现了智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答钮。

③实现了电路具有第一抢答信号的鉴别和锁存功能。

在主持人将复位按钮按下后开始抢答,并用EDA实训仪上的八段数码管显示抢答者的序号,同时LED灯闪烁提示。

此时电路自锁,不再接受其他选手的抢答信号。

④实现了设计一个计分电路,每组在开始时设置为10分,抢答后由主持人计分,答对一次加1分,答错一次减1分。

⑤实现了设计一个犯规电路,对提前抢答和超时抢答者进行警告提示,并显示犯规的组别序号。

5.实训心得体会

通过本次实训,觉得以后不管做什么制作,首先应该理清思路,需要有模块,怎么连接,每个模块的作用是什么,模块与模块之间有什么联系,还有一些输入输出。

然后再细分到每个模块的突破,写程序也一样,再在写这些复杂的程序前我们先要有一个整体思路。

接下来就是根据每各快的功能来写这写程序,有些可以参考书上的一些程序,在这个程序上加以修改就可以实现功能。

最后就是把程序变成器件,再把各个快连接起来,接上输入输出口。

再锁管脚的时候不同的作用的引脚要锁不同的地方,比如要脉冲信号的要接16,有的接按键;有的接拨动开关等。

在次过程中碰到了好多问题,不仅是知识上的缺陷,更重要的是自己心态,在碰到问题一下子不能解决时,一定不能浮躁,要静下心,慢慢思考,这段时间坚持下来,就一定会把问题解决。

所以不管做什么事,一定要坚持。

6.参考文献

《EDA技术与应用》电子工业出版社江国强编著

附录:

仿真波形图(部分模块)

1.分频器模块

2.Cnt仿真波形图

程序清单

moduleqdq(k,k1,k2,k3,k4,led,q,kk,en,q2);

inputk,k1,k2,k3,k4;

outputreg[3:

0]q;

outputreg[3:

0]led;

outputkk,en;

wireena,p;

regen1,en2,en3,en4,kk1,kk2,kk3,kk4,j1=0,j2=0,j3=0,j4=0;

outputregq2;

assignena=~(|q);

assignkk=kk1|kk2|kk3|kk4;

assignen=en1|en2|en3|en4;

assignp=j1|j2|j3|j4;

always

begin

if(p==1)q2=1;

elseq2=0;

end

always@(negedgek1ornegedgek)

begin

if(~k)beginq[0]=0;en1=1;j1=0;end

elseif(ena)beginq[0]=1;kk1=1;j1=1;end

elseq[0]=q[0];

end

always@(negedgek2ornegedgek)

begin

if(~k)beginq[1]=0;en2=1;j2=0;end

elseif(ena)beginq[1]=1;kk2=1;j2=1;end

elseq[1]=q[1];

end

always@(negedgek3ornegedgek)

begin

if(~k)beginq[2]=0;en3=1;j3=0;end

elseif(ena)beginq[2]=1;kk3=1;j3=1;end

elseq[2]=q[2];

end

always@(negedgek4ornegedgek)

begin

if(~k)beginq[3]=0;en4=1;j4=0;end

elseif(ena)beginq[3]=1;kk4=1;j4=1;end

elseq[3]=q[3];

end

always

case(q)

0:

led=0;

1:

led=1;

2:

led=2;

4:

led=3;

8:

led=4;

endcase

endmodule

modulejfq(clk,j,k1,clr,e);

input[1:

0]j;

input[3:

0]k1;

inputclk;

inputclr;

outputreg[7:

0]e;

reg[7:

0]c,d,f,g;

always@(posedgeclkornegedgeclr)

begin

if(~clr)beginc[7:

4]=0;c[3:

0]=0;d[7:

4]=0;d[3:

0]=0;f[7:

4]=0;f[3:

0]=0;g[7:

4]=0;g[3:

0]=0;end

elseif(k1==0)begine[7:

0]=0;end

elseif(k1==1)

beginif(j[0]==1)

beginif(c[3:

0]<9&&c[7:

4]!

=9)

c[3:

0]=c[3:

0]+1;

elseif(c[3:

0]==9&&c[7:

4]!

=9)

beginc[3:

0]=0;c[7:

4]=c[7:

4]+1;end

elseif(c[3:

0]==9&&c[7:

4]==9)

beginc[3:

0]=9;c[7:

4]=9;end

e=c;

end

elseif(j[1]==1)

beginif(c[3:

0]==0&&c[7:

4]==0)

beginc[3:

0]=0;c[7:

4]=0;end

elseif(c[3:

0]==0&&c[7:

4]!

=0)

beginc[3:

0]=9;c[7:

4]=c[7:

4]-1;end

elseif(c[3:

0]!

=0&&c[7:

4]==0)

c[3:

0]=c[3:

0]-1;

elseif(c[3:

0]!

=0&&c[7:

4]!

=0)

beginc[7:

4]=c[7:

4];c[3:

0]=c[3:

0]-1;end

e=c;

end

elsee=c;

end

elseif(k1==2)

beginif(j[0]==1)

beginif(d[3:

0]<9&&d[7:

4]!

=9)

d[3:

0]=d[3:

0]+1;

elseif(d[3:

0]==9&&d[7:

4]!

=9)

begind[3:

0]=0;d[7:

4]=d[7:

4]+1;end

elseif(d[3:

0]==9&&d[7:

4]==9)

begind[3:

0]=9;d[7:

4]=9;end

e=d;

end

elseif(j[1]==1)

beginif(d[3:

0]==0&&d[7:

4]==0)

begind[3:

0]=0;d[7:

4]=0;end

elseif(d[3:

0]==0&&d[7:

4]!

=0)

begind[3:

0]=9;d[7:

4]=d[7:

4]-1;end

elseif(d[3:

0]!

=0&&d[7:

4]==0)

d[3:

0]=d[3:

0]-1;

elseif(d[3:

0]!

=0&&d[7:

4]!

=0)

begind[7:

4]=d[7:

4];d[3:

0]=d[3:

0]-1;end

e=d;

end

elsee=d;

end

elseif(k1==3)

beginif(j[0]==1)

beginif(f[3:

0]<9&&f[7:

4]!

=9)

f[3:

0]=f[3:

0]+1;

elseif(f[3:

0]==9&&f[7:

4]!

=9)

beginf[3:

0]=0;f[7:

4]=f[7:

4]+1;end

elseif(f[3:

0]==9&&f[7:

4]==9)

beginf[3:

0]=9;f[7:

4]=9;end

e=f;

end

elseif(j[1]==1)

beginif(f[3:

0]==0&&f[7:

4]==0)

beginf[3:

0]=0;f[7:

4]=0;end

elseif(f[3:

0]==0&&f[7:

4]!

=0)

beginf[3:

0]=9;f[7:

4]=f[7:

4]-1;end

elseif(f[3:

0]!

=0&&f[7:

4]==0)

f[3:

0]=f[3:

0]-1;

elseif(f[3:

0]!

=0&&f[7:

4]!

=0)

beginf[7:

4]=f[7:

4];f[3:

0]=f[3:

0]-1;end

e=f;

end

elsee=f;

end

elseif(k1==4)

beginif(j[0]==1)

beginif(g[3:

0]<9&&g[7:

4]!

=9)

g[3:

0]=g[3:

0]+1;

elseif(g[3:

0]==9&&g[7:

4]!

=9)

beging[3:

0]=0;g[7:

4]=g[7:

4]+1;end

elseif(g[3:

0]==9&&g[7:

4]==9)

beging[3:

0]=9;g[7:

4]=9;end

e=g;

end

elseif(j[1]==1)

beginif(g[3:

0]==0&&g[7:

4]==0)

beging[3:

0]=0;g[7:

4]=0;end

elseif(g[3:

0]==0&&g[7:

4]!

=0)

beging[3:

0]=9;g[7:

4]=g[7:

4]-1;end

elseif(g[3:

0]!

=0&&g[7:

4]==0)

g[3:

0]=g[3:

0]-1;

elseif(g[3:

0]!

=0&&g[7:

4]!

=0)

beging[7:

4]=g[7:

4];g[3:

0]=g[3:

0]-1;end

e=g;

end

elsee=g;

end

end

endmodule

modulebj(bout,q2,clr,fout);

inputbout,q2,clr;

outputregfout;

always

begin

if(bout==1)

begin

if(q2==0)fout=0;

elsefout=1;

end

end

endmodule

 

modulefpq(clk,cout);

inputclk;

reg[24:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1