8路抢答器基于fpga_第1页
8路抢答器基于fpga_第2页
8路抢答器基于fpga_第3页
8路抢答器基于fpga_第4页
8路抢答器基于fpga_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、基于FPGA的多路数字抢答器的设计摘要:本文主要介绍了以FPGA为基础的八路数字抢答器的设计,首先对各模块的功能进行分配,此次设计主要有七个模块,依次为分频模块、抢答模块、加减分模块、倒计时模块、设置倒计时模块、蜂鸣器模块和数字显示模块。主持人按下开始键可以实现抢答开始,选手号的显示,加减分模块,积分的显示,积分的重置,并启动倒计时模块;若有选手犯规或者倒计时记到五秒,停止倒计时,开启蜂鸣器,并为进入加减分模块做准备。此次设计程序用Quartus II12.0为软件开发平台,用Verilog语言来编写,使用模块化编程思想,自上向下,通过寄存器变量来控制各个模块的运行。本次设计采用FPGA来增强

2、时序的灵活性,由于FPGA的I/O端口资源丰富,可以在此基础上稍加修改可以增加很多其他功能的抢答器,因此后期可塑性很强,因为核心是FPGA芯片,外围电路比较简单,可靠性强、运算速度高,因此便于维护,并且维护费用低。关键词:FPGA、抢答器、倒计时、犯规报警、加减分、显示目 录第一章 绪论.1第二章 FPGA原理及相关开发工具软件的介绍32.1 FPGA的简介.32.1.1 FPGA的发展与趋势.32.1.2 FPGA的工作原理及基本特点42.1.3 FPGA的开发流程.52.1.4 FPGA的配置.62.2 软件介绍.72.2.1 Verilog HDL的介绍.72.2.2 Quartus I

3、I软件.8第三章 数字抢答器系统设计方案和主要模块113.1 功能描述及设计架构.113.2 抢答器程序流程图以及各模块代码分析133.2.1 抢答器程序结构及主程序流程图133.2.2 秒分频模块153.2.3 倒计时以及倒计时剩5S时报警模块173.2.4 倒计时显示及倒数计时设置显示模块.203.2.5 选手号显示及违规报警模块.263.2.6 倒计时设置模块.303.2.7 顶层模块.353.3 硬件电路373.31 按键电路图.383.32 数码管显示电路图.383.32 蜂鸣器电路图.39第四章 管脚分配及功能.40第五章 总 结.41参考文献43第一章绪论1.1 课题研究背景子标

4、题用宋体小四号黑体随着社会的发展,各种竞赛比赛日益增多,抢答器以它的方便快捷、直观反映首先取得发言权的选手等优点,深受比赛各方的辛睐,市场前景一片大好。另一方面随着电子科技的发展,抢答器的功能以及实现方式也越来越多,产品的可靠性以及准确性也越来越强。能够实现多路抢答器功能的方式有很多种,主要包括前期的数字电路、模拟电路以及数字电路与模拟电路组合的方式,但是这种方式制作过程比较复杂,并且可靠性准确性不高,研发周期也比较长。目前对于抢答器的功能描述,如涵盖抢答器、选手答题计时、限时抢答以及犯规组号抢答器具有抢答自锁,暂停复位、电子音乐报声、灯光指示、自动定时等功能,还有工作模式的切换和时间设定,对

5、于这些随着科学技术的发展,肯定还要得到进一步的改进。发展趋势一般都要趋向于智能化,并且设计更加合理化。1.2 研究内容及意义通过抢答器的使用,可以在各类比赛中特别是抢答环节,直观明了的看出是哪一组抢到了题目,比起通过肉眼来判断,更加的精确,同时也少了不必要的纷争,使得比赛更加的公平、公开、公正。抢答器的这些优点使得它在比赛中得以广泛的应用。抢答器经过发展从最初的只有几个三极管、可控硅、发光管等组成, 能通过发光管的指示辨认出选手号码;到现在使用高速处理芯片和集成数字电路;从起初单片机到现在的ARM和FPGA,技术手段进一步成熟,同时技术的发展也为抢答器增加了很多更加贴近比赛的新功能,如选手号码

6、显示、倒计时、选手得分显示等等。这类抢答器制作并不复杂,但是准确度和可靠性都比较可观,并且易于安装和维护。第二章FPGA原理及相关开发工具软件的介绍2.1FPGA的简介2.1.1FPGA的发展与趋势现场可编程门阵列FPGA(FieldProgrammable Gate Array),它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA

7、上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们

8、也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。2.1.2FPGA的工作原理及基本特点FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个

9、部分。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,F

10、PGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。2.1.3FPGA的开发流程FPGA开发流程可以分为如下几步:设计输入,设计输入主要包括原理图输入、状态图输入、波形图输入以及某种硬件描述语言,比如说是Verilog、VHDL的源程序(此次设计主要是使用Veril

11、og)。它是利用这些输入去描述一个电路的功能。功能仿真,功能仿真就是利用相关仿真工具对相关电路进行功能仿真,也就是对你的输入设计的逻辑功能进行相关的模拟测试。从功能上来了解电路是否能够达到预期要求。这里的功能仿真纯粹是模拟性质的,不会设计的任何具体器件的硬件特性。综合,综合就是行为或者功能层次表达的电子系统转换成低层次门级电路的网表。布局布线,就是将综合后的网表文件针对某一个具体的目标器件进行逻辑映射。此时应该使用FPGA厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。时序验证,就是要使得时序仿真过程中,建立与保持时间要符合相关的制约,以便数据能被正确的

12、传输。使仿真既包含门延时,又包含线延时信息。能较好地反映芯片的实际工作情况。生成SOF等文件,此文件可以通过调试器把它下载到系统中间去。而FPGA设计流程的其他步骤基本上由相关工具去完成,因此只要自己设置好相关参数,不要人为干预太多。而验证的话就需要用户花费大量的时间去完成。2.1.4FPGA的配置FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行

13、设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。例如,领先FPGA厂商Xilinx最近推出的Virtex-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。超大容量和密度使复杂的布线变得更加不可预测,由此带来更严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。幸运地是

14、,FPGA厂商、EDA工具供应商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity与Xilinx宣布成立超大容量时序收敛联合工作小组,旨在最大程度地帮助系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供应商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。最近FPGA的配置方式已经多元化! FPGA主要生产厂商:1、Altera 2、Xilinx 3、Actel4、Lattice 其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反

15、熔丝工艺和FLASH工艺。2.2软件介绍2.2.1Verilog HDL的介绍Verilog HDL是在1983年有GDA(GateWay Design Automation)公司首创的一种硬件描述语言,用于数字电子系统设计。该语言可以让设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件语言。Verilog HDL作为一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog

16、HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。2.2.2Quartus II软件此次设计所使用的软件是Quartus II12.0,使用语言为verilog HDL。Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CP

17、LD集成开发环境MAX+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成设计输入、HDL综合、布线布局(适配)、仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera的Quartus II 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为AlteraDSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verylog的设计流程,其内部嵌有VHDL、Verilog逻

18、辑综合器。Quartus II也可以利用第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA Complier II,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外,Quartus II与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。Quartus II包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、适配器(Filter)、装配器(Assembler)、时序分析器(T

19、iming Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)和编辑数据接口(Complier Database Interface)等。可以通过选择Start Complication来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Complier Tool(Tools 菜单),在Complier Tool 窗口中运行该模块来启动编辑器模块。在Complier Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。图七中所示的上排是Quartus II编译设计主

20、控界面,它显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。在图七下排的流程框图,是与上面的Quartus II设计流程相对照的标准的EDA开发流程。图2.1:Quartus II设计流程第三章数字抢答器系统设计方案和主要模块3.1功能描述及设计架构此次设计设计了一个基于FPGA芯片的数字抢答器:本抢答器有十三个按键以及主频时钟作为输入端,其中八个输入端为八个选手的抢答按键,剩下五个按键分别为主持人开始按键、主复位按键、倒计时复位按键、显示切换按键、倒计时设置按键。有三个数码管进行显示,

21、其中一个显示抢答者组号,另外两个个用来显示抢答剩余时间和显示抢答时间的设置,因为要复用这两个数码管,所以要用按键做一个显示切换。用蜂鸣器来提示是否有人犯规抢答,抢到题目时选手号用数码管显示该选手号,蜂鸣器也用作时间剩余五秒时的提示。开始抢答时,主持人宣布抢答开始,并按下开始抢答按键,各选手开始抢答,其中任意一组抢到题目,则电路进行自锁,其它各组再按按键即为无效,抢到题目后蜂鸣器响,作答结束后依据回答答案是否正确有主持人选择进入加减分模块,每个选手初始分数为五分,答对一道加一分,错一道减一分,不抢答则分数不加不扣。蜂鸣器报警模块LED倒计时显示模块设置倒计时显示模块时钟信号、重置信号抢 答 器选

22、手号显示模块抢答开始信号、各选手抢答信号抢答模块选手分数显示模块图3.1抢答器功能示意图抢答器的具体功能如下:1.抢答开始按键sk,此按键有主此人操控,在主持人宣布抢答开始后,按下此按键,各选手方可开始进行抢答,并显示相应选手号和回答剩余时间,当抢答时间剩余5s,给予响铃提示;2.如果主持人没有按下开始键而选手抢答,则视为犯规,并显示违规选手号和错误码,给予响声提示; 3. 主持人按结束键,可进行新一轮的抢答; 4. 抢答时间结束且无人抢答时,执行相应操作; 5. 可通过按键设置抢答时间和回答时间,抢答器具备限时抢答功能,限时时间可以自行设置为0-99秒。6.当主持人对分数进行加减完毕之后,在

23、对应的数码管上显示抢答者的分数,然后进入下一轮抢答。(该模块是创新模块)。此次设计以FPGA为基础设计数字抢答器,根据主要的功能设计要求,该设计主要包括抢答输入按键、数码管显示、加减分、倒计时和FPGA系统。抢答器的结构示意图如下:FPGA时钟信号按键输入电路数码管显示电路倒计时显示电路图3.2:抢答器结构示意图 设计中FPGA最小系统电路为FPGA可以正常工作时的基本电路,由时钟和复位电路组成(此次设计主控电路采用开发板的电路,只做了外围电路)。按键输入电路有十三个按键组成,选手号数码显示管有一个八段共阳极数码管组成。倒计时显示电路两个八段共阳共阳极数码管组成组成。3.2抢答器程序流程图以及

24、各模块分析3.2.1抢答器程序结构及主程序流程图本次设计中程序设计采用verilog HDL 语言进行编程,总体编程思路采用模块化编程方式,主要分为四个模块,一个主控制及按键输入模块,一个倒计时模块和蜂鸣器模块,一个抢答组号及积分显示模块,分别对这四个子模块进行独立编程设计,由于verilog HDL 语言是一种并行运行的语言,所以可以在同一个频率时钟脉冲下进行各模块的编写,最终在把各个模块整合在一起,所以FPGA的高速性能体现的尤为明显。3.2.2 整体电路框图如下选手号显示蜂鸣器抢答判断开始SK倒计时设置倒数计时显示加减分判断分数显示图3.3: 主程序流程图分频产生1s时钟模块设计思路:由

25、主频时钟clk1(主频时钟为50MHZ),通过分频产生1HZ的时钟,这个时钟主要是供秒计时显示用,即用于倒数计时显示模块综合后的端口配置图 倒计时以及倒计时剩5S时报警模块设计思路:主要是做一个简单的倒计时算法,倒计时的时间由倒计时设置模块给出,倒计时设置模块把设置后的时间用寄存器hour1存起来,最后赋给倒计时的hour。其次是做一个剩余五秒的报警,即当剩余五秒时,用一个if语句做判断,随后实现报警提示综合后的端口配置图倒计时显示及倒数计时设置显示模块设计思路:用于倒计时显示模块及倒数计时设置模块显示。这个模块要使硬件复用,即两个数码管既要显示倒计时的时间也要显示倒计时的设置时间。在此,用按

26、键kqh做了一个显示的切换,用if-else实现。未按下切换键则用于倒计时的正常显示,若按下切换键则用于倒计时的设置显示。综合后的端口配置图选手号显示及违规报警模块设计思路:显示选手号码以及选手违规时报警。这里也是要做一个显示的切换,用if-else实现。即按下开始键sk是正常的,此时正常显示,否则切换到违规时的显示并且报警综合后的端口配置图倒计时设置模块功能介绍:用if-else语句做一个简单的倒计时算法,可设置的时间范围是0-99s。将算得的结果用hour1存起来,供倒数计时模块的调用,最后将hour1的值赋给hour。另外需要注意的是,将倒计时设置的时钟调得小一些,便于更快速度的调好时间

27、。综合后的端口配置图顶层模块功能介绍:顶层模块主要是端口的定义以及子模块的调用。这里用了一个ALWAYS语句调用蜂鸣器,因为蜂鸣器有两个功能,分别是违规报警和剩余时间报警,所以在此用if语句做判断,实现蜂鸣器的两个不同功能。3.3 硬件电路图主控芯片是采用的是ALTERA公司的cyclone IV 型号为EP4CE30F23C7N。FPGA的主控电路由于资源问题,直接用学生本人的开发板。以下是一些简单的是外设驱动电路,过于简单所以就不多作介绍,仅将电路图给出3.3.1按键3.3.2数码管显示3.3.3蜂鸣器第四章表:FPGA开发板对应管脚号及功能表引脚名FPGA引脚号相应功能fmqM20蜂鸣器

28、K1H19一号抢答按键K2B21二号抢答按键K3J22三号抢答按键K4H18四号抢答按键K5F19五号抢答按键K6D20六号抢答按键K7D19七号抢答按键K8D17八号抢答按键CLK1T2250MHZ的时钟40MHZ的时钟倒计时设置复位按键显示切换按键倒数计时设置按键倒计时显示复位按键开始抢答按键CLK2G1daorstN7kqhN6ktT1rstG14SKF15sm_seg17J17选手号数码管a段sm_seg16K17选手号数码管b段sm_seg15N20选手号数码管c段sm_seg14N17选手号数码管d段sm_seg13P20选手号数码管e段sm_seg12K18选手号数码管f段sm_seg11K19选手号数码管

温馨提示

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

评论

0/150

提交评论