基于EDA的智能抢答器.doc

上传人:s9****2 文档编号:551180785 上传时间:2023-09-05 格式:DOC 页数:22 大小:376.50KB
返回 下载 相关 举报
基于EDA的智能抢答器.doc_第1页
第1页 / 共22页
基于EDA的智能抢答器.doc_第2页
第2页 / 共22页
基于EDA的智能抢答器.doc_第3页
第3页 / 共22页
基于EDA的智能抢答器.doc_第4页
第4页 / 共22页
基于EDA的智能抢答器.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于EDA的智能抢答器.doc》由会员分享,可在线阅读,更多相关《基于EDA的智能抢答器.doc(22页珍藏版)》请在金锄头文库上搜索。

1、江西理工大学应用科学学院SOPC/EDA综合课程设计报告设计题目: 智能抢答器设 计 者: 学 号: 班 级: 指导老师: 完成时间: 设计报告综合测试总评格式(10)内容(40)图表(10)答辩(20)平时(20)2 目录第一章2智能抢答器设计2第一节: 基于VHDL智能抢答器21.1.0 设计要求21.1.1 设计分析与设计思路3第二章3抢答器各模块的设计与实现3第一节: 系统结构分析32.1.0 模块分析3第二节: 抢答鉴别模块42.1.1 抢答鉴别模块QDJB4第三节: 计时模块62.1.2 计时模块JSQ6第四节: 记分模块82.1.3 记分模块JFQ8第五节: 译码显示模块102.

2、1.4 译码器显示模块YMQ10第六节: 系统元件例化122.1.5 元件例化12第三章14采用动态显示14第一节: 抢答鉴别功能14第二节: 记时功能15第三节: 记分功能17第四节: 整体设计19第四章 实习总结214.1 总结:214.2参考文献22第一章 智能抢答器设计第一节: 基于VHDL智能抢答器在许多比赛活动中,为了准确 公正 直观地判断出第一抢答者,通常设置一台抢答器,通过数显 灯光及音响等多种手段指示出第一抢答者。同时还可以设置计时 记分 犯规及奖励记录等多种功能。1.1.0 设计要求:在抢答比赛中,为了公平起见一般要求系统具备以下功能:1) 设计制作一个可容纳四组参赛者的数

3、字智力抢答器,每组设置一个抢答按钮供抢答者使用。2) 第一抢答信号的鉴别和锁存功能。3) 设置计时功能。4) 设置记分功能。5) 数码显示功能。1.1.1 设计分析与设计思路:1) 抢答器同时供4名选手或4个代表队比赛,抢答按钮分别用A B C D 表示,A B C D为高电平则表示相应的按钮被按下。2) 系统清零信号CLR,系统时钟信号CLK,记分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA; TB。3) 系统的输出信号有:四组抢答成功与否的指示灯控制信号输出口 LEDA;LEDB;LEDC;LEDD,四个组抢答时的计时数码显示控制信号,抢答

4、成功组别显示的控制信号若干,各组记分动态显示的控制信号若干。4) 本系统应具有的功能有:第一抢答信号的鉴别和锁存功能,抢答计时功能,各组得分的累加和动态显示功能,抢答犯规记录功能。第二章抢答器各模块的设计与实现第一节: 系统结构分析2.1.0 模块分析:根据抢答器的功能要求,可以得出下图所示的模块结构图。其中,抢答模块(QDJB)为整个程序的核心,它实现了系统的抢答器线路测试功能. 第一抢答信号的鉴别和锁存功能等其它功能;计分模块(JFQ)实现计分功能;计时模块(JSQ)则具有倒计时及计时完毕功能;显示模块(YMQ)具有数码显示分数功能。 图2.1.0 抢答器系统结构 原理分析:将电路分为三个

5、主要模块:抢答鉴别模块QDJB;计时模块JSQ;记分模块JFQ。可用静态显示,使用4个数码管,两个显示计时,一个显示组别,一个显示分数。第二节: 抢答鉴别模块2.1.1 抢答鉴别模块QDJB各组的抢答输入信号A B C D的排列组合在理论上应该有16种可能情况,但实际上由于芯片的反应速度快到一定的程度时,两组以上同时抢答成功的可能性很小,所以设计时可只考虑A B C D分别抢答成功的四种情况。其VHDL源程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT(CLR: IN STD_LOGIC; A, B, C,

6、D: IN STD_LOGIC;-4个组 A1,B1,C1,D1: OUT STD_LOGIC; STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY QDJB; ARCHITECTURE ART OF QDJB ISsignal a_1,b_1,c_1,d_1: STD_LOGIC; BEGIN PROCESS(CLR,A,B,C,D) IS BEGINIF CLR=1 THEN STATES=0000;a_1=0;b_1=0;c_1=0;d_1=0;-清零ELSIF a_1=1 or b_1=1 or c_1=1 or d_1=1 the

7、n null;-锁存,当有一组选中时其他组再抢答没作用ELSIF a=1 then a_1=1;STATES =0001;ELSIF b=1 then b_1=1;STATES =0010;ELSIF c=1 then c_1=1;STATES =0011;ELSIF d=1 then d_1=1;STATES =0100;END IF;a1=a_1;b1=b_1;c1=c_1;d1=d_1; END PROCESS; END ARCHITECTURE ART;图2.2.0 抢答鉴别模块(QDJB)仿真波形 图2.2.1 抢答鉴别模块(QDJB)框图第三节: 计时模块2.1.2 计时模块JSQ

8、本系统的计时器电路既有计时初始值的预置功能,又有减计数功能。其中,初始值的预置功能是将两位数分解成两个数分别进行预置。其VHDL源程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ IS PORT(CLR,LDN,EN,CLK: IN STD_LOGIC; TA,TB:IN STD_LOGIC_vector(3 DOWNTO 0); QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -ge wei QB:OUT STD_LOGIC_VECT

9、OR(3 DOWNTO 0); -shi weiEND ENTITY JSQ; ARCHITECTURE ART OF JSQ IS BEGIN PROCESS(CLK) IS VARIABLE TMPA:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE TMPB:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLR=1 THEN TMPA:=0000; TMPB:=0110; -清零,倒计时60秒 ELSIF CLKEVENT AND CLK=1 THEN IF LDN=1 THEN TMPA:=tA; TMPB:=tB; -置数控

10、制,如果不想要60可以从TA,TB输入倒计时秒数 ELSIF EN=1 THEN-计时开始 IF TMPA=0000 THEN-遇到9则自动变为0,否则减一 TMPA:=1001; IF TMPB=0000 THEN TMPB:=0110; ELSE TMPB:=TMPB-1; END IF; ELSE TMPA:=TMPA-1; END IF; END IF; END IF; QA=TMPA; QB=TMPB; END PROCESS; END ARCHITECTURE ART;图2.3.0 计时模块(JSQ)仿真波形 图2.3.1 计时模块(JSQ)仿真波形框图第四节: 记分模块2.1.3

11、 记分模块JFQ 抢答计分电路的设计一般按一定数制进行加减即可,但随着计数数目的增加,要将计数数目分解成十进制并进行译码显示会变得较为复杂。为了避免该种情况,通常是将一个大的进制分解为数个十进只以内的进制数,并将计数器级联。但随着数位的增加,电路的接口也会相应增加。因此,本设计采用IF语句从低往高判断是否有进位,以采取响应的操作,既减少了接口,又简化了设计。其VHDL源程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JFQ IS PORT(RST: IN STD_LO

12、GIC; ADD: IN STD_LOGIC; CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); OUT1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JFQ ; ARCHITECTURE ART OF JFQ IS BEGIN PROCESS(RST,ADD,CHOS) IS VARIABLE POINTS_A0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_B0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_C0: ST

13、D_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_D0: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (ADDEVENT AND ADD=1) THEN IF RST=1 THEN POINTS_A0:=0000; POINTS_B0:=0000; POINTS_C0:=0000; POINTS_D0:=0000; ELSIF CHOS=0001 THEN IF POINTS_A0=1001 THEN POINTS_A0:=0000; ELSE POINTS_A0:=POINTS_A0+1; END IF; ELSIF CHOS=0010 THEN IF POINTS_B0=1001 THEN POINTS_B0:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号