eda数字式竞赛抢答器 1Word下载.docx

上传人:b****2 文档编号:1299269 上传时间:2023-04-30 格式:DOCX 页数:16 大小:189KB
下载 相关 举报
eda数字式竞赛抢答器 1Word下载.docx_第1页
第1页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第2页
第2页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第3页
第3页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第4页
第4页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第5页
第5页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第6页
第6页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第7页
第7页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第8页
第8页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第9页
第9页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第10页
第10页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第11页
第11页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第12页
第12页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第13页
第13页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第14页
第14页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第15页
第15页 / 共16页
eda数字式竞赛抢答器 1Word下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

eda数字式竞赛抢答器 1Word下载.docx

《eda数字式竞赛抢答器 1Word下载.docx》由会员分享,可在线阅读,更多相关《eda数字式竞赛抢答器 1Word下载.docx(16页珍藏版)》请在冰点文库上搜索。

eda数字式竞赛抢答器 1Word下载.docx

主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。

此抢答器的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。

2.设计框图

 

主电路

二、设计步骤和调试过程

总体设计电路

1、模块设计和相应模块程序

将该任务分成几个模块进行设计,分别为:

抢答器鉴别模块、抢答器记分模块、译码模块、数选模块、报警模块,最后是撰写顶层文件。

抢答器鉴别模块:

在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是超前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余过滤抢答封锁的功能。

其中有六个抢答信号s0、s1、s2、s3、s4、s5;

抢答使能信号s;

抢答状态显示信号states;

抢答与警报时钟信号clk2;

系统复位信号rst;

警报信号tmp。

抢答鉴别模块图

VHDL源程序

libraryieee;

--抢答鉴别模块

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityqdjbis

port(rst,clk2:

instd_logic;

s0,s1,s2,s3,s4,s5:

states:

bufferstd_logic_vector(5downto0);

tmp:

outstd_logic);

endqdjb;

architectureoneofqdjbis

signalst:

std_logic_vector(5downto0);

begin

p1:

process(s0,rst,s1,s2,s3,s4,s5,clk2)

begin

ifrst='

0'

then

tmp<

='

;

st<

="

0000"

elsifclk2'

eventandclk2='

1'

then

if(s0='

orst(0)='

)andnot(st

(1)='

orst

(2)='

orst(3)='

orst(4)='

orst(5)='

)thenst(0)<

endif;

if(s1='

orst

(1)='

)andnot(st(0)='

)thenst

(1)<

if(s2='

)thenst

(2)<

if(s3='

)thenst(3)<

if(s4='

)thenst(4)<

if(s5='

)thenst(5)<

tmp<

=s0ors1ors2ors3ors4ors5;

endif;

endprocessp1;

p2:

process(states(0),states

(1),states

(2),states(3),states(4),states(5))

if(st="

)thenstates<

elsif(st<

0001"

0010"

0100"

0011"

0101"

1000"

0110"

endif;

endprocessp2;

endone;

数据选择模块:

在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];

计数输出信号s;

数据输出信号y;

计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。

数据选择模块

useieee.std_logic_arith.all;

entitysjxzis

port(a,b,c:

instd_logic_vector(3downto0);

clk2,rst:

instd_logic;

s:

outstd_logic_vector(1downto0);

y:

outstd_logic_vector(3downto0));

endsjxz;

architecturebody_chooserofsjxzis

signalcount:

std_logic_vector(1downto0);

s<

=count;

process(clk2,rst)

if(rst='

)thencount<

00"

elsif(clk2'

)then

if(count>

10"

count<

elsecount<

=count+1;

endif;

casecountis

when"

=>

y<

=a;

01"

=b;

=c;

whenothers=>

null;

endcase;

endPROCESS;

endbody_chooser

报警模块:

在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内有人抢答,有效电平输入信号i;

状态输出信号q;

计数脉冲clk2。

报警模块图

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYALARMIS

PORT(CLK,I:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC);

ENDALARM;

ARCHITECTUREBEHAVEOFALARMIS

SIGNALWARN:

STD_LOGIC;

SIGNALN:

INTEGERRANGE0TO20;

BEGIN

Q<

=WARN;

PROCESS(CLK)

BEGIN

IFCLK'

EVENTANDCLK='

THEN

IFI='

THEN

WARN<

ELSIF(I='

ANDN<

=19)THEN

=NOTWARN;

N<

=N+1;

ELSE

ENDIF;

ENDPROCESS;

ENDBEHAVE;

译码模块:

在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。

译码模块图

ENTITYYMQIS

PORT(AIN4:

INSTD_LOGIC_VECTOR(3DOWNTO0);

DOUT7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDYMQ;

ARCHITECTUREARTOFYMQIS

PROCESS(AIN4)

CASEAIN4IS

WHEN"

DOUT7<

1111110"

--0

0110000"

--1

1101101"

--2

1111001"

--3

0110011"

--4

1011011"

--5

1011111"

--6

0111"

1110000"

--7

1111111"

--8

1001"

1111011"

--9

WHENOTHERS=>

0000000"

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

译码显示电路图

顶层文件:

在这个模块中是对前面模块的综合编写的顶层文件。

entityqiangdaqiis

port(clk,clk2,s,s0,s1,s2,s3,s4,s5,stop,rst:

n,k,q_out:

outstd_logic;

m:

outstd_logic_vector(1downto0);

a,b,c,d,e,f,g:

endqiangdaqi;

architecturebhvofqiangdaqiis

componentqdjbis

port(clk2,rst:

tmp:

outstd_logic_vector(5downto0));

endcomponent;

componentjsis

port(clk,rst,s,stop:

warn:

ta,tb:

bufferstd_logic_vector(5downto0));

componentsjxzis

a,b,c:

instd_logic_vector(3downto0);

outstd_logic_vector(3downto0));

componentymqis

port(ain4:

instd_logic_vector(3downto0);

dout7:

outstd_logic_vector(6downto0));

componentalarmis

port(clk,i:

q:

signalstates_out,ta_out,tb_out,y_out:

std_logic_vector(3downto0);

signalledout:

std_logic_vector(6downto0);

signalw:

std_logic;

a<

=ledout(6);

b<

=ledout(5);

c<

=ledout(4);

d<

=ledout(3);

e<

=ledout

(2);

f<

=ledout

(1);

g<

=ledout(0);

u1:

qdjbportmap(clk2,rst,s0,s1,s2,s3,tmp=>

k,states=>

states_out);

u2:

jsportmap(clk,rst,s,stop,warn=>

n,ta=>

ta_out,tb=>

tb_out);

u3:

sjxzportmap(clk2=>

clk2,rst=>

rst,s=>

m,a=>

states_out,b=>

ta_out,c=>

tb_out,y=>

y_out);

u4:

ymqportmap(ain4=>

y_out,DOUT7=>

ledout);

u5:

alarmportmap(clk2,s,q_out);

endbhv;

2、仿真及仿真结果分析

抢答鉴别模块仿真图

数据选择模块仿真图

报警模块仿真图

译码模块仿真图

顶层文件仿真图

CLK接高电平,s0,s1,s2,sl3,s4,s5六个选手接低电平,鉴别器的输出接指示灯,译码器的输出接LED数码管,计分器的输出接显示译码器。

当主持人按下使能端时,六个选手同时抢答。

如图所示,若s0抢答,即为高电平时,s0灯亮,若回答正确,对其加分,即当时钟出现上升沿时就进行加一或者减一的操作。

3、实验调试结果

按下rst键清零,按下s键,观察数码管是否开始倒计时,扬声器是否发出报警声,按下s0,观察数码管是否显示1和抢答的时间,再按s1,s2,s3,s4.s5均不改变显示,按下rst键,观察是否清零,再按s键,不按别的,直到计时时间到,观察是否显示00,扬声器是否发出报警

第一个按下键的小组,抢答信号判定电路LOCK通过缓冲输出信号的反馈将本参赛组抢先按下按键的信号锁存,并且以异步清零的方式将其他参赛组的锁存器清零,组别显示、计时和计分会保存到主持人对系统进行清零操作时为止。

当INI=1时系统复位,使组别显示信号G=0000,各组的指示灯信号S0=0,S1=0,S2=0,S3=0,S4=0,S5=0;

当INI=0,即低电平有效,使其进入抢答鉴别状态,到CLK的上升沿到来时,以A组抢答成功为例,当输入信号为A=1,B=0,C=0,D=0,输出信号G=1000,A1=1,即为鉴别出A组抢答成功,同时屏蔽其他组的输入信号,以免发生错误。

三、结论及心得体会

这次EDA课程设计了一个星期,在这期间学到了很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。

特别是当每一个子模块编写调试成功时,心里特别的开心。

但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

总的来说,这次设计的数字抢答器还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

参考资料

[4]崔建明主编,电工电子EDA仿真技术北京:

高等教育出版社,2004

[5]侯继红,李向东主编,EDA实用技

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2