EDA实验作业四路抢答器.docx

上传人:b****1 文档编号:3315469 上传时间:2023-05-05 格式:DOCX 页数:16 大小:109.24KB
下载 相关 举报
EDA实验作业四路抢答器.docx_第1页
第1页 / 共16页
EDA实验作业四路抢答器.docx_第2页
第2页 / 共16页
EDA实验作业四路抢答器.docx_第3页
第3页 / 共16页
EDA实验作业四路抢答器.docx_第4页
第4页 / 共16页
EDA实验作业四路抢答器.docx_第5页
第5页 / 共16页
EDA实验作业四路抢答器.docx_第6页
第6页 / 共16页
EDA实验作业四路抢答器.docx_第7页
第7页 / 共16页
EDA实验作业四路抢答器.docx_第8页
第8页 / 共16页
EDA实验作业四路抢答器.docx_第9页
第9页 / 共16页
EDA实验作业四路抢答器.docx_第10页
第10页 / 共16页
EDA实验作业四路抢答器.docx_第11页
第11页 / 共16页
EDA实验作业四路抢答器.docx_第12页
第12页 / 共16页
EDA实验作业四路抢答器.docx_第13页
第13页 / 共16页
EDA实验作业四路抢答器.docx_第14页
第14页 / 共16页
EDA实验作业四路抢答器.docx_第15页
第15页 / 共16页
EDA实验作业四路抢答器.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA实验作业四路抢答器.docx

《EDA实验作业四路抢答器.docx》由会员分享,可在线阅读,更多相关《EDA实验作业四路抢答器.docx(16页珍藏版)》请在冰点文库上搜索。

EDA实验作业四路抢答器.docx

EDA实验作业四路抢答器

内容摘要

抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。

当第一个人按下按键后,则在显示器上显示该组的号码,同时电路将其他各组按键封锁,使其不起作用。

若抢答时间内无人抢答,警报器发出警报。

回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。

因此要完成抢答器的逻辑功能,该电路至少应包括抢答锁存模块、计时模块、选择控制,报警器和译码模块组成。

关键词:

抢答锁存计时数据选择译码报警

 

目录

一概述…………………………………………………………………1

二方案设计与论证………………………………………………………………1

三单元电路设计…………………………………………………………………2

3.1.抢答鉴别模块的设计………………………………………………2

3.2计时模块的设计………………………………………………………3

3.3数据选择模块的设计…………………………………………………6

3.4报警模块的设计……………………………………………………7

3.5译码器模块的设计……………………………………………………8

3.6主电路连线图…………………………………………………………10

3.7芯片引脚图……………………………………………………………11

四器件编程与下载………………………………………………………………11

五性能测试与分析………………………………………………………………11

六实验设备………………………………………………………………………11

七心得体会………………………………………………………………………12

八参考文献………………………………………………………………………12

 

课程设计任务书

课题

名称

基于VHDL的四路枪答器

完成

时间

2010.

11.30

指导

教师

崔瑞雪

职称

副教授

学生

姓名

李瑞轩

班级

B08221

总体设计要求和技术要点

设计要求:

1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。

2.设置一个复位开关和抢答控制开关STOP,该开关由主持人控制。

3.抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

4.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如20秒)。

当主持人启动“STOP”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

5.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

技术要点:

1、实现封锁功能;3、总程序的编译、仿真、打包并下载到实验箱。

工作内容及时间进度安排

工作内容:

1、编程、仿真、打包、编辑总程序,编译。

2、下载到实验箱,验证结果。

进度安排:

13周周一到周五上机调试程序。

14周周一下载验证,做硬件实验。

周二课设验收并总结报告。

课程设计成果

1.与设计内容对应的软件程序2.课程设计报告书

一、概述

抢答器主要由抢答锁存模块、计时模块、数据选择控制模块,报警器和译码模块组成。

在整个抢答器中最关键的是如何实现抢答锁存,在控制键按下的同时计数器倒计时显示有效剩余时间。

除此之外,整个抢答器还需有一个使能信号和一个归零信号,以便抢答器能实现公平抢答和停止。

抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。

当主持人按下控制键、选手按下抢答键或倒计时到时蜂鸣器短暂响起。

二、方案设计与论证

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

抢答器锁存模块、抢答器计时模块、译码模块、数选模块、报警模块。

1、抢答锁存模块;

在这个模块中主要实现抢答过程中的抢答功能,当抢答开始后,当有一路抢答按键首先按下时,将其余个路抢答封锁的功能。

其中有四个抢答信号S[3..0];时钟信号CLK;复位RST;警报信号T;输出信号XUANSHOU。

2、抢答器计时模块:

在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行20秒的倒计时,并且在20秒倒计时后无人抢答显示超时并报警。

其中有抢答时钟信号CLK;系统复位信号RST;抢答使能信号STOP;无人抢答警报信号WARN;有人抢答计时中止信号S;计时十位和个位信号SW,GW。

3、数据选择模块:

在这个模块中主要实现抢答过程中的数据输入功能,输入信号A[3..0]、B[3..0]、C[3..0];计数输出信号S[1..0];数据输出信号Y;计数脉冲CLK,实现A、B、C按脉冲轮流选通,在数码管上显示。

4、报警模块:

在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内无人人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号I;状态输出信号Q;计数脉冲CLK。

5、译码模块:

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

三、单元电路设计

(一)抢答锁存模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYJBSCIS

PORT(CLK,RST:

INSTD_LOGIC;

S:

INSTD_LOGIC_VECTOR(3DOWNTO0);

T:

OUTSTD_LOGIC;

N:

BUFFERSTD_LOGIC;

XUANSHOU:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDJBSC;

ARCHITECTUREONEOFJBSCIS

SIGNALSO:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(CLK,S,SO)

BEGIN

IFRST='0'THEN

SO<="0000";

ELSIFCLK'EVENTANDCLK='1'THEN

IFSO="0000"THEN

IFS/="0000"THEN

SO<=S;

ENDIF;

ENDIF;

ENDIF;

T<=SO(0)ORSO

(1)ORSO

(2)ORSO(3);

N<=S(0)ORS

(1)ORS

(2)ORS(3);

CASESOIS

WHEN"0001"=>XUANSHOU<="0001";

WHEN"0010"=>XUANSHOU<="0010";

WHEN"0100"=>XUANSHOU<="0011";

WHEN"1000"=>XUANSHOU<="0100";

WHENOTHERS=>XUANSHOU<="0000";

ENDCASE;

ENDPROCESS;

ENDONE;

2、仿真图

(二)计时模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYJSIS

PORT(CLK,RST,STOP,S:

INSTD_LOGIC;

WARN:

BUFFERSTD_LOGIC;

SW,GW:

BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));

ENDJS;

ARCHITECTUREONEOFJSIS

SIGNALCO,TT:

STD_LOGIC;

BEGIN

P1:

PROCESS(CO,RST,STOP,SW,S)

BEGIN

IFSTOP='1'ORRST='0'THEN

SW<="0010";

ELSIFCO'EVENTANDCO='1'THEN

IFS='0'THEN

IFSW="0000"THENSW<="0000";

ELSESW<=SW-1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESSP1;

P2:

PROCESS(CLK,RST,STOP,CO,GW,SW,S)

BEGIN

IFSTOP='1'ORRST='0'THEN

GW<="0000";

TT<='0';

ELSIFCLK'EVENTANDCLK='1'THEN

IFS='0'THEN

CO<='0';

IFGW="0000"ANDSW="0000"THEN

GW<="0000";

ELSIFGW="0000"ANDNOT(SW="0000")THEN

GW<="1001";CO<='1';TT<='1';

ELSEGW<=GW-1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESSP2;

P3:

PROCESS(RST,GW,SW)

BEGIN

IFRST='0'THEN

WARN<='0';

ELSIFGW="0000"ANDSW="0000"ANDTT='1'THEN

WARN<='1';

ELSE

WARN<='0';

ENDIF;

ENDPROCESSP3;

ENDONE;

2、仿真图

(三)数据选择模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSHUJUFENPEIIS

PORT(X,SWEI,GWEI:

INSTD_LOGIC_VECTOR(3DOWNTO0);

CLK:

INSTD_LOGIC;

Y:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SHU:

OUTSTD_LOGIC_VECTOR(1DOWNTO0));

ENDSHUJUFENPEI;

ARCHITECTUREONEOFSHUJUFENPEIIS

SIGNALCOUNT:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

PROCESS(CLK)

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

IF(COUNT="10")THENCOUNT<="00";

ELSECOUNT<=COUNT+1;

ENDIF;

ENDIF;

SHU<=COUNT;

CASECOUNTIS

WHEN"00"=>Y<=X;

WHEN"01"=>Y<=GWEI;

WHEN"10"=>Y<=SWEI;

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

ENDONE;

 

2、仿真图

(四)报警模块

1、VHDL源程序

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='1'THEN

IFI='0'THEN

WARN<='0';

ELSIF(I='1'ANDN<=19)THEN

WARN<=NOTWARN;

N<=N+1;

ELSE

WARN<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDBEHAVE;

2、仿真图

(五)译码模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYYMQIS

PORT(AIN4:

INSTD_LOGIC_VECTOR(3DOWNTO0);

DOUT7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDYMQ;

ARCHITECTUREARTOFYMQIS

BEGIN

PROCESS(AIN4)

BEGIN

CASEAIN4IS

WHEN"0000"=>DOUT7<="1111110";--0

WHEN"0001"=>DOUT7<="0110000";--1

WHEN"0010"=>DOUT7<="1101101";--2

WHEN"0011"=>DOUT7<="1111001";--3

WHEN"0100"=>DOUT7<="0110011";--4

WHEN"0101"=>DOUT7<="1011011";--5

WHEN"0110"=>DOUT7<="1011111";--6

WHEN"0111"=>DOUT7<="1110000";--7

WHEN"1000"=>DOUT7<="1111111";--8

WHEN"1001"=>DOUT7<="1111011";--9

WHENOTHERS=>DOUT7<="0000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

2、仿真图

 

(六)主电路连线图

1、主图

2、仿真图

 

(七)将程序下载到芯片FLEX—EPF10LC84-3上,引脚图如下

四、器件编程与下载

将编译好的模块程序下载到CPLD中(注:

DEVICE选取要与硬件对应,否则会导致实验失败),连线做硬件实验。

五、性能测试与分析

按下RST键清零,按下STOP察数码管是否开始倒计时,按下S0,观察数码管是否显示1和抢答的时间,再按S1,S2.S3均不改变显示,按下RST键,观察是否清零,再按STOP,不做抢答,直到计时时间到,观察是否显示00,扬声器是否发出报警。

六、实验设备

计算机,EL教学实验箱

七、心得体会

我们的课设题目是四路锁存器,在这次EDA实践课程中,我对EDA有了更进一步的了解。

通过对MUX-PLUSII的使用,让我加深理解了VHDL程序设计的步骤和原理。

从原理入手,首先要分析它的功能和原理,然后是分析都需要那些模块,最后是分块编写。

之中最重要的一步是分析前人的实例,找出不足和和需要改进之处。

然后查找资料,编写每一块的程序。

并且及时的进行功能仿真。

只是学习关键一步,在这步中学习编程的思想和功能。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来。

纸上谈兵是不行的,只有在亲自实践是时候才能发现更多的问题,解决这些问题,才是学习的关键所在。

编写程序是一定要思路清晰,一步一步来,不可急于求成,在遵守规则并有章可循的前提下,大胆发挥勇于尝试,对于出现的错误一定要研究不可放过,此时放过下次还会出现。

不断总结才能不断进步。

在验收时老师的一个题目让我很上火——因为一个错误,后来上网查才知道是类型转换的问题。

STD_LOGIC类型和整型不能参与运算,必须加上STD_LOGIC_UNSIGNED程序包。

所以懂得游戏规则很重要。

最后自己写程序收获最大,详细情况自己体会。

切记!

八、参考文献

[1]、李国洪,沈明山:

《可编程逻辑器件EDA技术与实践》,机械工业出版社

[2]、江国强:

《EDA技术习题与实验》,电子工业出版社

[3]、曹昕燕,周风臣,聂春燕:

《EDA技术试验与课程设计》,清华大学出版社

[4]、黄仁欣:

《EDA技术实用教程》,清华大学出版社

[5]、王振红:

《数字电路设计与应用实践教程》,机械工业出版社

 

指导教师评语及设计成绩

评语

 

 

课程设计成绩:

指导教师:

日期:

年月日

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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