基于FPGA的四路抢答器.doc_第1页
基于FPGA的四路抢答器.doc_第2页
基于FPGA的四路抢答器.doc_第3页
基于FPGA的四路抢答器.doc_第4页
基于FPGA的四路抢答器.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

北 华 航 天 工 业 学 院EDA技术综合设计课程设计报告报告题目: 竞赛抢答器 作者所在系部: 电子工程系 作者所在专业: 电子信息工程 作者所在班级: B10212 作 者 姓 名 : 郭思华 指导教师姓名: 胡辉 完 成 时 间 : 2012-12-16 内 容 摘 要EDA技术是现代电子信息工程领域的一门新技术,他是先进的计算机工作平台上开发出来的一套电子系统设计的软硬件工具,并设计先进的电子系统设计方法。本文介绍了以FPGA为基础的四路抢答器的设计,此次设计是一个有4组抢答输入,并具有抢答计时控制,到时报警以及时间显示等功能的通用型抢答器。此次设计它以VHDL硬件描述为平台,结合动手实践完成。该抢答器分为五个模块:抢答模块、计时模块、选择模块,位循环模块和译码模块。利用Quartus工具软件完成率编译仿真验证。关键词EDA、可编程逻辑器件、计数器、显示器目 录一 概 述1二 方案设计与论证1三单元电路程序设计及其功能验证 2(一) 抢答锁存模块的设计 2(二) 计时模块的设计4 (三) 数据选择模块的设计5(四) 译码模块的设计 6(五) 位循环模块的设计8四 完整电路设计与分析9(一)主电路图 9(二)时序仿真图 9(三)芯片引脚分布图10五 性能测试与分析 10六 实验设备 10七 心得体会 10八 参考文献 11 课程设计任务书课题名称竞赛枪答器设计完成时间2012.12.16指导教师胡辉职称副教授学生姓名郭思华班 级B10212总体设计要求和技术要点总体设计要求: 通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。技术要点:抢答器同时供4名选手或4个代表队比赛,分别用4个按钮设计一个4路智力竞赛抢答器,具体设计要求如下:1.设置一个系统清除和抢答控制开关S,该开关由主持人控制。2抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。3. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。4. 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。 5. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。工作内容及时间进度安排工作内容:1、各模块编程及编译、波形仿真、整体电路的连接及仿真。2、下载到实验箱,验证结果。进度安排:14周周一到周五上机编写程序。 15周周六在实验室调试程序 周日下载验证,做硬件实验。课程设计成果1与设计内容对应的软件程序,时序仿真图,对应生成的逻辑器件。2课程设计报告书3成果使用说明书4设计工作量要求一、概述 抢答器主要由抢答模块、计时模块、选择模块,位循环模块和译码模块组成。在整个抢答器中主持人在抢答前设置好抢答时间,在复位开始按键按下后,抢答器开始倒计时,若在计时时间内无人抢答,则抢答器报警提示,若在计时过程中有人抢答,则数码管显示第一个抢答的人的编号,同时停止计时。抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。二、方案设计与论证将该任务分成五个模块进行设计,分别为:抢答器抢答模块、抢答器计时模块、位循环模块、译码模块和选择模块。设计过程: 在本次设计中,我先对整体要求进行了了解,然后根据要求将整个电路划分为 5个模块,并对这5个模块的功能进行了划分,然后依据各模块功能编写程序,并 对编写出的程序进行了编译以及时序仿真,若结果正确则继续进行下一个模块的编 写,若错误就进行修改直到结果正确。 将5个模块都编写完成之后,让这5个模块生成对应的器件,然后连接出完整 的电路进行编译及仿真,在没有错误后在实验箱上进行功能验证。方案论证:1、 抢答锁存模块;在这个模块中主要实现抢答过程中的抢答功能。在抢答开始后,当任意一路抢答器按下后,信号输入并进行锁存,这时其它抢答按键再按下也不起作用。此模块有A、B、C、D四路抢答输入信号;复位信号R;输出报警信号BJ;数据输出信号Y。2、 抢答器计时模块:在这个模块中主要实现抢答过程中的计时功能。在抢答开始主持人按下复位键后进行60秒的倒计时,并且在60秒倒计时后无人抢答显示超时并报警,若有选手抢答则计时停止,主持人也可以手动设置计时时间。此模块包含时钟信号CLK;系统复位信号R;修改时间使能信号EN;无人抢答警报信号BJ;有人抢答停止计时信号ST;时间设置输入十位和个位信号cg,cs;计时十位和个位输出信号SW,GW。3、 数据选择模块:在这个模块中主要实现抢答过程中的数据循环显示功能,通过SEL信号的循环输入,从而控制数码管的循环显示,利用人眼的视觉停留使人感觉数码管是同时常亮的。此模块包含输入显示位控制信号SEL;数据输入信号H,G,S;数据输出信号Z 。4、 译码模块: 在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。在本 次课设中主要用于对时间的个位、十位的数值进行相应的译码,使其在数码 管上能显示出正常数字。此模块包含输入信号SJ,输出信号Y。5、 位循环模块: 实现抢答过程中对数码管扫描显示位的控制。在本次课设中共利用了 三个数码管,所以将SEL设置在000,001,010三个数之间循环,使得数 码管仅显示后三位。此模块包含CLK控制信号,复位控制信号R,输出信 号SEL。三、单元电路程序设计及其功能验证(一)抢答锁存模块 1、VHDL源程序 LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY QDMK IS PORT(A,B,C,D:IN std_logic; R:IN std_logic; SIGNAL CLK:IN std_logic; BJ:OUT std_logic; Y:buffer std_logic_vector(6 DOWNTO 0); END QDMK; ARCHITECTURE behave OF QDMK IS BEGIN PROCESS(A,B,C,D,R,CLK) BEGIN IF R=1THEN Y=0000000; BJ=0; ELSIF CLKevent AND CLK=1THEN IF Y=0000000 THEN IF A=1 THEN Y=0110000; ELSIF B=1 THEN Y=1101101; ELSIF C=1 THEN Y=1111001; ELSIF D=1 THEN Y=0110011; END IF; ELSE NULL; END IF; BJ=A OR B OR C OR D; END IF; END PROCESS; END behave;2、仿真图由图中可看出在复位信号R从高电平降到低电平后,抢答器开始正常工作,A最先抢答,这时开始报警,数码管输出显示1,说明A最先抢答。(二)计时模块1、VHDL源程序LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY JS IS PORT(R,ST,EN,CLK:IN std_logic; cg,cs:IN std_logic_vector(3 DOWNTO 0); GW,SW:BUFFER std_logic_vector(3 DOWNTO 0); BJ:OUT std_logic);END JS;ARCHITECTURE behave OF JS ISBEGINPROCESS(R,EN,ST,CLK) BEGIN IF ST=0THEN IF R=1THEN IF EN=1THEN GW=cg; SW=cs; BJ=0; ELSE GW=0000; SW=0110; BJ=0; END IF; ELSIF CLKEVENT AND CLK=1THEN IF GW=0000THEN GW=1001; IF SW=0000THEN SW=0110; ELSE SW=SW-1; END IF; ELSE GW=GW-1; END IF; IF GW=0000AND SW=0000THEN GW=0000; SW=0110; BJ=1; END IF; END IF; ELSE BJ=0; END IF; END PROCESS;END behave;2、仿真图从图中可看出,在复位信号为1时,始能信号EN为1,这时计时时间改变为cs,cg中输入的06秒,在复位信号变为0后开始计时,在计时时间到达0时由于无人抢答(由停止信号ST控制),故产生报警信号开始报警。在停止信号为1后,停止计时,在停止信号为0时,计时再次开始。(三)数据选择模块1、VHDL源程序 LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY XZMK IS PORT(SEL:IN std_logic_vector(2 DOWNTO 0); H,S,G:IN std_logic_vector(6 DOWNTO 0); Z:OUT std_logic_vector(6 DOWNTO 0); END XZMK; ARCHITECTURE behave OF XZMK IS BEGIN WITH SEL SELECT ZYYYYYYYYYYY=0000000; END CASE; END PROCESS; END behave;2、仿真从图中可看出,本模块对输入的BCD码信号(SJ信号)进行了编译,输出信号Y,使其能在数码管上对应显示出相应的数值。(五)位循环模块1、VHDL源程序 LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY SEL IS PORT(CLK,R:IN std_logic; SEL:buffer std_logic_vector(2 DOWNTO 0); END SEL; ARCHITECTURE behave OF SEL IS BEGIN PROCESS(CLK,R) BEGIN IF R=1 THEN SEL=000; ELSIF CLKEVENT AND CLK=1THEN IF SEL=010THEN SEL=000; ELSE SEL=SEL+1; END IF; END IF; END PROCESS; END behave;2、仿真从图中看出,在复位开始信号为1时不工作,在为0后开始工作,SEL信号在0-2这三个数内随CLK信号的变化循环,实现数码管的循环显示。四、完整电路设计与分析(一)主电路图 下图为具有完整抢答器功能的结构图,其中用到了抢答模块一个,计时模块一个,译码模块两个,选择模块一个,位循环模块一个。共有17个输入,11个输出。(二)时序仿真图下图为整个模块的时序仿真图,由图中可看出,在复位信号为0后,抢答器开始工作,在有抢答信号后抢答器报警,数码管轮流显示计时时间及最先抢答的抢答器对应的号码。 (三)芯片引脚分布图下图为将程序下载到芯片前设置的引脚分布。五、性能测试与分析将R键拨到0观察数码管是否开始从60倒计时,然后再将R键拨回1,之后将使能信号EN拨至1,将cs,cg设置为想要输入的时间,然后将R拨至0,观察数码管是否显示修改过之后的时间,并从设置好的时间开始计时。在计时功能验证完成后,按下抢答信号,此时抢答器发出警报声,并在数码管上显示出最先抢答的组对应的编号,说明抢答器功能正常。六、实验设备装有Quartus的计算机,教学实验箱,导线若干。七、心得体会在EDA技术中最为瞩目的是以现代电子技术为特征的逻辑设计仿真测试技术。该技术只需要通过计算机就能对所设计的电子系统从不同层次的性能特点上,进行一系列准确的测试和仿真,大大的方便了我们的设计,避免了受现实中有限的器件的限制。在本次课设中,我做的是四路抢答器。在最开始的一个礼拜,我先是从网络上找到了类似题目的课程设计,参考并阅读了他人的程序,然后再在电脑上按模块编写成序,编写完成后进行了仿真。在编写程序的过程中,我发现自己在对VHDL语言的掌握上还有很多欠缺,程序也是经过了许多遍的修改之后,才做到了在尽可能简练的基础上将功能完整实施出来。在自

温馨提示

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

评论

0/150

提交评论