基于FPGA乒乓游戏机的设计.docx
- 文档编号:17814941
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:29
- 大小:164.56KB
基于FPGA乒乓游戏机的设计.docx
《基于FPGA乒乓游戏机的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA乒乓游戏机的设计.docx(29页珍藏版)》请在冰点文库上搜索。
基于FPGA乒乓游戏机的设计
题目:
基于FPGA乒乓游戏机的设计
学生姓名:
蒯学文
学号:
2010010501
所在学院:
机械与电子工程学院
专业班级:
电信1001
届别:
2014届
指导教师:
胡永刚
皖西学院本科毕业设计(论文)创作诚信承诺书
1.本人郑重承诺:
所提交的毕业设计(论文),题目《基于FPGA乒乓游戏机的设计》是本人在指导教师指导下独立完成的,没有弄虚作假,没有抄袭、剽窃别人的内容;
2.毕业设计(论文)所使用的相关资料、数据、观点等均真实可靠,文中所有引用的他人观点、材料、数据、图表均已标注说明来源;
3.毕业设计(论文)中无抄袭、剽窃或不正当引用他人学术观点、思想和学术成果,伪造、篡改数据的情况;
4.本人已被告知并清楚:
学校对毕业设计(论文)中的抄袭、剽窃、弄虚作假等违反学术规范的行为将严肃处理,并可能导致毕业设计(论文)成绩不合格,无法正常毕业、取消学士学位资格或注销并追回已发放的毕业证书、学士学位证书等严重后果;
5.若在省教育厅、学校组织的毕业设计(论文)检查、评比中,被发现有抄袭、剽窃、弄虚作假等违反学术规范的行为,本人愿意接受学校按有关规定给予的处理,并承担相应责任。
学生(签名):
日期:
年月日
基于FPGA乒乓游戏机的设计
学生:
蒯学文(指导老师:
胡永刚)
皖西学院机械与电子工程学院
摘要:
在现代电子设计领域,微电子技术迅猛发展,无论是系统设计、电路设计,还是芯片设计,其设计的复杂度都在增加,传统的手工设计方法已经不能满足设计者的要求,急需新的设计工具来解决。
EDA技术的迅速发展顺应了时代的发展,使得电子设计自动化技术有了新的、快的发展,其重要程度日益突出。
本文设计了基于FPGA的,用VHDL语言描述的乒乓球游戏机的设计。
它由控制模块、数码管的片选信号模块、送数据模块和7段译码器模块组成,连接形成乒乓球游戏机的顶层电路。
在QuartusⅡ软件上用VHDL语言分别对每个模块进行描述,然后在软件上进行编译、仿真,最终实现乓乓球比赛的基本过程和规则,并能自动裁判和计分,达到设计的要求。
关键词:
EDA;FPGA;VHDL
FPGA-basedDesignOfTableTennisGame
Student:
KuaiXuewen(FacultyAdviser:
HuYonggang)
(CollegeofMechanical&electronicEngineeringinstitute,WestAnhuiUniversity)
Abstract:
Inthefieldofmodernelectronicdesign,microelectronicstechnologyrapiddevelopment,systemdesign,circuitdesign,chipdesign,theincreaseinthecomplexityofthedesign,thetraditionalmanualdesignmethodalreadycannotmeettherequirementsofthedesigner,bebadlyinneedofnewdesigntoolstosolve.TherapiddevelopmentofEDAtechnologywiththedevelopmentofTheTimes,maketheelectronicdesignautomationtechnologythedevelopmentofanew,fast,itsimportanceisincreasinglyprominent.ThispaperdesignbasedonFPGA,usingVHDLlanguagetodescribethedesignofthetabletennisgame.Itiscomposedofcontrolmodule,digitaltubepieceselectedsignalmodule,datamoduleanddecodermodule7,circuitconnectedtothetopofthetabletennisgame.IntheQuartusⅡsoftwareseparatelyforeachmoduleisdescribedwithVHDLlanguage.
Keywords:
EDA;FPGA;VHDL
1引言
1.1课题研究的背景
随着微电子技术的飞跃发展,无论是系统级设计、电路设计还是芯片设计,它的复杂程度都在不断的增加,而且它的发展速度也越来越快。
这时,仅仅依靠传统的电子设计方法已经不能满足需求。
EDA技术的兴起与发展给电子设计带来了革命性的变化,推动了微电子技术的迅猛发展,电子学进入一个崭新的时代。
1.2课题研究的目的
EDA技术是现代电子设计领域的一门技术,它提供了基于计算机和信息技术的电路设计方法,不依托其他设计工具,仅以计算机为工具,在EDA软件上完成设计、编译、仿真。
EDA技术正以空前的发展速度和规模渗透到各行各业。
在这个快节奏生活的社会,人们外出的休闲娱乐活动越来少,而越来越多的电子游戏解决了这个问题,人们可以在家中玩各种休闲娱乐节目。
所以设计了基于FPGA的两人乒乓球游戏机,让人们能在忙碌中有时间体验下体育节目的乐趣。
FPGA器件具有高开发周期短,高集成度,现场可修改等特点,因此十分有必要对FPGA进行详细认真的研究。
硬件描述语言VHDL功能性强,灵活性高,覆盖面广,用以甚高速集成电路硬件描述语言,具有很好的实用性。
总的来说,现代EDA技术的基本特征是采用高级语言(VHDL、AHDL等)描述,具有系统级仿真和综合的能力。
它必将成为21世纪不可或缺的电子设计工具,必将影响这个世纪的发展。
2开发工具简介
2.1EDA基础
2.1.1EDA定义
EDA是ElectronicsDesignAutomation(电子设计自动化)的缩写,以计算机为工作平台;在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的定义发展而来的;是利用电子技术基础、计算机技术、智能化技术等多种应用技术而开发成的整套电子CAD软件;是一种帮助从事电子元件产品和系统设计的电子工作者的综合技术。
2.1.2EDA技术的发展历程
集成电路的飞快发展不断给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.3EDA技术的发展趋势
随着微电子技术的不断发展与进步和市场需求的不断增长,EDA技术在21世纪后得到了迅猛的发展,这一发展趋势表现在以下几个方面:
(1)软件IP核在微电子的产业领域、设计应用领域和技术领域得到进一步的巩固与发展。
(2)使支持硬件描述语言仿真和设计的EDA软件不断地强大起来。
(3)EDA使得系统与器件、专用集成电路ASIC与FPGA、模拟与数字、行为与结构、软件与硬件等的界限越来越模糊。
(4)EDA技术保护了设计者的电子设计成果的知识产权。
(5)大规模的电子系统都是以EDA为工具设计的,正以飞快的速度渗透到IP核模块。
(6)更大规模的可编程逻辑器件正在推向市场,使得设计更为广泛与便捷。
2.1.4EDA技术的基本特征
总的来说,现代EDA技术是采用高级程序语言描述,具有系统级仿真和综合的能力。
它主要采用并行工程和“自顶向下”的设计方法,使开发人员从一开始就能考虑到产品生成周期的诸多方面,包括质量、成本、开发时间及用户的需求等。
然后从系统设计开始,在顶层进行功能方框图的划分和结构的设计,在方框图一级进行仿真、纠错,并用VHDL、Verilog-HDL等硬件描述语言对顶层的系统进行功能和行为上的描述,在系统一级进行验证与仿真。
最后,用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印刷电路板或者是专用的集成电路。
近年来,硬件描述语言等设计数据格式逐步形成一种标准,不同的设计风格和应用要求使得各具特色的EDA工具被集成在相同的设计方法上,EDA技术的设计框架日趋标准化。
2.1.5EDA技术的基本工具
集成电路技术的不断发展对EDA技术提出了更高的要求,促进了EDA技术向更高的层次发展。
但实际来说,EDA系统的设计能力一直难以满足集成电路的要求。
EDA工具的发展经历了两个阶段,即物理工具阶段和逻辑工具阶段。
现在,人们已经开发了很多计算机辅助设计工具来帮助设计集成电路,常见的EDA工具有编辑器、仿真器、检查/分析工具和优化/综合工具等,如图2.2所示。
图2.2EDA设计工具的分类
2.1.6EDA技术的基本设计思路
(1)EDA技术的电路级设计
电路级设计工作,首先,应该先确定合适的设计方案,然后选择方便实现该方案的元器件,接着就可根据所选元器件设计符合要求的电路原理图,再接着进行一次仿真。
其目的是检验此设计方案在元件模型库支持下的功能方面是否正确,这样,设计工作就进入了轨道。
第一次仿真通过后,就开始进行PCB的自动布局布线,此布局布线要根据原理图产生的电路连接网络表来进行。
然后,对PCB进行分析,将分析结果反馈给电路图,并再次仿真。
这样,PCB板在实际工作中的可行性就一目了然了。
综上,EDA的电路级设计可在实际的电子系统产生之前就了解其功能特性,从而降低其设计风险,降低开发成本,缩短其开发周期,使得设计人员能够更好、更方便的设计。
电路级设计工作流程如图2.3
图2.3电路级设计工作流程图
(2)EDA技术的系统级设计
EDA技术的系统级设计方法是采用“自顶向下”的思路来设计的,让开发者一开始就可了解到产品的开发周期、生产成本等。
设计者首先从系统方案入手,进行顶层的划分和结构设计;然后,用VHDL语言等硬件描述语言对系统进行深刻描述;接着就用编辑器将其转换成标准的VHDL文件,再接着验证系统功能设计的正确性;再接着就用逻辑综合优化工具生成具体的门级电路的网络表;其后,进行时序仿真;最后,就到了系统的物理实现级,将其变成FPGA等。
EDA技术的系统级设计如图2.4所示。
图2.4EDA技术的系统级设计
2.1.7EDA的设计流程
EDA的设计流程是“自顶向下”的设计思路。
设计流程如图2.5所示。
图2.5应用于FPGA/CPLD的EDA开发流程
2.2可编程逻辑器件简介
(1)可编程逻辑器件的发展历程
数字电子领域中常用的逻辑器件大概有三种,即标准逻辑器件,定制逻辑器件和可编程逻辑器件PLD。
1970年出现了最早的可编程逻辑器件:
PROM,它由“与”阵列和“或”阵列组成,其阵列具有庞大的规模,运行速度也很慢;20世纪70年代中期出现了由可编程的“与”阵列和可编程的“或”阵列组成的PLA,但其编程太过于复杂,使设计者们很难开发;20世纪70年代末,推出了由可编程的“与”阵列和固定的“或”阵列组成的器件,使得制造工艺提高,工作速度加快,结构种类也增加很多多,设计者们能够灵活、便捷的设计;20世纪80年代初,出现了可编程通用阵列逻辑器件,产品性能更加的优越,在当时得到了广泛的应用。
不过,这些器件都难以实现复杂的逻辑功能,时代的发展需要更大规模的逻辑器件来满足要求,在20世纪80年代末后,PLD向着高密度,低成本,高速度,多种类的趋势发展。
20世纪90年代后,可编程逻辑器件有了飞快的发展,其集成度越来越高,速度越来越快,其生产工艺和测试技术都在迅猛发展,新的PLD不断推出市场,并得到广泛应用。
(2)可编程逻辑器件的分类
按编程的特性可以分为一次性编程和可多次编程两类。
一次性编程的器件采用非熔丝开关设计的开关元件,其只可以编程一次,且不可更改;可多次编程的PLD是受存储器的控制,可改写,其可分为EPROM、EEPROM、在系统编程的PLD和在线可重配置ICR器件。
按集成度可分为低密度可编程逻辑器件和高密度可编程逻辑器件。
低密度逻辑器件如:
PROM、PLA、PAL、GAL等;高密度可编程逻辑器件CPLD和FPGA(现场可编程门阵列)。
FPGA是20世纪90年代发展起来的,其特点是现场可编程,本论文就是基于FPGA设计的,下面会详细介绍FPGA。
可编程逻辑器件按结构分可分为两种,一种为乘积项结构器件,另一种为查找表结构器件。
乘积项结构器件的基本结构是“与-或”阵列;查找表结构器件的基本结构是简单的查找表,通过查找表构成阵列形式。
(3)可编程逻辑器件的特点
可编程逻辑器件有这些特点:
减小系统体积,能够增强逻辑设计的灵活性,能够提高系统的处理速度并增强可靠性,缩短设计周期,减小设计成本,并使系统具有加密功能等。
种种这些特点都推动着可编程逻辑器件的发展,使得设计数字系统越来越灵活,越来越简易。
(4)FPGA的定义
FPGA即现场可编程门阵列(FieldProgrammableGateArray)的缩写,它是20世纪90年代发展起来的。
他的一个突出特点就是现场可编程,简单来说就是在FPGA工作的地方就能把存在FPGA外的编程数据加载到FPGA中,且不通过计算机。
(5)FPGA的结构与工作原理
FPGA器件在结构可以分为可编程逻辑块、可编程内部连线和可编程I/O模块。
常见的FPGA的结构有三种类型,他们分别是多级与非门结构、查找表结构和多路开关结构。
2.3硬件描述语言(VHDL)
(1)VHDL语言概述
VHDL语言是一种用于数字系统的设计和测试的硬件描述语言,是随着高密度集成化和集成电路系统化的发展而逐步发展起来的一种语言。
对于小规模的数字集成电路,通常可以用传统的设计输入方法,如可以用原理图输入的方法来完成,并进行模拟仿真。
但纯原理图输入的方式对于大型、复杂的系统,由于种种条件和环境的制约,其工作效率较低,而且容易出错,暴露出多种弊端。
在信息技术高速发展的今天,对集成电路提出了高集成度、系统化、微尺寸、微功耗的要求,因此,高密度可编程逻辑器件和VHDL便应运而生。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言,以及IEEE公布了VHDL的标准版本。
1993年,VHDL作为IEEE的工业标准硬件描述语言,得到了众多EDA公司的支持,在电子工程领域,已经成为事实上的通用硬件描述语言。
有专家预言,在21世纪,VHDL语言必将承担起几乎全部的数字系统的设计任务。
(2)VHDL语言的特点
VHDL主要用于描述数字系统的结构、行为、功能和结构。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。
应用VHDL进行工程设计的优点主要有以下几点:
①VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计的功能的可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能的可行性做出判断。
2与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
3VHDL对设计的描述具有相对的独立性。
设计者可以不懂硬件结构,也不必顾及最终设计的目标器件是什么,而进行独立的设计,使得VHDL设计程序的硬件实现目标器件有着广阔的选择范围。
4VHDL本身的生命周期长。
VHDL的硬件描述与工艺无关,不会因为工艺变化而使描述过时。
与其工艺技术有关的参数可通过VHDL提供的属性加以描述,当生产工艺改变时,只需修改相应程序中的属性参数即可。
5对于完成的设计,在不改变源程序的条件下,只需改变类属参数或函数,就能轻易地改变设计的规模和结构。
使得VHDL具有类属描述语句和子程序调用等功能。
⑥用VHDL完成一个确定的设计,可利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表。
用这种方式就突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。
2.4QuartusⅡ9.0开发软件简介
QuartusⅡ是Altera公司开发的一种PLD设计软件,它具有全面的开发环境,能够实现强大的逻辑功能。
同时,它也是Altera公司在MAX+plusⅡ之后的一种在业内领先的PLD软件,它是一种针对FPGA/CPLD器件的设计、仿真、编程的EDA开发软件,其在电子设计自动化领域的重要性日益突出。
(1)QuartusⅡ9.0的特点
QuartusⅡ9.0是Altera公司在2009年新推出的一种PLD设计软件,它具有全面的开发环境,可在各种平台上运行设计,具有完全集成化、强大的开放性、丰富的设计库资料、支持多种硬件描述语言、简单易学等特点。
QuartusⅡ9.0功能比较强,兼用性也非常好,是很好的EDA工具软件。
QuartusⅡ软件支持第三方的EDA开发软件,还能够提供比较完善且人性化的设计界面;此软件通过DSPBuilder工具Matlab软件可实现各种DSP的应用;同时,QuartusⅡ软件还具有快速编译的特性,从而缩短设计的周期,加快设计的速度,提高了软件的开发效率。
QuartusⅡ软件的种种特点,使得它必将成为EDA技术不可缺少的开发软件。
(2)QuartusⅡ设计流程
QuartusⅡ软件允许在设计的任何阶段都能使用其软件的图形用户界面、命令行界面、EDA工具界面等。
其设计流程主要包括设计输入、综合、布局布线、仿真、时序分析、仿真、编程和配置。
其设计的流程图如图2.6所示。
图2.6QuartusⅡ设计流程
(3)QuartusⅡ9.0设计入门
应用QuartusⅡ9.0软件设计的一般步骤一般有这些。
首先启动QuartusⅡ9.0软件进行设计输入,设计输入包括建立工作库目录文件夹、编辑设计文件并输入源程序、建立工程项目;然后进行编译综合;接着进行仿真测试,仿真测试包括建立仿真测试波形文件、设置仿真时间区域、输入工程的信号节点、设计输入的信号波形、仿真器的参数设置、启动仿真器并观察仿真结果;最后进行硬件测试,硬件测试时,先确定引脚编号,然后在进行引脚锁定,接着进行编程与配置FPGA,最后就可以将文件下载到实验板上进行测试,检查电路的设计是否正确。
3乒乓游戏机的功能实现与设计思路
3.1乒乓游戏机的功能实现
两人乒乓游戏机能够模拟乒乓球比赛的基本过程和规则,并能自动裁判和计分。
乒乓游戏机是用8个发光二极管代表乒乓球台,中间两个发光二极管兼作乒乓球网,用点亮的发光二极管按一定的方向移动来表示球的运动。
在游戏机的两侧各设置两个开关,一个是发球开关(s1a,s1b),另一个是击球开关(s2a,s2b)。
甲乙两人按乒乓球比赛的规则来操作开关。
当甲方按动发球开关s1a时,靠近甲方的第一盏灯亮,然后发光二极管由甲方乙依次点亮,代表球在移动。
当球过网后,按设计者规定的球位乙方就可以击球。
若乙方提前击球或者没有击着球,则判乙方失分,甲方计分牌自动加分。
然后重新发球,比赛继续进行。
比赛一直进行到一方计分到11分,该局结束,计分牌清零,可以进行新的一局比赛。
具体功能如下:
(1)使用乒乓球游戏机的甲乙双方各在不同的位置发球或者击球。
(2)乒乓球的位置和移动的方向由灯亮及依次点亮的方向决定,球移动的速度为0.1~0.5s移动一位。
游戏者根据球的位置发出相应的动作,提前击球或出界均判失分。
(3)比赛用11分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方计满11分,该方就算胜了此局。
当计分牌清零后,又开始了新的一局比赛。
3.2乒乓游戏机的设计思路
根据乒乓游戏机功能的要求,我们可以分成4个模块来实现。
分别为控制模块、产生数码管片选信号模块送、数据模块和7段译码器模块。
在设计中,控制模块为corna模块,它实现了乒乓球游戏机的的全部逻辑功能;数码管的片选信号模块为sel模块,其为实现产生数码管的片选信号;送数据模块为ch41模块,它的作用是为在数码管的片选信号变化时,送出数据给相应的模块;7段译码器模块为disp模块,,它为实现数据的显示,即计分牌的分数。
4乒乓游戏机各模块的设计
4.1控制模块的设计
控制模块corna要实现两个功能,第一:
实现系统的逻辑功能,第二:
将整数的计分数据转换为十进制数,以此便于译码显示。
根据要实现的功能,描述其逻辑功能的VHDL程序见附录1。
在quartusⅡ软件上编译、运行并生成corna模块元件如图3.1所示。
图4.1corna模块
4.2数码管片选信号模块的设计
根据设计要求,实现数码管片选信号模块的逻辑功能的VHDL程序描述语言见附录2。
在quartusⅡ软件上编译、运行并生成sel模块元件如图3.2所示。
图4.2sell模块
4.3送数据模块的设计
模块ch41要实现在数码管的片选信号变化时,送出相应的数据,其实现其功能的VHDL语言见附录3。
在quartusⅡ软件上编译、运行并生成模块元件(ch41)如图3.3所示。
图4.3ch41模块
4.4七段译码器模块的设计
根据设计要求,7段译码器模块disp的VHDL程序描述语言见附录4。
在quartusⅡ软件上编译、运行并生成disp模块元件如图3.4所示。
图4.4disp模块
5乒乓游戏机的顶层电路设计与仿真
5.1乒乓游戏机的顶层电路图设计
根据设计要求,在Quartus软件中连接各模块,形成乒乓游戏机的顶层电路。
如图5.1所示。
图5.1乒乓游戏机的顶层电路图
5.2乒乓游戏机的波形仿真
(1)图7.1为A方先发球,B方在恰当的时刻击球成功,当球回到A方时,A方没有及时接到球的仿真波形。
在图中可以看到乒乓球的运动轨迹和打球的状态,此时B方得一分。
仿真波形如图5.2所示。
图5.2仿真1
(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 乒乓 游戏机 设计