fpga乒乓球游戏机设计大学论文.docx

上传人:b****8 文档编号:9259389 上传时间:2023-02-03 格式:DOCX 页数:56 大小:788.74KB
下载 相关 举报
fpga乒乓球游戏机设计大学论文.docx_第1页
第1页 / 共56页
fpga乒乓球游戏机设计大学论文.docx_第2页
第2页 / 共56页
fpga乒乓球游戏机设计大学论文.docx_第3页
第3页 / 共56页
fpga乒乓球游戏机设计大学论文.docx_第4页
第4页 / 共56页
fpga乒乓球游戏机设计大学论文.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

fpga乒乓球游戏机设计大学论文.docx

《fpga乒乓球游戏机设计大学论文.docx》由会员分享,可在线阅读,更多相关《fpga乒乓球游戏机设计大学论文.docx(56页珍藏版)》请在冰豆网上搜索。

fpga乒乓球游戏机设计大学论文.docx

fpga乒乓球游戏机设计大学论文

摘要

在电子技术获得了飞速的发展的今天,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

而电子游戏因其携带方便、互动性高、无场地限制等优势,成为了人们休闲时很好的选择。

本设计将采用FPGA对“乒乓球”游戏机进行实现。

FPGA具有功能强、可靠性高、使用方便、体积小及重量轻等优点。

近年来,国内的FPGA技术与产品开发应用方面的发展也很快,各种电子产品已越来越多地采用FPGA控制系统且性价比高。

然后以FPGA为平台,VHDL硬件描述语言编程实现,实验箱验证。

最后在硬件上调试并实现实现“乒乓球”游戏机功能。

关键字:

EDA,FPGA,VHDL,游戏机

ABSTRACT

Theelectronictechnologyhasobtainedtherapiddevelopmentinthemodern,theelectronicproductspenetratedalmosteveryfieldofthesociety,astrongimpetustothedevelopmentofsocialproductiveforcesandthesocialinformationizationdegreeisimproved,simultaneouslyalsomakesthemodernelectronicproductstofurtherimprovetheperformance,productreplacementareincreasinglyfastpace.Electronicgamesbecauseofitsportability,interactivehigh,nositelimitationandotheradvantages,hasbecomethepeopleleisuretimeverygoodchoice.

ThisdesignwillusetheFPGAonthe"pingpong"Electronicgamemachine.FPGAhastheadvantagesofstrongfunction,highreliability,convenientuse,smallvolumeandlightweightetc..Inrecentyears,thedevelopmentofFPGAtechnologyandproductdevelopmentandapplicationofdomestictoosoon,allkindsofelectronicproductshavebeenincreasinglyadoptedinFPGAcontrolsystemandhighcostperformance.ThentakingFPGAastheplatform,VHDLhardwaredescriptionlanguageprogramming,verificationexperimentbox.Finally,inthehardwaredebuggingandtherealizationof"pingpong"gamecomputerfunction.

KeyWords:

EDA,FPGA,VHDL,Gamemachine

第1章引言

1.1选题背景

电子技术的飞速发展,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏应运而生,满足大家休闲时的娱乐需求。

由此设计了这个两人的乒乓球游戏。

本设计将采用FPGA对“乒乓球”游戏机进行实现。

FPGA具有功能强、可靠性高、使用方便、体积小及重量轻等优点。

近年来,国内的FPGA技术与产品开发应用方面的发展也很快,各种电子产品已越来越多地采用FPGA控制系统且性价比高。

而电子信息类产品的开发明显地出现了两个特点:

一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。

而伴随着如上两个特点的产生,相应的出现了设计上的两个问题。

其一,在电子系统日趋数字化、复杂化和大规模集成化的今天,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计日趋复杂。

那么如何去完成这些高复杂度的电子设计呢?

其二,电子产品设计周期短和上市快是电子厂商们坚持不懈的追求,那么面对日趋复杂的设计,又如何能够缩短开发时间呢?

解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作。

1.2研究设计主要内容

两人乒乓球游戏机是用8个发光二级管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定方向移动来表示球的运动。

在游戏机的两侧各设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。

当甲方按动发球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方向乙方依次点亮,代表乒乓球的移动。

当球过网后按照设计者规定的球位乙方就可以击球。

若乙方提前击球或者未击到球,则甲方得分。

然后重新发球进行比赛,知道一方记分达到21分为止,记分清零,重新开始新一局比赛。

第2章开发工具描述

2.1EDA基础

EDA是电子设计自动化(ElectronicDesignAutomation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。

EDA技术是以计算机为工具,根据硬件描述语言HDL(HardwareDescriptionlanguage)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。

典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。

综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。

综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。

也就是说,综合器是软件描述与硬件实现的一座桥梁。

综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。

硬件描述语言HDL是相对于一般的计算机软件语言,如:

C、PASCAL而言的。

HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。

设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。

目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。

2.1.1EDA技术的发展历程

集成电路的飞快发展不断给EDA技术提出更高的要求,对EDA技术的发展起了巨大的推动作用。

从20世纪60年代中期开始,人们不断地开发出各种计算机辅助设计工具来帮助设计人员进行集成电路和电子系统的设计。

经历了计算机辅助设计、计算机辅助工程设计和电子系统设计自动化这3个阶段,如图2-1所示。

图2-1EDA发展历程

(1)CAD阶段

20世纪70年代,随着中、小规模集成电路的兴起和应用,传统的手工设计印刷电路板和集成电路的方法已经不能满足设计精度和效率的要求,于是电子设计工程师们开始在二维平面图形上进行计算机辅助设计,这样就产生了第一代EDA工具,设计者从繁杂、机械的、手工布局和布线工作中解放了出来。

(2)CAE阶段

20世纪80年代以后,集成电路的规模越来越大,电子系统设计的复杂也在增加,电子设计自动化的工具逐步完善和发展起来,设计者们尤其在设计方法、设计工具集成化方面取得了很大的进步。

为了适应电子产品在规模和制作上的需要,以计算机仿真和自动布线为核心的第二代EDA技术应运而生。

其特点是以软件设计工具为核心,通过软件完成产品的开发、设计、分析、生产和测试等工作。

(3)ESDA阶段

20世纪90年代,设计师们逐步从使用硬件转向去设计硬件,从单个电子产品开发转向系统级电子产品开发(及片上系统集成)。

因此,这时的EDA工具是以系统级设计为核心,包括结构综合与系统行为级描述,系统仿真与测试验证,系统决策与文件生成,系统划分与指标分配等一整套的电子系统设计工具。

这时的EDA工具不仅具有电子系统设计的能力,而且具有独立于生产工艺和厂家的系统级设计能力。

第三代EDA工具的出现,极大地提高了电子系统设计的效率,让设计工程师们开始能够以概念来驱动设计工程的梦想。

2.1.2EDA技术的发展趋势

随着微电子技术的不断发展与进步和市场需求的不断增长,EDA技术在21世纪后得到了迅猛的发展,这一发展趋势表现在以下几个方面:

(1)软件IP核在微电子的产业领域、设计应用领域和技术领域得到进一步的巩固与发展。

(2)使支持硬件描述语言仿真和设计的EDA软件不断地强大起来。

(3)EDA使得系统与器件、专用集成电路ASIC与FPGA、模拟与数字、行为与结构、软件与硬件等的界限越来越模糊。

(4)EDA技术保护了设计者的电子设计成果的知识产权。

(5)大规模的电子系统都是以EDA为工具设计的,正以飞快的速度渗透到IP核模块。

(6)更大规模的可编程逻辑器件正在推向市场,使得设计更为广泛与便捷。

2.1.3EDA技术的基本工具

集成电路技术的不断发展对EDA技术提出了更高的要求,促进了EDA技术向更高的层次发展。

但实际来说,EDA系统的设计能力一直难以满足集成电路的要求。

EDA工具的发展经历了两个阶段,即物理工具阶段和逻辑工具阶段。

现在,人们已经开发了很多计算机辅助设计工具来帮助设计集成电路,常见的EDA工具有编辑器、仿真器、检查/分析工具和优化/综合工具等,如图2-2所示。

图2-2EDA设计工具的分类

2.2硬件描述语言—VHDL

VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。

现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

有专家认为,在新的世纪中,VHDL与Verilog语言将承担起大部分的数字系统设计任务。

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体[4](可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

应用VHDL进行工程设计的优点是多方面的。

(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。

强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。

符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。

(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

2.3QuartusⅡ简介

QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可在以XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

QuartusII软件具有以下很多突出的特点。

(1)开放式的多平台设计环境QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需求,也是可编程片上系统设计的综合性环境和SOPC开发的基本设计工具,并为AtteraDSP开发包进行系统模型设计提供了集成综合环境。

(2)设计与结构无关

(3)可在多种平台运行

(4)层次化设计QuartusII支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块进行调用,从而解决了原理图与HDL混合输入设计的问题。

(5)模块化工具设计者可以从各种设计输入、编辑、校验及器件编程工具中做出选择,形成用户风格的开发环境,必要时还可在保留原始功能的基础上添加新的功能。

(6)支持硬件描述语言QuartusII软件支持多种硬件描述语言的设计输入,包括标准的VHDL,VerilogHDL及Atera公司自己开发的硬件描述语言AHDL。

(7)丰富的PLM模块

(8)MegaCore功能MegaCore是经过预先校验的为实现复杂的系统功能而提供的HDL网表文件。

(9)OpenCore

QuartusII软件具有开放性内核的特点,OpenCore可供设计者在购买产品前来对自己的设计进行评估。

第3章功能实现与设计思路

3.1功能实现

两人乒乓游戏机能够模拟乒乓球比赛的基本过程和规则,并能自动裁判和计分。

乒乓游戏机是用8个发光二极管代表乒乓球台,中间两个发光二极管兼作乒乓球网,用点亮的发光二极管按一定的方向移动来表示球的运动。

在游戏机的两侧设置击球开关。

甲乙两人按乒乓球比赛的规则来操作开关。

当甲方按动发球开关,发光二极管由甲方向乙方依次点亮,代表球在移动。

当球过网后,按设计者规定的球位乙方就可以击球。

若乙方提前击球或者没有击着球,则判乙方失分,甲方计分牌自动加分。

然后重新发球,比赛继续进行。

比赛一直进行到一方计分到21分,该局结束,计分牌清零,可以进行新的一局比赛。

具体功能如下:

(1)使用乒乓球游戏机的甲乙双方在不同的位置发球或者击球。

(2)乒乓球的位置和移动的方向由灯亮及依次点亮的方向决定,球移动的速度为0.1~0.5s移动一位。

游戏者根据球的位置发出相应的动作,提前击球或出界均判失分。

(3)比赛用21分为一局来进行,甲乙双方设置各自的记分牌,任何一方计满21分,该方就算胜了此局。

计分牌清零,开始新的一局比赛。

3.2设计方案

根据乒乓游戏机功能的要求,我们可以分成5个模块来实现。

分别为控制模块、显示控制和输出模块、译码模块、分频模块、防抖模块。

在设计中,控制模块为tennis模块,它实现了乒乓球游戏机的的全部逻辑功能;显示控制和输出模块为countyima模块,它实现乒乓球游戏机七段数码管的片选;7段译码器模块为yima模块,它将送来的分数进行译码,实现数据的显示,即计分牌的分数;分频模块将系统时钟按照设计所需进行分频;防抖模块为fangdou模块,机械开关易引入抖动干扰,为了消除抖动干扰,需要使用防抖动电路。

乒乓球游戏机总体框图如图3-1所示。

球台控制电路

分频电路

时钟输入

防抖动电路

译码显示

乒乓球游戏机总体框图

第4章各模块程序设计

4.1主控制程序设计

主控制模块程序作为该设计的核心,控制乒乓球在LED上的移动和甲乙双方的计分的作用。

该主控制程序包括了桌台模块和译码模块两个部分。

4.1.1桌台模块程序设计

设计该乒乓球游戏机的输入/输出端口。

首先考虑输入端口,设置一个异步置位端口restart,用于在系统不正常时或重开一局时回到初始状态;两个击球输入端accep1和accep2,分别表示甲击球键输入和乙击球键输入;一个时钟输入端口clk1。

其次考虑输出端口,芯片应该有8个输出端口来控制8个发光二极管,输出一个电平,可以使发光二极管点亮;另外,要直观地表示双方的得分,就得用到七段译码器,每方用到2个,可以表示0~21的数字。

实体的设计如下:

entitytennisis

port(restart:

instd_logic;

clk1:

instd_logic;

accep1,accep2:

instd_logic;

table:

outstd_logic_vector(1to8);

score11:

outstd_logic_vector(1to8);

score12:

outstd_logic_vector(1to8);

score21:

outstd_logic_vector(1to8);

score22:

outstd_logic_vector(1to8));

endtennis;

控制模块设置了7个状态,分别是等待发球状态(waitfor)、第一盏灯亮状态(begin1)、第八盏灯亮状态(begin2)、球向乙移动状态(to2)、球向甲移动状态(to1)、允许甲击球状态(allowreceive1)和允许乙击球状态(allowreceive2)。

乒乓球游戏机中有两个计数器scor1和scor2,分别记忆甲的得分和乙的得分;一个a信号,用它的数值来控制状态机外8个发光二极管的亮和暗,比如当a=1时表示第一个发光二极管亮,用发光二级管的轮流发光表示球的移动轨迹。

控制模块结构体代码见附录一。

程序在QuartusII软件上编译、运行并生成tennis模块元件如图4-1所示。

图4-1Tennis模块元件

4.1.2译码模块程序

译码模块是将传输进入的分数信号进行译码,然后输出让LED数码管显示。

七段译码器是在数字电路设计中经常用到的显示电路。

所谓七段译码器,其实是由7段发光二极管组成的用于显示数字的器件。

常见的数码管有共阴和共阳2种。

本设计用的是共阳极显示数码管,共阳数码管是将8个发光二极管连接在一起作为公共端。

公共端常被称作位码,而降其他8位称作段码,这8位是a,b,c,d,e,f,g及h,他们对应数码管的七个段位和一个小数点。

a,b,c,d,e,f,g这七段是控制字型显示的,因此也将LED数码管称为7段数码管。

由此我们可以得到0~9的7段译码值,加上小数点将是8位显示代码。

0~9可以用4位二进制BCD码来表示。

译码模块详细程序见附录六。

下面是该译码模块的部分程序:

begin

temp<=bcdin;

casetempis

when"00000"=>bcdout1<="00000011";bcdout2<="00000010";

when"00001"=>bcdout1<="00000011";bcdout2<="10011110";

......

when"10101"=>bcdout1<="00100101";bcdout2<="10011110";

whenothers=>bcdout1<="11111101";bcdout2<="00000010";

endcase;

endprocess;

endccc;

译码程序在QuartusII软件上编译、运行,译码模块仿真如图4-2所示。

 

图4-2译码模块仿真

4.2分频器模块设计

本设计所用到的系统时钟频率为50Mhz。

时钟分频模块的功能是将输入的外部时钟信号进行分频,产生本设计所用到的小于50Mhz的信号。

其中,c1要求为1Khz,所以50Mhz/1Khz=50000,因此要一个50000分频器产生1Khz的信号。

c2要求为5hz,利用信号c1,所以1Khz/5hz=200,因此要一个200分频器产生5hz的信号。

该分频器的工作原理为计数器从0~n-1循环计数,当计数值达到n-1时归零,并且使计数器在n-1时输出一个脉冲。

分频器模块程序见附录二。

程序在QuartusII软件上编译、运行并生成fenpin模块元件如图4-3所示。

图4-3Fenpin模块元件

分频器模块编译、运行之后进行仿真,该仿真将时钟信号进行分频,结果如图4-4所示。

图4-4分频模块仿真

4.3防抖动模块设计

本设计会用到机械按键,机械开关在开关切换的瞬间在接触点会出现来回弹跳的现象,虽然只是一次按键然后放开,而实际产生的按键信号不止弹跳一次,因此必须加上消除弹跳的电路。

本设计采用计数器型防抖电路。

设置一个模值为4的控制计数器,在人工按键key=’1’时,执行加1计数;key=’0’时,计数器进入状态0。

计数器只有在状态1时有输出。

计数器进入状态3,处于保持状态。

按键一次,计数器只有一个单脉冲输出。

按键key是产生抖动的根源,按照设计,只有按键持续时间大于3个时钟周期,计数器输出才可能产生有效正跳变,输出一个单脉冲。

只要选择时钟周期大于机械开关抖动的产生的毛刺宽度,那么毛刺作用就不可能使计数器有输出,防抖动目的就可以实现。

防抖模块的详细程序见附录三。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1