EDA技术课程设计数字式竞赛抢答器Word文档格式.docx

上传人:b****2 文档编号:13666848 上传时间:2022-10-12 格式:DOCX 页数:13 大小:160.57KB
下载 相关 举报
EDA技术课程设计数字式竞赛抢答器Word文档格式.docx_第1页
第1页 / 共13页
EDA技术课程设计数字式竞赛抢答器Word文档格式.docx_第2页
第2页 / 共13页
EDA技术课程设计数字式竞赛抢答器Word文档格式.docx_第3页
第3页 / 共13页
EDA技术课程设计数字式竞赛抢答器Word文档格式.docx_第4页
第4页 / 共13页
EDA技术课程设计数字式竞赛抢答器Word文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

EDA技术课程设计数字式竞赛抢答器Word文档格式.docx

《EDA技术课程设计数字式竞赛抢答器Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA技术课程设计数字式竞赛抢答器Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

EDA技术课程设计数字式竞赛抢答器Word文档格式.docx

专业负责人

2011年3月7日

一、总体设计思想

1.基本原理

本设计为六路智能抢答器,所以这种抢答器要求有六路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数显和蜂鸣等方式显示出组别;

对回答问题所用的时间进行计时、显示、超时报警、预置答题时间,同时该系统还应有复位、倒计时启动功能。

抢答过程:

主持人按下系统复位键(RST),系统进入抢答状态,计时模块和计分模块输出初始信号给数码显示模块并显示出初始值。

当某参赛组抢先将抢答键按下时,系统将其余三路抢答信号封锁,同时扬声器发出声音提示,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。

主持人对抢答结果进行确认,随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。

计时至0时,停止计时,扬声器发出超时报警信号,以中止未回答完问题。

当主持人给出倒计时停止信号时,扬声器停止鸣叫。

若参赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号,以免扬声器鸣叫。

主持人按下复位键,即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;

ENDIF;

ENDPROCESS;

ENDBEHAVE;

译码模块:

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

译码模块图

ENTITYYMQIS

PORT(AIN4:

INSTD_LOGIC_VECTOR(3DOWNTO0);

DOUT7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDYMQ;

ARCHITECTUREARTOFYMQIS

PROCESS(AIN4)

BEGIN

CASEAIN4IS

WHEN"

DOUT7<

1111110"

--0

0110000"

--1

1101101"

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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