基于FPGA的多路数字抢答器的设计_第1页
基于FPGA的多路数字抢答器的设计_第2页
基于FPGA的多路数字抢答器的设计_第3页
基于FPGA的多路数字抢答器的设计_第4页
基于FPGA的多路数字抢答器的设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

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

2、PGA来增强时序的灵活性,由于FPGA的I/O端口资源丰富,可以在此根底上稍加修改可以增加很多其他功能的抢答器,因此后期可塑性很强,因为核心是FPGA芯片,外围电路比拟简单,可靠性强、运算速度高,因此便于维护,并且维护费用低。关键词:FPGA、抢答器、倒计时、犯规报警、加减分、显示目录TOC o 1-3 h u HYPERLINK l _Toc7235 第一章 绪论 PAGEREF _Toc7235 1 HYPERLINK l _Toc22417 第二章 FPGA原理及相关开发工具软件的介绍 PAGEREF _Toc22417 3 HYPERLINK l _Toc28105 2.1 FPGA的

3、简介 PAGEREF _Toc28105 3 HYPERLINK l _Toc21226 2.1.1 FPGA的开展与趋势 PAGEREF _Toc21226 3 HYPERLINK l _Toc27546 2.1.2 FPGA的工作原理及根本特点 PAGEREF _Toc27546 4 HYPERLINK l _Toc19198 2.1.3 FPGA的开发流程. PAGEREF _Toc19198 5 HYPERLINK l _Toc27500 2.1.4 FPGA的配置. PAGEREF _Toc27500 6 HYPERLINK l _Toc23939 2.2 软件介绍 PAGEREF

4、_Toc23939 7 HYPERLINK l _Toc8073 2.2.1 Verilog HDL的介绍 PAGEREF _Toc8073 7 HYPERLINK l _Toc6472 2.2.2 Quartus II软件 PAGEREF _Toc6472 8 HYPERLINK l _Toc4745 第三章 数字抢答器系统设计方案和主要模块 PAGEREF _Toc4745 11 HYPERLINK l _Toc16765 3.1 功能描述及设计架构 PAGEREF _Toc16765 11 HYPERLINK l _Toc14827 3.2 抢答器程序流程图以及各模块代码分析 PAGER

5、EF _Toc14827 13 HYPERLINK l _Toc108 3.2.1 抢答器程序构造及主程序流程图 PAGEREF _Toc108 13 HYPERLINK l _Toc7799 3.2.2 秒分频模块15 HYPERLINK l _Toc11487 倒计时以及倒计时剩5S时报警模块 PAGEREF _Toc11487 17 HYPERLINK l _Toc20608 倒计时显示及倒数计时设置显示模块20 HYPERLINK l _Toc8127 选手号显示及违规报警模块26 HYPERLINK l _Toc20365 倒计时设置模块30 HYPERLINK l _Toc2036

6、5 顶层模块35 HYPERLINK l _Toc17334 3.3 硬件电路37 HYPERLINK l _Toc2030 3.31 按键电路图38 HYPERLINK l _Toc5852 3.32 数码管显示电路图38 HYPERLINK l _Toc5852 3.32 蜂鸣器电路图39第四章 管脚分配及功能40 HYPERLINK l _Toc22189 第五章 总 结41 HYPERLINK l _Toc4321 参考文献4 PAGEREF _Toc4321 3第一章绪论1.1 课题研究背景子标题用宋体小四号黑体子标题用宋体小四号黑体随着社会的开展,各种竞赛比赛日益增多,抢答器以它的

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

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

9、比拟可观,并且易于安装和维护。第二章FPGA原理及相关开发工具软件的介绍2.1FPGA的简介2.1.1FPGA的开展与趋势现场可编程门阵列FPGAFieldProgrammable Gate Array,它是在PAL、GAL、CPLD等可编程器件的根底上进一步开展的产物。它是作为专用集成电路ASIC领域中的一种半定制电路而出现的,既解决了定制电路的缺乏,又克制了原有可编程器件门电路数有限的缺点。目前以硬件描述语言Verilog 或 VHDL所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进展测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些根本的逻辑

10、门电路比方AND、OR、*OR、NOT或者更复杂一些的组合功能比方解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器Flipflop或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好似一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC专用集成芯片的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比方可以快速成品,可以被修改来改正程序中的错误和更廉价的造价。厂商也可能会提供廉价的但

11、是编辑能力差的FPGA。因为这些芯片有比拟差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD复杂可编程逻辑器件备。2.1.2FPGA的工作原理及根本特点FPGA采用了逻辑单元阵列LCALogic Cell Array这样一个概念,内部包括可配置逻辑模块CLBConfigurable Logic Block、输出输入模块IOBInput Output Block和内部连线Interconnect三个局部。FPGA的根本特点主要有: 1采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2FPGA可

12、做其它全定制或半定制ASIC电路的中试样片。 3FPGA内部有丰富的触发器和IO引脚。 4FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最正确选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进展编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消

13、失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。2.1.3FPGA的开发流程FPGA开发流程可以分为如下几步:设计输入,设计输入主要包括原理图输入、状态图输入、波形图输入以及*种硬件描述语言,比方说是Verilog、VHDL的源程序此次设计主要是使用Verilog。它是利用这些输入去描述一个电路的功能。功能仿真,功能仿真就是利用相关仿真工具对相关电路进展功能仿真,也就是对你的输入设计的

14、逻辑功能进展相关的模拟测试。从功能上来了解电路是否能够到达预期要求。这里的功能仿真纯粹是模拟性质的,不会设计的任何具体器件的硬件特性。综合,综合就是行为或者功能层次表达的电子系统转换成低层次门级电路的网表。布局布线,就是将综合后的网表文件针对*一个具体的目标器件进展逻辑映射。此时应该使用FPGA厂商提供的实现与布局布线工具,根据所选芯片的型号,进展芯片内部功能单元的实际连接与映射。时序验证,就是要使得时序仿真过程中,建立与保持时间要符合相关的制约,以便数据能被正确的传输。使仿真既包含门延时,又包含线延时信息。能较好地反映芯片的实际工作情况。生成SOF等文件,此文件可以通过调试器把它下载到系统中

15、间去。而FPGA设计流程的其他步骤根本上由相关工具去完成,因此只要自己设置好相关参数,不要人为干预太多。而验证的话就需要用户花费大量的时间去完成。2.1.4FPGA的配置FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。如何实现快速的时序收敛、降低功耗和本钱、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更

16、多IP的方向开展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。例如,领先FPGA厂商*ilin*最近推出的Virte*-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。超大容量和密度使复杂的布线变得更加不可预测,由此带来更严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。幸运地是,FPGA厂商、EDA工具供给商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity与*ilin*宣布

17、成立超大容量时序收敛联合工作小组,旨在最大程度地帮助系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供给商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。最近FPGA的配置方式已经多元化! FPGA主要生产厂商:1、Altera 2、*ilin* 3、Actel4、Lattice 其中Altera和*ilin*主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。2.2软件介绍2.2.1Verilog HDL的介绍Verilog HDL是在1983年有GDAGate

18、Way Design Automation公司首创的一种硬件描述语言,用于数字电子系统设计。该语言可以让设计者进展各种级别的逻辑设计,进展数字逻辑系统的仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件语言。Verilog HDL作为一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在一样描述中显式地进展时序建模。Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的构造组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有

19、这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。2.2.2Quartus II软件此次设计所使用的软件是Quartus II12.0,使用语言为verilog HDL。Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供给商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MA*+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成设计输入、HDL综合、布线

20、布局适配、仿真和下载和硬件测试等流程,它提供了一种与构造无关的设计环境,使设计者能方便地进展设计输入、快速处理和器件编程。Altera的Quartus II 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统SOPC设计的综合性环境和SOPC开发的根本设计工具,并为AlteraDSP开发包进展系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verylog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus II也可以利用第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA plier

21、 II,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外,Quartus II与MATLAB和DSP Builder结合,可以进展基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。Quartus II包括模块化的编译器。编译器包括的功能模块有分析/综合器Analysis & Synthesis、适配器Filter、装配器Assembler、时序分析器Timing Analyzer、设计辅助模块Design Assistant、EDA网表文件生成器EDA Netlist Writer和编辑数据接口plier Da

22、tabase Interface等。可以通过选择Start plication来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择plier ToolTools 菜单,在plier Tool 窗口中运行该模块来启动编辑器模块。在plier Tool 窗口中,可以翻开该模块的设置文件或报告文件,或翻开其他相关窗口。图七中所示的上排是Quartus II编译设计主控界面,它显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编装配、时序参数提取以及编程下载几个步骤。在图七下排的流程框图,是与上面的Quartus

23、 II设计流程相对照的标准的EDA开发流程。图2.1:Quartus II设计流程第三章数字抢答器系统设计方案和主要模块3.1功能描述及设计架构此次设计设计了一个基于FPGA芯片的数字抢答器:本抢答器有十三个按键以及主频时钟作为输入端,其中八个输入端为八个选手的抢答按键,剩下五个按键分别为主持人开场按键、主复位按键、倒计时复位按键、显示切换按键、倒计时设置按键。有三个数码管进展显示,其中一个显示抢答者组号,另外两个个用来显示抢答剩余时间和显示抢答时间的设置,因为要复用这两个数码管,所以要用按键做一个显示切换。用蜂鸣器来提示是否有人犯规抢答,抢到题目时选手号用数码管显示该选手号,蜂鸣器也用作时间

24、剩余五秒时的提示。开场抢答时,主持人宣布抢答开场,并按下开场抢答按键,各选手开场抢答,其中任意一组抢到题目,则电路进展自锁,其它各组再按按键即为无效,抢到题目后蜂鸣器响,作答完毕后依据答复答案是否正确有主持人选择进入加减分模块,每个选手初始分数为五分,答对一道加一分,错一道减一分,不抢答则分数不加不扣。蜂鸣器报警蜂鸣器报警模块LED倒计时显示模块设置倒计时显示模块时钟信号、重置信号设置倒计时显示模块时钟信号、重置信号抢 答 器抢 答 器选手号显示模块抢答开场信号、各选手选手号显示模块抢答开场信号、各选手抢答信号抢答模块抢答模块选手选手分数显示模块图3.1抢答器功能示意图抢答器的具体功能如下:1

25、.抢答开场按键sk,此按键有主此人操控,在主持人宣布抢答开场后,按下此按键,各选手方可开场进展抢答,并显示相应选手号和答复剩余时间,当抢答时间剩余5s,给予响铃提示;2.如果主持人没有按下开场键而选手抢答,则视为犯规,并显示违规选手号和错误码,给予响声提示;3. 主持人按完毕键,可进展新一轮的抢答;4. 抢答时间完毕且无人抢答时,执行相应操作;5. 可通过按键设置抢答时间和答复时间,抢答器具备限时抢答功能,限时时间可以自行设置为0-99秒。6.当主持人对分数进展加减完毕之后,在对应的数码管上显示抢答者的分数,然后进入下一轮抢答。该模块是创新模块。此次设计以FPGA为根底设计数字抢答器,根据主要

26、的功能设计要求,该设计主要包括抢答输入按键、数码管显示、加减分、倒计时和FPGA系统。抢答器的构造示意图如下:FPGAFPGA时钟信号按键输入电路数码管显示电路倒计时显示电路图3.2:抢答器构造示意图 设计中FPGA最小系统电路为FPGA可以正常工作时的根本电路,由时钟和复位电路组成此次设计主控电路采用开发板的电路,只做了外围电路。按键输入电路有十三个按键组成,选手号数码显示管有一个八段共阳极数码管组成。倒计时显示电路两个八段共阳共阳极数码管组成组成。3.2抢答器程序流程图以及各模块分析3.2.1抢答器程序构造及主程序流程图本次设计中程序设计采用verilog HDL 语言进展编程,总体编程思

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

28、,这个时钟主要是供秒计时显示用,即用于倒数计时显示模块综合后的端口配置图倒计时以及倒计时剩5S时报警模块设计思路:主要是做一个简单的倒计时算法,倒计时的时间由倒计时设置模块给出,倒计时设置模块把设置后的时间用存放器hour1存起来,最后赋给倒计时的hour。其次是做一个剩余五秒的报警,即当剩余五秒时,用一个if语句做判断,随后实现报警提示综合后的端口配置图倒计时显示及倒数计时设置显示模块设计思路:用于倒计时显示模块及倒数计时设置模块显示。这个模块要使硬件复用,即两个数码管既要显示倒计时的时间也要显示倒计时的设置时间。在此,用按键kqh做了一个显示的切换,用ifelse实现。未按下切换键则用于倒

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

30、用。这里用了一个ALWAYS语句调用蜂鸣器,因为蜂鸣器有两个功能,分别是违规报警和剩余时间报警,所以在此用if语句做判断,实现蜂鸣器的两个不同功能。硬件电路图主控芯片是采用的是ALTERA公司的cyclone IV 型号为EP4CE30F23C按键数码管显示蜂鸣器第四章表:FPGA开发板对应管脚号及功能表引脚名FPGA引脚号相应功能fmqM20蜂鸣器K1H19一号抢答按键K2B21二号抢答按键K3J22三号抢答按键K4H18四号抢答按键K5F19五号抢答按键K6D20六号抢答按键K7D19七号抢答按键K8D17八号抢答按键CLK1T2250MHZ的时钟40MHZ的时钟倒计时设置复位按键显示切换按键倒数计时设置按键倒计时显示复位按键开场抢答按键CLK2G1daorstN7kqhN6ktT1rstG14SKF15sm_seg17J17选手号数码管a段sm_

温馨提示

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

评论

0/150

提交评论