ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:1.42MB ,
资源ID:4027681      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4027681.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的乒乓球游戏机设计毕业论文.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的乒乓球游戏机设计毕业论文.docx

1、基于FPGA的乒乓球游戏机设计 毕业论文 存档编号 赣南师范学院科技学院学士学位论文基于FPGA的乒乓球游戏机设计 系 别: 数信系 届 别: 09届 专 业: 电子信息工程 学 号: 0920085108 姓 名: 指导老师: 完成日期: 2013、5、6 内容摘要:随着电子设计自动化技术的不断发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。本文设计了基于FPGA的乒乓球游戏机设计。用VHDL语言编程, VHDL是甚高速集成电路硬件描述语言。目前,VHDL已成为许多设计自动化工具普遍采用的标准化硬件描述语言。VHDL语言功能性强,覆盖面广,灵

2、活性高,具有很好的实用性。本文详细的简述了乒乓球游戏机的工作原理,此乒乓球游戏机由状态机、记分器、译码显示器与按键去抖等部分所组成。通过对各部分编写VHDL程序,在Quartus软件上进行编译、仿真,最终在Altera公司的EP开发板上成功实现下载和调试。经过仿真和验证的结果表明,实现乒乓游戏机的基本功能,结果达到了设计的要求。关键词:FPGA VHDL 乒乓游戏机 状态机Abstract:As electronic design automation technology continues to develop and expand the field of application, ED

3、A technology in electronic information, communication, increasing the importance of the field of automatic control and computer applications. This design of the table tennis game design based on FPGA . Programming in VHDL language, VHDL is the very high speed integrated circuit hardware description

4、language . At present, the VHDL design automation tool widely used by many standardized hardware description language. VHDL language feature is strong, wide coverage, high flexibility, good practicality. This article gave a detailed summary of table tennis video game works, the table tennis game by

5、the state machine, a device, decoding machine parts such as monitor and press the key to shaking up. The sections written by VHDL program, compiled in the Quartus II software, simulation, final EP of Altera Corporation successfully downloaded and debugged on the Development Board. After simulation a

6、nd verification of the results shows that achieving basic functionality of ping pong game, the result meets the design requirements.Key words: FPGA VHDL Table tennis game machine State machine1引言EDA(Electronic Design Automation,电子设计自动化)技术是现代电子工程领域的一门新技术。它提供了基于计算机和信息技术的电路系统设计方法。EDA技术的发张和推广应用极大地推动了电子工

7、业的发展。随着社会的进步和工业技术的发展,在电子线路设计领域中,设计自动化工具已经逐步为设计者所接受,成为主要的设计手段。目前,VHDL已成为许多设计自动化工具普遍采用的标准化硬件描述语言,掌握VHDL语言,用VHDL语言设计电子线路,是电子线路设计者必须掌握的基本技能。VHDL支持数字电路的开发环境,VHDL也支持各种设计方法:自顶向下、自底向上或混合的方法1。VHDL语言功能性强,覆盖面大,灵活性高,具有很好的实用性2。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提

8、高,产品更新换代的节奏也越来越快。而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏相应而出,成为大家的娱乐节目。因此设计出了关于两人的乒乓球游戏。乒乓游戏机是由9个发光二极管代表乒乓球台,中间的3个发光二极管兼作球网,用点亮的发光二极管按一定方向移动来表示球的运动。在游戏机的两侧各设置两个开关,甲乙二人按乒乓球比赛规则来操作开关。此设计由译码显示器、记分器、状态机/球台控制器与按键去抖等部分组成。设计总体要求:乒乓机能模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。其主要任务和要求如下:(1) 使用乒乓球的甲乙双方在不同的位置发球或击球。(2) 乒乓球的位置和移动

9、方向由灯亮及依次点亮的方向决定。球速为0.5s-1s移动1位。球过网,接球方向可击球,提前击球或没击球均判失分。(3) 比赛按11分为一局,甲乙双方应设置记分牌,任何一方先记满11分,为胜出,按RESET复位重新开局。(4) 基于VHDL的乒乓球程序设计及软件编译与调试、仿真。2 开发工具简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的

10、电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域中,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。2.1硬件描述语言VHDL概述VHDL是Very high speed integrated circuit Hardware Description Language的缩写,即“甚高速集成电路硬件

11、描述语言”,最初由美国国防部和INTER、IBM、TI公司联合开发,1987年成为IEEE标准,即IEEE1076标准(俗称87版VHDL)3。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外

12、部分的概念是VHDL系统设计的基本点。2.1.1 VHDL语言的特点VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点4:(1)VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持

13、模块化设计方法,也支持层次化设计方法。 (2)VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在对于同一个硬件电路的 V

14、HDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的

15、设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。2.1.2基于VHDL的自顶向下设计 在电子设计领域,自顶向下的设计方法只有在EDA技术得到快速发展和成熟应用的今天才成为可能。自顶向下设计方法的有效应用必须基于功能强大的EDA工具,具备集系统描述、行为描述和结构描述功能为一体的VHDL硬件描述语言,以及先进的ASIC制造工艺和FPGA开发技术。当今,自顶向下的设计方法已经是EDA技术的首选设计方法,是ASIC或FPGA开发的主要设计手段。自顶向下的设计方法使系统被分解为各个模块的

16、集合之后,可以对设计的每个独立模块指派不同的工作小组,其在不同地点工作,分属不同的单位,最后将不同模块集成为一个系统模型,并对其进行综合测试与评价。自顶向下设计流程的框图说明如图1所示:图1自顶向下的设计流程图2.3 Quartus II开发软件概述Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II支持Altera的IP核,包

17、含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如Signa

18、lTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括5:(1)可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;(2)芯片(电路)平面布局连线编辑;(3)LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影

19、响的后续模块;(4)功能强大的逻辑综合工具;(5)完备的电路功能仿真与时序逻辑仿真工具;(6)定时/时序分析与关键路径延时分析;(7)可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;(8)支持软件源文件的添加和创建,并将它们链接起来生成编程文件;(9)使用组合编译方式可一次完成整体设计流程;(10)自动定位编译错误以及高效的期间编程与验证工具;(11)可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件也能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。2.4本章小结本章主要介绍了系统的开发工具,对硬件的描述语言VHDL的特点做了基本介绍,

20、简明了VHDL的自顶向下设计的流程。并对QuartusII开发软件进行了概述。3基于FPGA的乒乓球游戏机设计与实现3.1总体设计乒乓游戏机的组成示意图如2所示。本设计中的乒乓游戏机是由9个发光二极管代表乒乓球台,中间3个发光二极管兼作球网,用点亮的发光二极管按一定方向移动来表示球的运动方向。在游戏机的两侧各设置两个开关:hit1、 hit2,甲乙二人按乒乓球比赛规则来操作开关。甲开始发球时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲向乙依次点亮,代表乒乓球的移动。当球过网后按规定的球位,乙方就可以击球。若乙方提前击球或没有击中球,则判乙方失分,甲方的记分牌自动加一分。同理,当乙方开始发

21、球时,点击hit1击球。然后重新发球,比赛继续进行。比赛一直要进行到一方记分牌达到11分,该局才结束。本设计由译码显示器、按键去抖、状态机/球台控制器等部分所组成。系统的整体设计结构图如图3所示。图2 乒乓球游戏机的组成示意图图3 系统结构图3.2电路总原理图本设计由+5V供电,输出+3.3V的供电模块、50MHz有源晶振模块、AS下载端口拨码开关控制LED灯显示模块、数码管计分显示模块及芯片EP2C5T144C8N组成。如下图4所示:图4 乒乓球游戏机设计总原理图3.3时钟分频设计分频是将一个给定的频率较高的数字输入信号经过适当的处理而产生一个或数个频率较低的数字输出信号。由于开发板的时钟信

22、号频率是50MHz,直接作为二极管点亮频率和数码管扫描频率过大,不符合设计要求,如下图5所示为50MHz有源晶振电路图。因此需将时钟信号分频,分频成两个时钟信号分别给发光二极管作为移动速度和数码管的显示信号,分别设置分频系数为25000000、5000000,分频后的信号频率为1Hz、,此时发光二极管的移动速度为1s,符合设计要求。图5 50MHz有源晶振电路图部分时钟分频源程序:p1:process(count,clk) - 25000000 倍分频,发光二极管begin if clkevent and clk=1 then count=count+1; if count=25000000

23、then tmp=1; count=0; else tmp=0; end if; end if; end Process; p2:process(couny) - 5000000倍分频,数码管 begin if clkevent and clk=1 then couny=couny+1; if couny=5000000 then tmg=1; couny=0; else tmg -等待状态下 进程处于等待发球状态 case serve is when 00 = i i=1;state i=7;state i i i=2; -light1on状态下 进程处于第一盏灯亮状态 if hit2=1

24、then i=0; count1=count1+1;state=waitserve; else state i=6; -light7on状态下 进程处于第八盏灯亮状态 if hit1=1 then i=0; count2=count2+1;state=waitserve; else state -进程处于球向2移动状态 if hit1=1 then i=0; count2=count2+1;state=waitserve; elsif i=2 then i=1; state=allow1hit; else i -进程处于球向1移动状态 if hit2=1 then i=0; count1=co

25、unt1+1;state=waitserve; elsif i=6 then i=7; state=allow2hit; else i -进程处于允许1击球状态 if hit1=1 then i=2; state=ballmoveto2; else count2=count2+1;i=0; state -进程处于允许2击球状态 if hit2=1 then i=6;state=ballmoveto1; else count1=count1+1;i=0; state=waitserve; end if; end case; end if; end if;end process; end one;

26、3.5记分牌译码显示电路设计数码管的动态扫描显示就是指我们采用分时的方法,轮流控制各个显示器的公共端,使各个显示器轮流点亮。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感7。如图8数码管显示电路图,图中1K电阻起限流作用,保护发光二极管。图8 数码管显示图3.6按键去抖、乒乓球路径显示电路设计乒乓球游戏机用按键控制击、发球以及开始游戏键,当甲(开关3)发球,LED灯由左向右依次点亮(D1、D6常亮);到D9时,乙(开关6)击球,LED灯向甲移动。同理,当乙发球

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2