EDA技术课程设计数字式竞赛抢答器Word文档格式.docx
- 文档编号:13666848
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:13
- 大小:160.57KB
EDA技术课程设计数字式竞赛抢答器Word文档格式.docx
《EDA技术课程设计数字式竞赛抢答器Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA技术课程设计数字式竞赛抢答器Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
专业负责人
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"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 课程设计 数字式 竞赛 抢答