EDA课设 竞赛抢答器_第1页
EDA课设 竞赛抢答器_第2页
EDA课设 竞赛抢答器_第3页
EDA课设 竞赛抢答器_第4页
EDA课设 竞赛抢答器_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程设计课程名称: EDA技术与FPGA应用设计 课设题目: 竞赛抢答器 实验地点: 电机馆跨越机房 专业班级: 电信1201班 学 号: 2012001422 学生姓名: 指导教师: 张文爱 2015 年 7 月 4 日基于VHDL的竞赛抢答器 一、 抢答器系统设计要求 一台功能完善的智能抢答器,必须能够准确判断出第一位抢答者,并且通过数显、蜂鸣这些途径能让人们很容易得知谁是抢答成功者,并设置一定的回答限制时间,让抢答者在规定时间内答题,主持人根据答题结果实行增减分的操作,并将分数显示在屏幕上。所以我们在设计智能抢答器的模块需要满足鉴别、计时、计分、数显等功能,具体设计要求如下: (1)抢

2、答器可容纳四组选手,并为每组选手设置一个按钮供抢答者使用;为主持人设置一个控制按钮,用来控制系统清零(组别显示数码管灭灯)和抢答开始; (2)电路具有对第一抢答信号的锁存、鉴别等功能。在主持人将系统复位并发出抢答指令后,提示抢答开始,计时显示器显示初始时间并开始倒计时,若参赛选手按下抢答按钮,则该组别的信号立即被锁存,并在组别显示器上显示该组别,同时扬声器也给出音响提示,此时,电路具备自锁功能,使其他抢答按钮不起作用。 (3)如果无人抢答,计时器倒计时到零,主持人可以按复位键,开始新一轮的抢答。 (4)抢答器具有限时抢答的功能,且一次抢答的时间由主持人设定,本抢答时间设定为60秒。当主持人启动

3、开始键后,要求计时器采用倒计时。 (5)参赛选手在设定的时间内抢答,则抢答有效,定时器停止工作,主持人根据抢答结果给出分数,并由数码管显示选手的组别、抢答分数,并一直保持到主持人将系统清零为止。二、系统总体设计思想 本设计为四路智能抢答器,所以这种抢答器要求有四路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数显和蜂鸣等方式显示出组别;对回答问题所用的时间进行计时、显示、超时报警、预置答题时间,同时该系统还应有复位、倒计时启动功能。抢答过程:主持人按下系统复位键(RST),系统进入抢答状态,计时模块输出初始信号给数码显示模块并显示出初始值。当某参赛组抢先将抢答键按下时,系统将其余三

4、路抢答信号封锁,同时扬声器发出声音提示,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。主持人对抢答结果进行确认,随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。计时至0时,停止计时,扬声器发出超时报警信号,以中止未回答完问题。当主持人给出倒计时停止信号时,扬声器停止鸣叫。若参赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号,以免扬声器鸣叫。主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始

5、新的一轮的抢答。此抢答器的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。 图3-1系统的总体框图三、子模块的设计思想和实现 根据对抢答器的功能要求,把要设计的系统划分为五个功能模块:抢答信号鉴别模块、计时模块、计分模块、数码显示模块和扬声器控制电路,具体的说,显示模块又包含最先抢答的组别显示电路、计时值显示电路和计分显示电路。【8】3.1 鉴别模块的设计与实现抢答鉴别模块用来准确直观地判断A、B、C、D四组抢答者谁最先按下按钮,并为显示端送出信号,通过数显和蜂鸣等途径使观众能够清楚地知道是哪一组抢答成功,

6、是整个系统的核心部分。同时组别显示端为下一模块输入信号,以方便主持人为该组抢答成功者进行加减分的操作。 抢答鉴别模块的元件图如下图所示: 图3-2 鉴别模块元件框图 引脚作用:输入信号:各组的抢答按钮A、B、C、D,系统清零信号INI。输出信号: 各组的抢答按钮显示端A1、B1、C1、D1,组别显示端G3.0。原理:第一个按下键的小组,抢答信号判定电路LOCK通过缓冲输出信号的反馈将本参赛组抢先按下按键的信号锁存,并且以异步清零的方式将其他参赛组的锁存器清零,组别显示、计时和计分会保存到主持人对系统进行清零操作时为止。当INI=1时系统复位,使组别显示信号G=0000,各组的指示灯信号A1=0

7、,B1=0,C1=0,D1=0;当INI=0,即低电平有效,使其进入抢答鉴别状态,到CLK的上升沿到来时,以A组抢答成功为例,当输入信号为A=1,B=0,C=0,D=0,输出信号G=1000,A1=1,即为鉴别出A组抢答成功,同时屏蔽其他组的输入信号,以免发生错误。同理其他组别抢答成功也是这样的鉴别过程。【9】备注:理论上来说,A、B、C、D四组抢答,应该有从00001111等16种可能情况,但是由于时钟信号的频率很高而且是在时钟信号上升沿的状况下才做出的鉴别,所以在这里两组以上同时抢答成功的可能性非常小,因此可以只设计四种情况,即A、B、C、D分别为1000、0100、0010、0001,这

8、大大简化了电路的设计复杂性。 其用VHDL语言进行编程的流程图如下图所示: 图3-3 抢答鉴别模块的流程图3.2 计时模块的设计与实现当抢答鉴别模块成功判别出最先按下抢答按钮的参赛组后,在成功鉴别出哪组最先抢答后,主持人按下计时信号,则进入计时状态。计时模块可分作两部分:(1)预置数;(2)60秒倒计时。60秒时间用两个数码管QA,QB显示,其中QA表示60秒的个位,QB表示60秒的十位。计时模块开始工作从预置初始值开始以秒计时,计时至0秒时停止,时间耗尽时,扬声器会发出超时报警信号,以中止答题。 图3-4 计时模块的元件图该系统输入信号有:系统清零信号CLR,计时预置控制端LDN,计时使能端

9、EN,系统时钟信号CLK,计时预置数据调整按钮TA、TB。系统输出信号有:倒计时输出端QA3.0、QB3.0。当清零信号CLR=1时,模块输出信号QA=0000 ,QB=0000。当预置数控制信号LDN=1可通过TA来调整QA,TA来一次高电平,则QA的数值就加1;用TB来调整QB,通过这两个调整信号可调整参赛者答题所需要的时间。在CLR=0,LDN=0,EN=1时,通过时钟信号CLK的上升沿来进行60秒到计时。 3.3 译码显示模块的设计与实现该模块实际上是一个译码器,作用是用来显示组别,时间和成绩,其主要原理是四位二进制BCD编码转换成七段二进制数字,以阿拉伯数字的形式输出在数码管上,使观

10、众能够更直观的看到结果。3.4 抢答器的系统实现单独模块只有彼此联系起来构成一个完整的系统,才能实现其功能,这个过程有两种实现方法:元件例化。也是用编程的方式将它们各个程序、信号、输入输出之间的关系用VHDL语言来叙述清楚,还关系到程序的调用问题,需要设计者思路清晰,设计合理;元器件图示连线。这种连线方法思路清晰可见,而且用的时候很简单方便,出现错误也很好检查。在设计中选择的是这种方法。通过总的顶层元件图可以很清晰的看到模块连接的原理。图3-8 顶层元件图四、课程程序1、抢答鉴别模块VHDL程序(QDJB.VHD)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.AL

11、L; ENTITY QDJB IS PORT (CLR: IN STD_LOGIC; CLK: IN STD_LOGIC; A, B, C, D: IN STD_LOGIC; A1, B1, C1, D1: OUT STD_LOGIC; G: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); END QDJB; ARCHITECTURE ART OF QDJB IS CONSTANT W1: STD_LOGIC_VECTOR:=0001; CONSTANT W2: STD_LOGIC_VECTOR:=0010; CONSTANT W3: STD_LOGIC_VECTOR:=

12、0100; CONSTANT W4: STD_LOGIC_VECTOR:=1000; BEGIN PROCESS (CLR, A, B, C, D) BEGINIF CLR=1 THEN G=0000; ELSIF (A=1AND B=0AND C=0AND D=0) THEN A1=1; B1=0; C1=0; D1=0; G=W1; ELSIF (A=0AND B=1AND C=0AND D=0) THEN A1=0; B1=1; C1=0; D1=0; G=W2; ELSIF (A=0AND B=0AND C=1AND D=0) THEN A1=0; B1 =0; C1=1; D1=0;

13、 G=W3; ELSIF (A=0AND B=0AND C=0AND D=1) THEN A1=0; B1 =0; C1=0; D1=1; G=W4; END IF; END PROCESS; END ART;2、 抢答计时模块VHDL程序(JSQ.VHD)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; QA: OUT STD_LOGIC_VE

14、CTOR (3 DOWNTO 0); QB: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); END JSQ; ARCHITECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL DB: STD_LOGIC_VECTOR (3 DOWNTO 0); BEGIN PROCESS (TA,TB,CLR) BEGIN IF CLR=1 THEN DA=0000; DB=0000; ELSE IF TA=1 THEN ; DA=DA+0001 ; END IF; IF TB=1 THEN DB=D

15、B+0001; END IF; END IF; END PROCESS; PROCESS (CLK) 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; ELSIF CLKEVENT AND CLK=1 THEN IF LDN=1 THEN TMPA:=DA;TMPB:=DB; ELSIF EN=1 THEN IF TMPA=0000 THEN TMPA:=1001; IF T

16、MPB=0000 THEN TMPB:=0110; ELSE TMPB:=TMPB-0001; END IF; ELSE TMPA:=TMPA-0001; END IF; END IF; END IF; QA=TMPA; QBDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS; END ART;五、 抢答器子模块的仿真验证及结果本课程设计在满足课设要求,另外还有可以对倒计时时间进行调整,这是课程设计自己加的东西。电路图引脚分配综合分析完成下载完成实物结果 (图中为第一个人抢

17、答成功,53为时间,中间为二进制加分led灯)5.1鉴别模块的仿真验证 进行编译,综合,仿真,时序图如下:图5-1鉴别模块的仿真时序引脚作用: 系统输入信号:各组的抢答按钮A、B、C、D,系统清零信号CLR,CLK时钟信号。 系统的输出信号: 各组的抢答按钮显示端A1、B1、C1、D1,组别显示端控制信号G3.0。仿真分析: 当鉴别模块的清零信号CLR为高电平时,无论A、B、C、D四组参赛者谁按下抢答按钮,系统输出均为零,同时组别显示端G输出信号也显示为零;当清零信号CLR为低电平时,A、B、C、D四组参赛者谁先按下抢答按钮,组别显示端就显示该组别的号码。假如C组按下抢答按钮时,组别输出为00

18、10,同时C组的显示灯被点亮。仿真图上显示的为A先抢答,因为在0-1.28微秒之间A、C虽然都按抢答键,但CLR为有效状态,所以在此时间段内的抢答无效。5.2计时模块的仿真验证进行编译,综合,仿真,时序图如下: 图5-2 计时模块的仿真时序图引脚作用: 系统输入信号:系统清零信号CLR,计时预置控制端LDN,计时使能端EN,系统时钟信号CLK,计时预置数据调整按钮TA、TB。系统输出信号:倒计时输出端QA3.0、QB3.0。 仿真分析:当系统清零信号CLR=1时,计时器的时钟信号回到计时预置倒计时起始状态,此时倒计时输出端QA=0000,QB=0000.当计时使能端EN=0,计时预置控制端LDN=1时,通过计时预置数据调整按钮TA、TB进行预制数,并且通过TA,TB来调整QA,QB即当TA=1时,则QA的数值加1,当TB=1时,则QB的数值也加1。当计时使能端EN=1,系统清零信号CLR=0,并且计时预置控制端LDN=0时,通过时钟信号上升沿CLK来进行60秒倒计时。5.3数显模块的仿真验证 进行编译,综合,仿真,时序图如下: 图5-3数显模块的仿真时序图引脚作用: 输入信号:AIN4; 输出信号:DOUT7。仿真分析: 当AIN4= 0000 , DOUT7输出1111110,此时数码管显示0; 当AIN4= 0001 , DOUT7输出011000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论