毕业论文-基于FPGA的竞猜计分器设计与实现_第1页
毕业论文-基于FPGA的竞猜计分器设计与实现_第2页
毕业论文-基于FPGA的竞猜计分器设计与实现_第3页
毕业论文-基于FPGA的竞猜计分器设计与实现_第4页
毕业论文-基于FPGA的竞猜计分器设计与实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、大连东软信息学院本科毕业设计(论文)论论文题目:基于FPGA的竞猜计分器设计与实现系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称:讲师 完成日期:2014年4月28日 大连东软信息学院Dalian Neusoft University of Information大连东软信息学院毕业设计(论文) 摘要 IV基于FPGA的竞猜计分器设计与实现摘 要电子产业在人们的生活中发挥着越来越重要的地位,电子技术得到了突飞猛进的发展,各种电子产品的功能、质量也日趋完善。其中,竞猜计分器被广泛地用于竞赛活动。其能够公正、客观的判断出参赛选手操

2、作拨码开关的先后,并锁存优先抢答者的编号通过译码显示电路在发光二极管(LED,light-emitting diode)数码管上显示,同时其他选手操作无效。并且在比赛中可以使用排序功能对选手的分值进行排序,使选手了解本人所得的成绩在所有选手中所处的水平。在人们的娱乐活动中,竞猜计分器也成为了必不可少的电子设备之一。本次毕业设计主要介绍了以现场可编程门阵列(FPGA,Field Programmable Gata Array)为基础的数字竞猜器的设计与实现,其设计是根据数字系统由上而下设计和实现的基本流程,包括整体流程图的设计、数据通道和控制单元的设计、并用可综合的Verilog HDL语言实现

3、、经过Modelsim做功能仿真,用Quartus II进行综合布局布线,最终下到FPGA开发板进行验证,并在设计过程中对电路的性能进行不断地优化。本次设计采用FPGA来增强时序的灵活性,由于FPGA的I/O端口资源丰富,可以在此基础上可以改动增加其他功能,因此后期可塑性很强,因为核心是FPGA芯片,外围电路相对简单,因此便于维护而且维护费用相对较低。关键词:FPGA,竞猜计分器,Verilog HDL大连东软信息学院毕业设计(论文) Abstract Design and Implementation of Quiz Score Machine Based on FPGAAbstractEl

4、ectronic industry plays a more and more important role in peoples life, the development of electronic technology has been growing by leaps and bounds, the function and quality of all kinds of electronic products are perfect. Among them, the quiz score indicator is widely used in competition. It can

5、be fair and objective judgment contestant, dial the code switch operation successively, and the serial number of latch first vies answer first person through the decoding display circuit on the light-emitting diode (LED,light-emitting diode) digital tube display, while other players operation is inv

6、alid. And can use the sort function of players in the game score sort, make understand himself to be the results of all the players of the level. In peoples entertainment activities, Quiz Score Machine has become the indispensable one of electronic equipment.This graduation design mainly introduced

7、with Field Programmable gate Array (FPGA, Field Programmable Gata Array) based digital quiz machine, the design and implementation of the design is based on digital system the basic process of top-down design and implementation, including the design of the whole flow chart, data channel and the desi

8、gn of the control unit, with can Verilog HDL language implementation, after Modelsim to do simulation, using the Quartus II integrated wiring layout, eventually went down to the FPGA development board, and in the design process to continuously optimize the performance of the circuit.This design uses

9、 the flexibility of FPGA to enhance timing, because FPGA I/O port resource is rich, which can be added other functions on the basis of this, so the late plasticity is very strong, because the core is FPGA chip, the peripheral circuit is relatively simple, so easy to maintain and maintenance costs ar

10、e relatively low.Key words: FPGA, Quiz Score Machine, Verilog HDL大连东软信息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc386020014 h IAbstract PAGEREF _Toc386020015 h II第1章绪 论 PAGEREF _Toc386020016 h 11.1 竞猜计分器研究的背景与意义 PAGEREF _Toc386020017 h 11.2 竞猜计分器的研究现状 PAGEREF _Toc386020018 h 11.3 系统设计的要求 PAGEREF _

11、Toc386020019 h 1第2章关键技术介绍 PAGEREF _Toc386020020 h 22.1 “top-down”(自顶向下)设计方法 PAGEREF _Toc386020021 h 22.2 FPGA的简介 PAGEREF _Toc386020022 h 32.3 开发软件介绍 PAGEREF _Toc386020023 h 32.3.1 Quartus II简介 PAGEREF _Toc386020024 h 32.3.2 Modelsim简介52.4 硬件描述语言Verilog HDL PAGEREF _Toc386020026 h 5第3章系统需求分析 PAGEREF

12、_Toc386020027 h 63.1 系统设计目标 PAGEREF _Toc386020028 h 63.2 系统功能概述 PAGEREF _Toc386020029 h 63.3 系统功能需求 PAGEREF _Toc386020030 h 73.4 系统流程图 PAGEREF _Toc386020031 h 83.5 系统开发环境 PAGEREF _Toc386020032 h 103.6系统可行性分析 PAGEREF _Toc386020033 h 10第4章系统设计 PAGEREF _Toc386020034 h 114.1 系统指导思想和原则 PAGEREF _Toc386020

13、035 h 114.2 系统功能结构设计 PAGEREF _Toc386020036 h 114.3 系统的状态机 PAGEREF _Toc386020037 h 124.4 系统详细设计 PAGEREF _Toc386020038 h 124.5 数据通道模块设计 PAGEREF _Toc386020039 h 144.5.1 抢答判别模块 PAGEREF _Toc386020040 h 144.5.2 分频模块 PAGEREF _Toc386020041 h 144.5.3 倒计时模块 PAGEREF _Toc386020042 h 154.5.4 抢答按键模块 PAGEREF _Toc3

14、86020043 h 154.5.5 抢答按键转换模块 PAGEREF _Toc386020044 h 154.5.6 计分模块 PAGEREF _Toc386020045 h 164.5.7 选择显示模块 PAGEREF _Toc386020046 h 174.5.8 显示模块 PAGEREF _Toc386020047 h 17第5章系统实现 PAGEREF _Toc386020048 h 185.1 数据通道的代码实现 PAGEREF _Toc386020049 h 185.2 状态机的代码实现 PAGEREF _Toc386020050 h 19第6章系统仿真 PAGEREF _Toc

15、386020051 h 236.1 抢答犯规仿真 PAGEREF _Toc386020052 h 236.2 正常倒计时仿真 PAGEREF _Toc386020053 h 236.3 选手加分仿真 PAGEREF _Toc386020054 h 236.4 选手减分仿真 PAGEREF _Toc386020055 h 246.5 查询分值仿真 PAGEREF _Toc386020056 h 246.6 排序仿真 PAGEREF _Toc386020057 h 24第7章结论 PAGEREF _Toc386020058 h 26参考文献 PAGEREF _Toc386020059 h 27致

16、谢 PAGEREF _Toc386020060 h 28大连东软信息学院毕业设计(论文)- 第1章绪 论1.1 竞猜计分器研究的背景与意义随着信息技术及其产业的迅速发展,当今社会进入到了一个崭新的信息化时代,电子技术正在进行着高速的发展,这使电子产品的更新换代越来越快,这使得电视上益智类的节目中举办的各种各样的智力比赛都会用到竞猜计分器,它方便快捷,直观地反映着首先取得发言权的选手的优点,因此受到比赛各方的青睐。电子技术在各个领域的运用也越来越广泛,渗透到人们日常生活的方方面面,掌握必要的电子技术知识已经成为当代大学生特别是理工类大学生必备的素质之一。通过了解竞猜计分器的组成原理、测试方法,了

17、解多功能计分器各单元电路之间的关系和相互影响,同时通过本课题的设计与调试,巩固和应用在电子技术基础等课程中所学到理论知识,提高自己的动手能力,为以后的工作打下坚实地基础。1.2 竞猜计分器的研究现状竞猜计分器被广泛地用于各种知识比赛的场合中,本设计是以FPGA为基础设计的计分器,具有抢答后计分的控制,市场上现行的主要有两种:一种是用小规模数字逻辑芯片译码器和触发器来实现,另一种是用单片机来实现;前者的电路比较复杂,后者来做计分器组数的增加有时存在着I/O接口不足的情况。随着电子技术的不断发展,电子设计自动化(EDA,Electronic Design Automation)技术应运而生,它的出

18、现使得电子系统的设计更加便捷,很大程度上减轻了设计者的工作强度,提高了电子系统的设计效率。1.3 系统设计的要求由于FPGA具有内部硬件功能可通过编程改变并且处理速度较高等特点,FPGA在电路设计中得到了广泛的应用。本课题要求用Altera FPGA设计与实现的竞猜计分器。要求具有如下功能:(1)一个总按钮,由主持人控制,用于命令抢答开始或抢答结束后复位。(2)设置一个倒计时装置,当主持人第一次按总按钮是,倒计时装置开始进行倒计时。(3)当倒计时未倒计为0前,进行抢答视为犯规处理,否则去抖后鉴别抢答先后顺序,显示抢答成功选手的编号。(4)判断抢答结果是否正确,正确计分,错误扣分。(5)可查询各

19、个选手历史分值。(6)在比赛结束后,进行按分值排名并显示。 大连东软信息学院毕业设计(论文)第2章关键技术介绍2.1 “top-down”(自顶向下)设计方法数字系统的设计方法通常分为“top-down”(自顶向下)设计和“Bottom-up”(自底向上)设计两大类。自底向上的设计方法,在设计系统硬件时,从系统的最底层开始,首先用真值表、卡诺图、状态转换表或状态转换图来描述数字系统的逻辑功能,然后选择具体的逻辑功能部件,用这些逻辑功能部件组成功能模块,最后把功能模块连接起来完成系统硬件设计。采用这种设计方法进行底层设计时,由于缺乏对整个数字系统总体性能的把握,在整个系统设计完成后,如果发现部分

20、性能需要改进,修改起来比较困难,因而设计周期长。自顶向下的设计方法,概括地讲就是从整体到局部、最后到细节的设计方法,即设计者先从数字系统的整体功能要求出发,进行最顶层的系统设计,然后将整个系统分成若干子系统,再将每个子系统分为若干功能模块,功能模块还可继续向下划分成子功能模块,直至分成许多可以由最基本的逻辑功能部件实现小功能模块。这就像建造一座大楼,先要进行整体设计,再绘制详细的结构图,最后用建筑材料建造起来。在某种意义上讲,“Bottom-up”(自底向上)设计过程可以看作是“top-down”(自顶向下)设计的逆过程。现代电子系统的设计采用“top-down”(自顶向下)设计方法,设计步骤

21、如图2.1所示。图2.1 “top-down”(自顶向下)的设计步骤本次毕业设计对竞猜计分器的设计,就是采用自顶向下(top-down) 的设计方法。根据自上而下的设计思想,对系统进行功能模块划分并优化。各个功能模块之间相互独立并且可以相互引用,最后将各模块集成到一个顶层模块中,形成一个完整的系统。2.2 FPGA的简介FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(A

22、SIC,Application Specific Integrated Circuit)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能中央处理机(CPU,Central Processing Unit),下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在印刷电路板(PCB,Printed circuit board)完成以后,还可以利用

23、FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。现场可编程门阵列(FPGA)器件是八十年代中期出现的新产品,它的应用大大地方便了IC的设计,因而随着数字技术日益广泛的应用,以FPGA为代表的ASIC器件得到了迅速的普及和发展,器件集成度和速度都在高速增长。FPGA的开发流程是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。通常,FPGA的设计方法有两种,包括自下而上设计和自上向下设计。对于较大规模的设计一般采用自上而下设计,这种方法是先定义顶层模块,接着定义顶层模块所需要的子模块,直至最底层的

24、模块。而自下而上设计是先分别设计底层模块,接着组成大的模块,最后完成顶层模块的设计。图2.2FPGA的开发流程一般包括设计准备、设计输入、功能仿真、优化处理、时序仿真、器件编程和下载验证等步骤。2.3 开发软件介绍2.3.1 Quartus II简介随着EDA技术的发展,使用硬件描述语言来设计PLD/FPGA已经成为一种趋势。利用硬件描述语言,设计者可以将非常复杂的数字系统分为不同层次的模块进行设计,利用EDA工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。最后利用FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。Quartus I

25、I 软件是数字系统设计的仿真工具,他拥有FPGA和CPLD设计的所有阶段的解决方案,我们可以使用Quartus II 软件完成数字逻辑设计仿真的所有阶段。Quartus II的设计流程图如2.3所示。图2.2 FPGA开发流程图2.3 Quartus II的设计流程图2.3.2 Modelsim简介ModelSim完全支持VHDL和Verilog标准;采用直接编辑技术,大大提高HDL编译和仿真速度。还可以利用ModelSim调用设计文件进行仿真分析。在调试环境中,设计者可以通过ModelSim的快速调试步骤以及对各种信号的监控功能(无论信号处于VHDL层,还是处于混合语言层)使仿真的执行过程形

26、象直观化,帮助设计者及时发现漏洞,缩短设计周期。ModelSim最大的特点是其强大的调试功能:先进的数据流窗口,可以迅速追踪到生产不定或者错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备;多种模式的波形比较功能;先进的 SignalSpy功能,可以方便地访问VHDL或者VHDL和Verilog混合设计中的底层信号;支持加密IP;可以实现与Matlab的Simulink的联合仿真。2.4 硬件描述语言Verilog HDLVerilog HDL是一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表

27、示数字逻辑系统所完成的逻辑功能。用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的

28、模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。第3章系统需求分析3.1 系统设计目标根据论文采用自顶向下的设计思想和数字系统设计和实现的基本流程,从顶层进行功能划分和结构设计。然后独立的设计和优化每个模块,并且在顶层设计中集成所有已优化的模块,最后验证总体设计。以高级数字系统设计的方法为指

29、导思想,在系统设计过程中,首先对竞猜计分器的功能进行了解,然后再画出整体流程图,提取出数据通道和状态机。在数据通道的实现过程中,向下划分出若干单元模块,并且不断优化其性能。状态机部分由有限状态机来实现,合理安排各个状态的转移。状态机发送数据通道所需的控制信号,接收来自数据通道的状态信号,监控整个测试过程的运行;数据通道处理来自状态机的控制信号,并处理的结果反馈给状态机。数据通道和状态机协调工作,外围电路进行其他相关的控制和显示,整个系统便可得到稳定的波形值输出。本设计主要实现判断第一竞猜者、抢答倒计时、抢答犯规处理、答对计分、答错扣分、查询分数、分数排序、显示结果等功能,按要求需要实现的功能要

30、求,系统整体框架如图3.1所示。图3.1 系统整体框图3.2 系统功能概述本设计是以Quartus 为开发环境,学习常用的数字系统设计方法,采用Verilog HDL语言完成了竞猜计分器电路的前端设计,全部在一片FPGA开发板上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该计分器具有精确、可靠、抗干扰性强和现场可编程等优点。其主要部分是数据通道和状态机的设计,目标是为了正确地显示参加竞赛的选手的名次和分值。该电路共有14个输入按键,3个LED数码管显示,LED1数码管显示倒计时和抢答成功的选手组号,LED2和LED

31、3数码管显示查询和排序时的分数值。图3.2为系统的功能框图。 图3.2 系统功能框图3.3 系统功能需求本次设计要求设计一个可以容纳8组参赛者的竞猜计分器:本竞猜计分器有14个输入端,其中8个输入端为八组选手的抢答拨码开关,分别为key1、key2、key3、key4、key5、key6、key7、key8,其余6个拨码开关分别为主持人开始拨码开关start、查询拨码开关find、排序拨码开关sort、加分拨码开关up、减分拨码开关down、结束拨码开关end,有三个LED数码管进行显示,其中LED1数码管上显示抢答者的组别1-8和倒计时从9-0,LED2数码管和LED3数码管上显示抢答者的分

32、数,最高为99分,最低为0分和排序结果显示,分数1s更新一次。如果不进行查询、排序操作,由主持人宣布抢答开始,拨动开始抢答的拨码开关start,倒计时结束后各组开始抢答,其中任意一组抢答题目时,则电路进行自动锁存,其他各组再拨动抢答拨码开关被视为无效,抢到题目时LED1数码管上显示该组的组号。作答结束后主持人依据回答结果是否正确由主持人选择加分或减分操作,每组的初始分数为50分,答对一道题加5分,答错一道题减5分,不抢答则分数不加不减。竞猜计分器的具体功能如下:(1)设置一个查询拨码开关find,此开关由主持人操控,如果想要查询分数时,拨动此开关,再拨动欲查询分值的小组所对应的拨码开关,在LE

33、D1数码管上将会显示该小组的组号,LED2数码管和LED3数码管上显示该小组的分值。(2)设置一个排序拨码开关sort,此开关由主持人操控,如果想要排序时,拨动此开关,选手的分值将按从高到底地在LED2数码管和LED3数码管上显示。(3)设置抢答开始拨码开关start,此按键由主持人操控,在主持人宣布抢答开始后,拨动此开关,系统将自动进入倒计时程序。(4)计分器具有倒计时的功能,限时为9秒。当主持人拨动拨码开关start后,LED1数码管显示9,依次递减,当未倒计为0之前,抢答则视为犯规,蜂鸣器吱吱地响,系统返回到初始状态重新进行一轮抢答,倒计时倒计为0之后,抢答成功的选手可以进行抢答,并在L

34、ED1数码管上显示相应的组号。(5)计分器具有锁存和显示功能,也就是说当选手按下抢答按键抢答成功后,锁存相应的组号,并在相应的LED1数码管显示。当主持人对分数进行加减分操作完毕后,在LED2数码管和LED3数码管上显示抢答者的分数。当进行查询和排序操作时,在LED2和LED3数码管上显示相应的分数。(6)主持人在选手抢答之后,作答完成后,进入加减分数环节,此时主持人可用up开关在回答正确之后,进行加分操作,可以用down开关用来在回答错误之后进行减分操作,之后按下结束键end来完成此环节。答完所有题目后,最高分者胜利,抢答期间零分的选手出局,完成加减分环节之后,主持人可以进入下一环节。3.4

35、 系统流程图在对整个系统有一定的了解和认识之后,根据高级数字系统设计方法和要设计的竞猜计分器的特点做出了系统流程图如图3.3所示。首先进入空闲状态,接着进入初始化处理状态,对整个系统进行初始化处理。初始化的处理将会使整个系统进入默认的工作状态,如果初始化完成后复位使能信号有效,那么系统将再次进入初始化处理状态;然后判断分数查询使能信号是否有效,有效的话拨动查询拨码开关系统进入期待选手拨码开关拨动输入状态,如果操作使某选手对应的拨码开关拨动后,则在LED2和LED3数码管上显示该组选手的分数值。此时,如果分数查询使能信号依然有效,拨动其他选手对应的拨码开关则可继续查询其他组选手的分值,如果分数查

36、询使能信号无效,那么系统将再次进入初始化处理状态;其次当分数查询使能信号无效时,分数排序使能信号有效,进入排序显示分数名次状态。如果操作排序功能的拨码开关后,在LED2和LED3数码管上由高到低地显示选手的分数,分数值1秒更新一次,此时,如果分数排序使能信号依然有效,数码管上不停地、重复地更新分数,否则,当分数排序使能信号无效,系统将直接进入初始化处理状态;最后如果分数查询使能信号无效、分数排序使能信号无效,开始的拨码开关使能信号有效,系统将进入倒计时状态,系统将在LED1数码管上显示倒计时,从 9到0依次递减逐次显示,当倒计时未倒计为0时,有选手拨动拨码开关进行抢答时,此时系统进入错误状态,

37、具体实现为蜂鸣器不停地吱吱响,系统将直接进入初始化处理状态;当倒计时倒计为0时,第一选手拨动拨码开关进行抢答,此时抢答成功,具体实现为在LED1数码管上显示该组选手的组号,继而该选手进行回答,之后主持人根据选手回答结果的正确与否进行加分或减分操作,加减分操作完成后主持人拨动结束的拨码开关,系统将直接进入初始化处理状态;图3.3 系统流程图3.5 系统开发环境 硬件配置:300GB硬盘;3GB内存;2.67GHz英特尔CPU。操作系统:Windows7旗舰版。编程语言:Verilog HDL(硬件描述语言)。软件环境:Quartus II、ModelSim10.1。3.6系统可行性分析根据论文采

38、用的自顶向下的设计思想,从系统级设计入手。从顶层进行功能划分和结构设计。对整个系统有一定的认识后,开始着手整体流程图的设计。然后,通过流程图提炼出相应的数据通道和状态机。数据通道的各个模块包括:显示模块、倒计时模块、抢答按键模块、抢答按键转换模块、选择显示模块、计分模块、分频模块、抢答鉴别模块。状态机部分由有限状态来实现,合理涉及各个状态转移。状态机发送数据通道所需的控制信号,接收来自数据通道的状态信号,监控整个测试过程的运行;数据通道处理来自状态机的控制信号,并把处理的结果反馈给状态机。此外,外围电路即显示控制电路和拨码开关控制电路可以使显示很方便。使用Altera公司开发的Quartus软

39、件,对每个模块进行开发。通过常用仿真软件ModelSim对设计的所有模块进行仿真测试,确保整个开发流程顺利进行。最后在FPGA开发板上进行功能测试,并且不断地进行优化。第4章系统设计4.1 系统指导思想和原则本课题是一个基于FPGA的竞猜计分器设计与实现,系统根据数字系统设计和实现的基本流程进行设计,包括整体流程图的设计、数据通道和状态机的设计,并可用可综合的Verilog语言实现,最后经过Modelsim10.1软件做各个模块和整体系统的功能仿真,并在设计实现过程中不断对电路性能进行优化。在开发平台Quartus II12.0上完成,可以在50MHz的时钟频率下正常工作,能准确通过按键完成查

40、询、排序、开始、倒计时和结束功能,倒计时周期为9秒钟,最终的结果通过LED数码管用动态扫描的方式显示。使用Moldesim10.1仿真软件对大部分Verilog HDL程序进行了仿真,并完成了综合布局布线,最终下载到开发板上取得良好的结果。竞猜计分器的首要目标是满足文化娱乐活动、竞技比赛时选手先后顺序、比分显示的要求,同时也要确保在比赛进行的过程中不会出现计分错误、显示有误等问题从而影响比赛的正常进程,系统要稳定,同时具备的查询、排序功能要能正常应用规范比赛赛程。在满足以上基本点后,可以拓展功能或者使项目设计实物更美观、实用。4.2 系统功能结构设计该竞猜计分器的设计中主要包括三大功能模块:1

41、、查询功能模块 2、排序功能模块 3、倒计时、抢答功能模块,如图4.1所示。图4.1 系统主要功能模块其中的查询模块主要用于查询各个选手在比赛中的历史分值,而排序功能模块主要用于比赛中将选手的分数按从高到低依次显示,抢答倒计时功能模块主要用于在比赛过程中倒计时结束后鉴别第一抢答者。本设计是基于FPGA,是用Verilog HDL语言编写,通过modelsim 10.1与Quartus II12.0进行逻辑综合与仿真,最后由LED数码管显示比赛得分与比赛名次。需要将各个模块连接起来才能实现竞猜计分器整个的功能,要先建立顶层模块,在顶层中对各模块进行引用,并且将各模块之间的对应的时钟线,数据线以及

42、控制线连接好。整个设计之中,输入为计分器时钟、查询、排序、加分、减分拨码开关和选手输入拨码开关,输出为数码管的查询信号和排序信号以及显示的使能。4.3 系统的状态机状态机是控制竞猜计分器的开始、结束以及复位,并产生查询、排序的使能信号。状态机是系统的核心,可根据当前状态以及拨码开关的输入情况控制计分器不同状态的切换,是本次设计中最为复杂的部分。根据竞猜计分器的模块划分与数据通道,通过运用Visio绘图软件做出的系统模块状态机,如图4.2所示。图4.2 系统状态机系统首先重置,然后进行接下来的操作,查询、排序、抢答倒计时。当要进行查询操作时,在获得查询时钟信号提示后,拨动选手的拨码开关,LED数

43、码管上则显示该组选手的组别号和分值;当要进行排序时,在获得排序的时钟信号提示后,LED数码管上从高到低依次显示选手的分值。当不进行查询、排序操作时,在获得开始的时钟信号后,系统进入倒计时,倒计时结束后选手抢答,回答结束后主持人进行加减分操作,之后拨动结束拨动开关回到初始状态。4.4 系统详细设计竞猜计分器划分为2个子模块,分别为数据通道和状态机。状态机主要判断外界或数据通道输入的信号,进入状态转移,在相应状态输出加分、减分、抢答、抢答显示、查询、查询显示、排序、排序显示等使能控制信号,等待拨码开关输入和抢答犯规时输出错误,蜂鸣器吱吱响的信号。状态机模块图如图4.3所示。为了方便描述状态切换,设

44、计中定义了9个状态变量:idle, find,find_display,sort,sort_display,daojishi,daojishi_foul,wait_key,wait_up_dn,三个输出使能信号daojishi_display,down_en,error_buzz,和输入状态变量control_sig。图4.3 状态机模块图数据通道主要是根据选手、开始、查询和排序拨动开关功能的不同,输出不同的分值。数据通道模块如图4.4。图4.4 数据通道模块图4.5 数据通道模块设计该系统主要由七个电路模块组成,分别为:抢答判别模块、分频模块、倒计时模块、抢答按键模块、抢答按键转换模块、计分

45、模块、选择显示模块、显示模块。其中,抢答判别电路模块主要完成对最快抢答者的判断功能;分频电路模块是为了得到1Hz的时钟信号;倒计时电路模块对抢答进行9秒的倒计时;抢答按键模块主要用于抢答者使用拨码开关进行抢答输入;抢答按键转换电路模块主要是8进制数向10进制数据转换,用于在LED数码管上显示组号;计分电路模块主要用记录参赛选手的分值、查询或排序时从中提取数据提供给显示模块显示和用于选手在比赛过程中加分与减分操作从而更新选手的分值;选择显示电路模块主要是进行LED数码管与组号、分数、倒计时信号匹配;显示电路模块进行匹配以正确显示组号和倒计时、分数信号.因此,竞猜计分器的输入信号包括时钟信号clk

46、,复位信号reset,开始抢答信号istart,加减分结束信号iup_dn_end,八个参赛者的拨码开关ikey1、ikey2、ikey3、ikey4、ikey5、ikey6、ikey7、ikey8,查询信号ifind,排序信号isort,加分信号iup,减分信号idown。4.5.1 抢答判别模块抢答判别模块具有第一抢答信号的判别和锁存功能,消除按键输入抖动的影响,输出单脉冲,在进行锁存的同时,对抢答状态进行显示。锁存是实现将组号值进行锁定的功能,当不需要锁定时,锁存器直接将输入信号送到输出信号,当需要锁定时,锁存器就保持当前状态的输出不变,实现锁存功能。本设计采用软件延时的方式消除按键抖动

47、,当按键按下并抬起后,输入信号为高电平脉冲,经过大约三个时钟跳变后抖动消除,输出一个高电平脉冲作为输出。抢答判别模块如图4.5所示。该模块有输入信号clk,复位信号reset,输入状态变量isig,输出信号为上升沿输出状态变量osig_posedge。图4.5 抢答判别模块4.5.2 分频模块由于倒计时模块需要1Hz的时钟信号,而FPGA的时钟信号为50MHz,所以需要分频来得到1Hz的时钟信号。分频模块如图4.6所示:图4.6 分频模块4.5.3 倒计时模块倒计时模块的主要作用是进行抢答倒计时。系统复位后,当倒计时开关信号为高电平时,倒计时LED1数码管从9开始以秒为单位进行倒计时,如果倒计

48、时结束后有人进行抢答,倒计时模块会输出一个高电平使得LED1数码管上显示抢答成功的组号,如果倒计时尚未倒计结束,有选手进行抢答,倒计时模块会输出一个高电平使得蜂鸣器不停地吱吱响。倒计时模块如图4.7所示。该倒计时模块的输入信号有时钟信号clk(1Hz)、复位信号reset、倒计时显示使能信号idaojishi_display_en、开始信号istart,输出信号有倒计时数据、正在倒计时的输出状态变量。图4.7 倒计时模块4.5.4 抢答按键模块抢答按键模块主要用于抢答者使用拨码开关进行抢答输入,抢答犯规蜂鸣器报警;抢答按键模块如图4.8所示。该模块的输入信号有时钟信号clk,复位信号reset

49、,拨码开关输入信号key1、key2、key3、key4、key5、key6、key7、key8,开始信号start_edge,等待拨码开关输入信号igetkeys_wait,拨码开关输入清零信号igotkey_clr,抢答犯规输入信号ierror_buzz,倒计时输入信号irq_daojishi;输出信号有抢答犯规、抢答犯规蜂鸣器吱吱响、拨码开关输入成功、拨码开关输入成功并显示。4.5.5 抢答按键转换模块抢答按键转换电路模块主要是8进制数向10进制数据转换,用于在LED数码管上显示组号;抢答按键转换模块如图4.9所示。输入信号有时钟信号clk、复位信号reset、选手拨码开关输入信号igo

50、tkeys,输出信号是抢答选手的组号oqiandaren.图4.8 抢答按键模块图4.9 抢答按键转换模块4.5.6 计分模块计分电路模块主要用记录参赛选手的分值、查询或排序时从中提取数据提供给显示模块显示和用于选手在比赛过程中加分与减分操作从而更新选手的分值;计分模块如图4.10所示。输入信号有:时钟信号clk、1Hz的时钟信号clk1s、复位信号reset、加分使能信号iup_en、减分使能信号idown_en、查询使能信号ifind_en、排序使能信号isort_en、排序显示使能信号isort_display_en、拨码开关输入信号igotkeys、抢答成功选手的组号iqiandare

51、n;输出信号有:抢答成功选手的分值oqiandanren_scoren、拨码开关的结果oresult_key、分值结果oresult_score、排序拨码开关的输入结果oresult_key_sort、排序分值的结果oresult_score_sort。图4.10 计分模块4.5.7 选择显示模块由于该系统需要显示一位选手的组号、倒计时和选手的分值,选手分值的排序,要正确显示这些数据,需要选择显示模块与显示模块进行匹配。选择显示模块如图4.11所示。输入信号有: 倒计时显示使能信号idaojishi_display_en、查询显示使能信号ifind_display_en、抢答显示使能信号iqi

52、andag_display_en、排序显示使能信号isort_display_en、抢答者的组号iqiandaren、抢答选手所对应的分数iqiandaren_score、拨码开关输入信号iresult_key、分值的结果iresult_score、排序拨码开关输入结果iresult_key_sort、排序时分值的结果iresult_score_sort、倒计时的数值iumber_shengyu;输出信号有:拨码开关输出信号okey、输出分值oscore。图4.11 选择显示模块4.5.8 显示模块显示电路模块进行匹配以正确显示组号和倒计时、分数.显示模块如图4.12所示。输入信号有:时钟信号

53、clk、复位信号reset、拨码开关输入信号ikey、分值输入信号iscore;输出信号有:选手组别输出信号oseg_date_key、分值十位上显示输出信号oseg_date_decade、分值个位上显示输出信号oseg_date_unit。显示模块的输出信号oseg_date_key、oseg_date_decade、oseg_date_unit直接与LED显示数码管的管脚连接,直接转换为对应数码管LED的输入电平值,将对应的数字显示出来。图4.12 显示模块大连东软信息学院毕业设计(论文)第5章系统实现5.1 数据通道的代码实现数据通道由以下七个电路模块组成,分别为:抢答判别电路模块、分

54、频电路模块、倒计时电路模块、抢答按键电路模块、抢答按键转换电路模块、计分电路模块、选择显示电路模块、显示电路模块。其中,抢答判别电路模块主要完成对最快抢答者的判断功能;分频电路模块是将FPGA开发板上的50MHz的时钟基准频率分频得到1Hz的时钟信号;倒计时电路模块对抢答进行9秒的倒计时;抢答按键模块主要用于抢答者使用拨码开关进行抢答输入;抢答按键转换电路模块是8进制数向10进制数据转换以便于在LED数码管上显示组号;计分电路模块主要用记录参赛选手的分值、查询或排序时从中提取数据提供给显示模块显示和用于选手在比赛过程中加分与减分操作从而更新选手的分值;选择显示电路模块主要是进行LED数码管与组

55、号、分数、倒计时信号匹配;显示电路模块进行匹配以正确显示组号和倒计时、分数信号;数据通道的主要代码如下。daojishi m_daojishi(.reset(reset), .clk1s(wir_clk1s), .istart(ostart_edge), .idaojishi_display_en(idaojishi_display_en), .orq_daojishi(orq_daojishi), .number_shengyu(wir_number_shengyu);display_sel m_display_sel(.iqiangda_display_en(iqiangda_displa

56、y_en), .ifind_display_en(ifind_display_en), .isort_display_en(isort_display_en), .idaojishi_display_en(idaojishi_display_en), .iqiandaren(wir_qiandaren), .iqiandaren_score(wir_qiandaren_score), .iresult_key(wir_result_key), .iresult_score(wir_result_score), .iresult_key_sort(wir_result_key_sort), .i

57、result_score_sort(wir_result_score_sort), .inumber_shengyu(wir_number_shengyu), .okey(wir_key), .oscore(wir_score);qiangdaren m_qiangdaren(.reset(reset), .clk(clk), .igotkeys(wir_gotkeys), .oqiandaren(wir_qiandaren);display m_display(.clk(clk), .reset(reset), .ikey(wir_key), .iscore(wir_score), .ose

58、g_data_key(oseg_data_key), .oseg_data_decade(oseg_data_decade), .oseg_data_unit(oseg_data_unit);posedge_check m_posedge_check(.clk(clk), .reset(reset), .isig(istart), .osig_posedge(ostart_edge);qingda_key m_qingda_key ( .istart_edge(ostart_edge), .clk(clk), .reset(reset), .key1(ikey1), .key2(ikey2),

59、 .key3(ikey3), .key4(ikey4), .key5(ikey5), .key6(ikey6), .key7(ikey7), .key8(ikey8), .ierror_buzz(ierror_buzz), .irq_daojishi(orq_daojishi), .igetkeys_wait(igetkeys_wait), .igotkey_clr(igotkey_clr), .ogotkeys(wir_gotkeys), .oerror(oerror), .okey_success(okey_success), .oerror_buzz1k(oerror_buzz1k) )

60、;fenpin1s m_fenpin1s(.clk(clk),.reset(reset),.clk1s(wir_clk1s);score m_score(.clk(clk), .clk1s(wir_clk1s), .reset(reset), .igotkeys(wir_gotkeys), .iup_en(iup_en), .idown_en(idown_en), .ifind_en(ifind_en), .isort_en(isort_en), .isort_display_en(isort_display_en), .iqiandaren(wir_qiandaren), .oqiandar

温馨提示

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

评论

0/150

提交评论