毕业设计(论文)-基于VHDL的乒乓球游戏机的设计.doc_第1页
毕业设计(论文)-基于VHDL的乒乓球游戏机的设计.doc_第2页
毕业设计(论文)-基于VHDL的乒乓球游戏机的设计.doc_第3页
毕业设计(论文)-基于VHDL的乒乓球游戏机的设计.doc_第4页
毕业设计(论文)-基于VHDL的乒乓球游戏机的设计.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

长沙学院 CHANGSHA UNIVERSITY本科生毕业设计设 计 题 目: 基于VHDL的乒乓球游戏机 的设计 系部: 电子与通信工程系 专 业: 电子信息工程 学 生 姓 名: 龚 浪 班 级: 09电子1 学号2009044118 指导教师姓名: 龙英 职称 讲师 长沙学院教务处 二一一年二月制(20 13 届)本科生毕业设计说明书基于VHDL的乒乓球游戏机的设计系部: 电子与通信工程系 专 业: 电子信息工程 学 生 姓 名: 龚浪 班 级:09电子1 学号 2009044118 指导教师姓名: 龙英 职称 讲师 最终评定成绩 2013 年 4 月 长沙学院毕业设计摘 要本设计是以计算机为开发平台,运用EDA软件工具开发环境,使用硬件描述语言VHDL,采用自上而下的设计方法,把系统由上到下的分成几个模块设计,最后达到系统的要求,然后在Quartus II9.1上通过编程、调试、编译、仿真,从而实现乒乓球游戏机的设计。本文首先介绍了乒乓球游戏机的研究现状与发展趋势、乒乓球游戏机的应用、课题的研究意义以及乒乓球游戏机相关的理论知识,讲述了乒乓球游戏机的设计思路与模块划分。然后把乒乓球游戏机划分为几个模块,使用Quartus II仿真软件对每个模块进行了模拟仿真,并对仿真出来的结果进行研究和分析。最后把程序下载到实验箱上,进行相关的调试。该系统结构跟传统的设计相比,具有明显的优势,例如体积小,层次分明,遇到复杂计算时能很快发现和解决问题,独立性强,修改简单等。关键词: 可编程逻辑器件,Quartus,VHDL,乒乓球游戏机 ABSTRACTTaking the computer as a working platform,this Table Tennis Game synthetically adopts EDA software tool development environment and the hardware descriptive language VHDL, to divide the system into several module designs from top to bottom according to the top-down design so as to meet the requirements of the system. By programming, debugging, Inter Compilation and simulation on QUARTUS II9.1, this design of Table Tennis Game will be achieved.This paper dominantly introduces the research status, the development trend of the applications of the Table Tennis Game, the significance of the task, and the relevant theoretical knowledge of the Table Tennis Game. It formulates the ideas and modular division of the Table Tennis Game. Then, lantern controller is divided into several modules. By using the QUARTUS II9.1 simulation software, each module is simulated and the results of simulation are analyzed. Finally, the program is downloaded to the experimental box and carried out corresponding hardware debugging. The system of this design has a great advantage in comparison to the traditional design, such as a more plain structure, a smaller bulk, earlier problem-findings when encountering with complex calculation, shorter design time, stronger dependence and simpler modification and so on.Keywords: PLD,Quartus, VHDL,Table Tennis Game 目 录摘 要IABSTRACTII第1章 绪论11.1乒乓球游戏机的背景和意义11.2乒乓球游戏机的应用11.3本文的主要工作2第2章 乒乓球游戏机设计基础32.1乒乓球游戏机的基本特点32.2 可编程逻辑器件概述32.3 VHDL语言以及Quartus II应用62.4本章小结7第3章 基于VHDL的乒乓球游戏机的设计83.1 乒乓球游戏机基本原理83.2 乒乓球游戏机的模块设计93.2.1 分频器模块设计93.2.2 PRBS伪随机数产生模块设计103.2.3 乒乓球控制模块设计113.2.4 按键扫描模块设计123.2.5蜂鸣器模块设计133.2.6 数码管显示模块设计133.3 pingpongtop系统整体结构143.4本章小结15第4章 乒乓球游戏机的仿真及硬件验证164.1乒乓球游戏机的波形仿真164.2引脚的锁定194.3 编程下载及验证194.4本章小结24结 论25参考文献26附 录27致 谢41 IV 长沙学院毕业设计 第1章 绪论 1.1乒乓球游戏机的背景和意义乒乓球起源于十九世纪末的英国。发展初期是作为一种娱乐游戏,最初的乒乓球是由弹性强的材料制成,拍子是木质板(如雪茄盖盒),像网球一样在桌上打,故称之为“Table tennis (桌上网球)”。1910年之后,由于科学技术的发展,球才改成用空心球。此后,乒乓球作为新兴运动发展起来。 第一次大型乒乓球比赛于1900年12月在英国伦敦举行,参加比赛的有三百多人1。而乒乓球又叫中国的国球,至今中国在乒乓球这一项目上共获得120多个世界冠军,两次包揽奥运会的全部金牌、三次包揽世乒赛。五十年来,中国乒乓球一直处于霸主地位,即使面对过挫折,中国乒乓球队也总能在最短的时间内找到最有效的办法。他们创造了许多经典的战例和不败的神话,这均是我们中国人的骄傲,为此而自豪。1971年中美两国以乒乓球就为契机建立外交,这便是著名的“乒乓球外交”,可见乒乓球文化的影响深远。乒乓球运动具有方便、场地小等优点,在现代运动中占有着很重要的地位。随着人们生活水平的不断提高,对乒乓球设备的先进性有了更高的要求。随着科技的发展,世界进入了电子时代,剧烈的户外运动难以满足忙碌的人们对乒乓球的热情,于是简易方便的乒乓球游戏机应运而生,为快节奏生活的人们提供了娱乐与开心2。随着人们的物质生活越来越好,人们开始对娱乐有了新的追求,尤其是进入新世纪以来各种电子产品的不断更新,更是促进了我国的电子行业的发展,为此,能够推出一款新的游戏产品是非常有前景的,此次设计正是考虑了当前的社会现状,设计出一款“乒乓球”游戏机,现有的乒乓球游戏机大多数均是基于单片机实现,本设计将采用FPGA技术来实现对“乒乓球游戏机”的设计3。1.2乒乓球游戏机的应用在平时的生活中,智能化的娱乐产品非常流行。而FPGA具有功能强,可靠性高、方便快捷、体积小重量轻等优势。在国内外和自动化控制以及各个相关领域得到广泛运用。此次设计出的乒乓球游戏机有很强的实用性,高度模拟正规乒乓球比赛。其比赛规则为裁判发出比赛开始信号,随机抽取A还是B先发球。比赛进行中,选手连续获得两次发球权后,发球权交予对方发球,裁判端犯规则蜂鸣器鸣响:每方发两个球以后由对方发球,不能连续发3个球,如果抢发球,那么电路鸣响,但是都不扣分。一排发光管排列成行模拟乒乓球行进路径,其行进速度由输入的时钟信号控制:led灯我们设置了十个,速度我们可以用两个开关采用四个2进制组合设计四种速度,比如0表示开关关,1表示开关开,00表示速度最慢,01其次,10再快点,11表示速度最快,在每次比赛前先设置好球行进的速度。比赛选手通过按钮输入模拟击球信号,当发光管亮到最后一个的瞬间,若检测到对应的表示球拍的键的信号,立即将“球”反向运行,若没有接到信号,将给出出错鸣叫,同时为对方记1分,并将记分显示出来:比赛运行,发光管代表乒乓球移动,A如果发球,B没接到,那么A得一分(也即是说谁没接到球,对方得分),同时电路响,另外比分是11分制,不管谁的分数到了11分,比赛就结束,谁的分数先到11分谁赢得比赛。因此,我们设计出的乒乓球游戏机功能齐全,必将能够受到广大用户的欢迎。 1.3本文的主要工作乒乓球游戏机的设计主要工作平台是计算机平台,以EDA为主要的开发环境,采用的是VHDL硬件描述语句,是由上而下的设计方法分出几个小模块,从而达到其任务要求。接着在Quartus II 9.1软件上进行编译,调试和仿真,最后实现乒乓球游戏机的设计。第二章主要是介绍了乒乓球游戏机的工作原理和基本特点,通过查阅大量资料、学习VHDL语言,最后能掌握一些理论知识,并可以熟练操作Quartus II 9.1。第三章先是对乒乓球游戏机作出总体方案设计,然后进行拆分,分析和设计每一个小模块。第四章四依据前一章节,编译程序,接着进行模拟仿真,仔细的分析其仿真结果,最后把程序下载到开发板,做最后的硬件测试并做出总结。2第2章 乒乓球游戏机设计基础2.1乒乓球游戏机的基本特点本文设计的乒乓球游戏机的最大特点在于所有功能模式均由软件控制完成。本设计是以计算机为平台,使用EDA开发工 具来开发环境,用VHDL语言来编写程序,载体由ASIC来实现。程序写好后通过QuartusII9.1软件来进行编译、调试、仿真。整个系统可以分为分频器、计数器、随机数产生模块、乒乓球游戏机核心控制模块、数码管显示模块,蜂鸣器模块,按键扫描这几个模块来完成。2.2 可编程逻辑器件概述可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与或”表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑功能。它有如下特点:1.逻辑电路的设计和测试均可在计算机上实现,设计成功的电路可方便的下载到PLD,因而可研制周期短、成本低、效率高,使产品能在极短时间内推出。2.用PLD实现的电路容易被修改。这种修改通过PLD重新编程实现,可以不影响其外围电路。因此,其产品的维护、更新都很方便。PLD使硬件也能象软件一样实现升级,因而被认为使硬件革命。3.较复杂的数字系统能用1片或数片PLD实现,因而,应用PLD生产的产品轻小可靠。此外,PLD还具有硬件加密功能。4.应用PLD设计电路时,需选择合适的软硬件平台(开发系统)。因此,PLD得到广泛的应用。不管是复杂或是简单的的数字电路系统均是由最基本门所组成的,比如与、或、非、传输等。基本门能组成两种不同的电路4,一个是时序电路;另一个是组合电路。组合电路都可以采用与或门二级电路来实现、而时序电路则可以在组合电路的基础上加上储存原件(如锁存器、触发器、RAM等)。不过人们发现并不是一切基本门都是必要的。所以,人们设计出了可编程结构电路,其原理和结构图如图2.1所示。 图2.1 简单的PLD器件的原理结构图 按照PLD的结构体系,主要可分为简单PLD(包括PAL(Programmable Array Logic 可编程阵列逻辑)、GAL(Generic Array Logic 通用阵列逻辑)等)、CPLD(Complex Programmable Logic Device 复杂可编程逻辑器件)和FPGA(Field Programmable Gate Array现场可编程门阵列)。PLD的结构体系如图2.2所示 图2.2 PLD的结构体系另外,最早使用的PLD是FPLA(Field Programmable Logic Array)现场可编程逻辑阵列,它的与、或阵列均可编程,现在已经很少使用。EPLD是可擦除的可编程逻辑器件Erasable Programmable Logic Device的缩写。有的资料把可擦除的PLD都统称为EPLD,但更一般的是指继PAL、GAL之后推出的一代集成度远高于PAL、GAL,但相对CPLD和FPGA较低的可擦除的可编程逻辑器件。 时至今日,生产的绝大多数可编程逻辑器件都是可擦除的了。PROM、EPROM、EEPROM这些存储器也可当作一种可编程器件。它们的与阵列(即地址译码器)是固定的,并且将所有输入变量的最小项全部译出了。而它们的或阵列(即存储阵列)是可编程的。但是实现逻辑函数时,往往只用到一部分最小项,如果用存储器来实现的话芯片的利用率不高。在PLD的发展史上,PLD是从PROM、PLA、PAL、以及GAL(Generic Array Logic)5,然后是启用了大规模集成电路技术的EPLD,最后是CPLD/FPGA的使用,在很多的方面和角度得到了提升,比如结构、工艺和功能等。可编程逻辑器分为很多不同类别,几乎每一个不同的的可编程逻辑器件开发商和供应商均拥有代表自身特点的的PLD,不过由于种种历史原因,其名字也不尽相同。PLD集成度的高低的分类法来区分的6-7,如图2.3所示,一般可分为两种:一种集成度不高,芯片利用率低,在早期生产的PROM、PLA、PAL、GAL都属于第一类,可供使用的的逻辑门大约500门甚至更少,所以称其为简单PLD;第二种则是具有很高的芯片集成度,例如现在大规模生产使用的CPLD、FPGA器件,称之为复杂PLD。这样的方法分类很笼统,在细化分类中,均是和GAL22V10作比较,集成度小于GAL22V10的称之为简单PLD,集成度大于GAL22V10的称之为复杂PLD。 图2.3 PLD按集成度分类 PLD是电子电路领域最具有发展潜力和活力的一项技术,其影响力以及应用完全不亚于上世纪70至80年代的单片机的发明与应用。PLD可以实现任何数字器件功能,下至最简单的74电路,上至高性能CPU,均可用PLD来实现。形象地说,PLD就像一对积木或者一张白纸,工程师可以通过传统的输入法设计一个数字系统。通过使用仿真软件,我们可以视线验证设计的正确性,在PCB完成以后,还可以利用其线修改能力,在不改动硬件电路的前提下随时修改设计。利用PLD来开发数字电路,不仅可以提高系统可靠性,减少PCB面积,还可以大大缩短设计时间,正是因为这些优点,使得PLD技术在90年代后得到了飞速发展。2.3 VHDL语言以及Quartus II应用VHDL(Very High Speed Integrated Circuit Hardware Description Language)中文翻译为超高速集成电路硬件描述语句8。到了20世纪80年代,VHDL语言正式由美国开发并转化为IEEE的标准化硬件描述语言,与此同时还得到了系统描述的国际公认标准以及众多EDA公司的大力支持。使用VHDL描述语句,可以让电子电路文件遵循统一的设计描述接口,用来实现芯片制造与CAD设计之间的信息共享与信息交互。渐渐地,这种硬件描述语言成为了一种标准。1987年,VHDL被I EE确定为硬件描述语句标准同时发布了IEEE1076标准。1993年,IEEE又做了适当的修改,并公布了其最新版本、IEEE1076-1993标准,此次的版本修改包含了众多内容。后来IEEE分别在1996、1999、2000以及2002年对其进行了部分修改。无论如何,就当前的发展来说,VHDL已经成为一种非常流行的描述语句,几乎所有的硬件综合以及仿真工具都有VHDL的身影。特别的,VHDL原来完全是为数字系统设计而开发的,但是就现在的发展也可以描述模拟混合信号的标准IEEE STD 1076.1-1999。一个完整的VHDL语言程序所必备的五个部分为实体(Entity)9、配置(Configuration)、包集合(Package)、构造体(Architecture)、和库(Library)。其中, VHDL程序的基本单元是实体,它的组成是由实体说明和结构体构成,描述设计系统的外部接口信号使用的是实体说明;系统组织结构形式、系统的行为及系统数据的流程使用的是结构体。各设计模块能共享的子程序、数据类型、常数等存放于程序包。经编译的机构体、实体、配置及程序包存放于库中9-10。QuartusII是由Altera公司推出的新一代完全集成设计环境。QuartusII对APEX20K系列芯片提供了最好的支持,弥补了MAX+plus II有些功能的不足之处,且在综合算法上有了很大的改进,提高了设计的综合效率、速度、以及布线能力。QuartusII提供了方便的实体设计,迅捷的编译处理和对设备的直接编程功能。QuartusII同时包括模块化的编译器。其功能模块有综合/分析器(Analysis&Synthesis)、装配器(Assembler)、适配器(fitter)、设计辅助模块(Design Assistant)、时序分析器(Timing Analyzer)、编辑数据接口(Compliler Database interface)、EDA网表生成器(EDA Netlist)等。可以选择START Compilation来运行已有的模块,也可以通过运行start来单独运行各个模块。除此之外,QuartusII还包含有许多十分有用的LPM(Library of parameterized Modules)模块,他们是高级或者复杂的系统构建的重要组成,也可以与普通文件一块使用。它支持的硬件描述语言有VHDL、AHDL、system Verilog以及Verilog。而AHDL是Altera公司自己设计和研发制定的语言,是一种以结构描述为主的硬件描述语言,只有企业标准。2.4本章小结本章主要介绍了乒乓球游戏机的基本特点、工作原理,简单地描述了可编程逻辑器件,并且主要讲述了这些器件的原理、发展历史以及类别,另外详细的论述了VHDL语言的一些基本知识,最后简单地介绍了Quartus II软件的应用以及特点。第3章 基于VHDL的乒乓球游戏机的设计 现在,随着人们生活水平的不断改善和提高,许多地方都可以看到电子体育的身影。乒乓球游戏机因其丰富的灯光色彩、价格低廉以及操作简单等优点,使其得到了广泛好评。本文介绍的以VHDL为基础的乒乓球控制系统,减少了设计芯片的数量、缩小了体积、减少了损耗、提升了设计的灵活性、可靠性以及可扩展性11。3.1 乒乓球游戏机基本原理根据乒乓球比赛的过程和规则,首先游戏开始,如果一方非正确击球则另一方加分,当分数大于11时获胜,游戏结束,我们把设计流程规定如图3.1所示。我设置了7个状态,分别是“等待发球状态”,“第一盏灯亮状态”,“第八盏灯亮状态”,“球向乙移动状态”,“ 球向甲移动状态”,“允许甲击球状态”,“允许乙击球状态”。这是该程序中起决定作用的七个状态。开始的时候处于“等待发球状态”,若甲发球则状态转移到“第一盏灯亮状态”,若乙发球则转移到“第八盏灯亮状态”,具体说明以甲球为例。图3.2给出了乒乓球游戏机的原理图。 图3.1 乒乓球游戏机设计流程图若发球后乙没有提前击球-规定球移动到对方第一个发光二极管时允许击球,那么状态机从“第一盏灯亮状态”转移到“球向乙移动状态”。若在“球向乙移动状态”乙仍然没有提前击球,状态就转移到“允许乙击球状态”,在此状态下,如果乙击球了,那么状态就转移到“ 球向甲移动状态”。在“第一盏灯亮状态”, “球向乙移动状态”中,如果乙击球了 ,就算提前击球,这样甲得分,状态转移到“等待发球状态”等待发球,“ 球向甲移动状态”之后的过程和前面的过程只不过是甲乙角色的调换而已。状态转移规则均是一样的。 等待发球 甲得分 乙得分 甲发球 乙发球第一盏灯亮第八盏灯亮允许甲发球球向甲移动 乙击球 甲击球球向乙移动 乙击球 甲击球允许乙发球 乙没击球 甲没击球 图3.2 乒乓球游戏机的基本原理图3.2 乒乓球游戏机的模块设计此次的乒乓球设计采用的是分模块方法,包括时钟分频模块、伪随机数产生模块、按键扫描模块、乒乓球游戏机核心电路控制模块、数码管显示模块、蜂鸣器模块。其中乒乓球游戏机核心电路控制模块是用来控制游戏机的状态以及球速,判断得分与失分。3.2.1 分频器模块设计分频器就是将一个给定频率较高的输入信号,经过适当的处理,产生一个或多个频率比较低的输出信号12。在数字系统设计中,常使用分频器将晶振产生的单一频率分成系统工作频率。分频器可分为偶数分频、奇数分频、半整数分频等。各种各样的偶数分频和非等占空比的奇数分频能通过计数器来实现,但实现占空比的奇数分频及半整数分频的实现比较困难。由于整个系统只有一个晶体振荡器,但是设计需要不同的时钟信号,因此需要设计一个分频进程,对系的的有源晶振产生的25MHZ时钟进行分频,产生需要的时钟节拍。时钟分频模块电路图如下图3.3所示,在本设计中总共用到如下几个时钟节拍:5HZ的时钟Fre5Hz,1kHZ的时钟信号Fre5Hz,100kHZ的时钟信号Fre100Hz,这三个时钟都由输入时钟CLK25M的25MHZ时钟分步产生的。(1) Fre5Hz:输出5HZ的时钟,主要用在控制按键扫描模块,因为我们按按键的频率一般不会很快,所以用一个5HZ去控制按键扫描,当按下按键,并且此时钟上升沿来时检测到按下的按键有效,则记下按键值,用这样小的时钟好处是不用进行按键的消抖动处理,因为只有按下稳定时,才会在时钟上升沿检测得到按键。(2) Fre100KHz:输出的是100K的时钟,这个时钟用来做乒乓球游戏机的主控制模块时钟,同时用来控制伪随机数模块的输出。(3) Fre1kHz:此时钟输出的是1K信号时钟,用来控制动态数码管的刷新时间。由上文,动态数码管的硬件电路介绍可知,动态扫描显示时刷新率最好大于50HZ,即每显示一论断时间不超过20ms。每个数码管显示的时间不能太长也不能太短,时间太长会影响刷新率导致总体显示呈现闪烁的现象;时间太短发光二极管的电流导通时间也就短,会影响总体的显示亮度。一般控制在1ms左右之间。乒乓球游戏机分频模块如图3.3所示 图3.3乒乓球游戏机分频模块框图该模块端口定义如下:l Clk50: 50M时钟信号;l F1, F2,F3:分频信号输出端,就是分频模块对输入信号clk的分频,分别为100KHz分频输出、1KHz分频输出、1Hz分频输出。3.2.2 PRBS伪随机数产生模块设计m序列在一个周期内“1”和“0”的个数基本相等。具体来说,m序列的一个周期中的“0”的个数比“1”的个数少一个。基于m序列的性质,我利用EDA技术,在Altera的MAX 7000S系列芯片上实现的伪随机序列发生器,为产生低成本的电子系统测试信号提供了一种简单易行的方法12-13。伪随机数列英文缩写为PRBS,全称为(Pseudo-Random Binary Sequence)。即如果一个序列,一方面它是可以预先确定的,并且是可以重复地生产和复制的;一方面它又具有某种随机序列的随机特性(即统计特性),我们便称这种序列为伪随机序列。如果伪随机序列中可取的值只有0或1,则此伪随机序列为伪随机二进制序列,用来随机决定最开始的发球方。乒乓球游戏机伪随机数产生模块如图3.4所示图3.4 乒乓球游戏机伪随机数产生模块框图伪随机数产生模块端口定义如下:l clk:时钟信号;l rst:低电平复位信号;l Q9:输出信号。3.2.3 乒乓球控制模块设计乒乓球主控制模块是用来直接控制乒乓球的发球方、球速、以及数码管和蜂鸣器输出。当复位信号rstset有效时,乒乓球恢复初始状态s0,clk即为分频器分出的工作频率,PRBS9是伪随机数列产生的数据输入决定发球方,主要用来将按键输入信号转化为击球速度的大小、数码管显示分数、发光二极管模拟乒乓球以及蜂鸣器的状态。乒乓球主控制模块的模块框图如图3.5所示 图3.5乒乓球游戏机控制模块框图乒乓球游戏机控制模块模块端口定义如下:输入信号:l CLK: 时钟输入100KHZ,作为系统的主时钟,控制电路正常工作;l Reset :复位信号输入,当输入为高电平时系统复位,回到最初值状态;l PRBS9:随机数输入信号,由随机信号发生器产生0或1信号输入,控制比赛开始时随机产生的发球方;l KEY_INPUTS2.0:按键代码输入总线,接收来自按键电路输出的按键代码;l SW_INPUTS1.0:拔开关输入,控制选择比赛速度的模式,00,最慢,11最快,共有00、01、10、11四个模式。输出信号:l Q9:输出信号。l Beep : 蜂鸣器输出控制信号引脚,当输出为1时,蜂鸣器响,鸣声为1KHZ声音频率,当输出为0时蜂鸣器不响;l CodeLED7.0 :对应输出的是8个LED信号灯,用来模拟球的行进路径,比赛没开始时这8个LED灯都是亮的,当裁判发出开始信号后,由随机模块产生发球方,同时发球方的球先点亮,当按下按键相当于击球后,LED就依次移动。l Showcode31.0:数码管显示器数据输出总线,共32位数据,每4位数据对应一个数码管,共有8个数码管。显示输出代码的程序如下面的语句: showcode Assignments Editor,在Assignments Editor 下面选择 Pin 标签页,然后锁定引脚,接着打开选择 Processing= Start Compilation的命令,再一次编译,完成后生成可发送到到FPGA的 h_adder.sof 文件和配置到外部存储器的h_adder.pof文件,完成后,选择Tools.Programmer 的菜单,出现编程配置的界面,在“Mode”菜单下点击JTAG,选择“Add File”按钮添加需要配置的SOF 文件,选中Program/Configure,点击“Start”按钮就能配置已有芯片,成功地下载到开发板上进行仿真。4.1乒乓球游戏机的波形仿真(1)分频器仿真波形图如图4.1所示:图4.1 分频器的仿真波形图时钟模块仿真图如上图4.1所示。从仿真图看,输入的时钟第一个波形,输出三个频率不一样时钟,其中最大的一个时钟周期为5HZ的时钟,在软件仿真里面由于不能设置过长的仿真时间,所以看不完整5HZ的时钟的整个周期。(2)伪随机数产生器波形图如图4.2所示:图4.2 乒乓球游戏机伪随机数产生器仿真波形图仿真电路图如上图4.2所示,我们可以看到波形Q9的输出是在一段时间内可以认为是随机产生的0和1,所以可以作为随机产生发球方的控制数据。(3)按键扫描模块仿真波形图如图4.3所示:图4.3 乒乓球游戏机按键扫描的仿真波形图从图4.3中我们可以分析得到,当按下按键KEYINPUT相应为1,此时计数时钟,第一个时钟不输出相应的按键值,而是在第二个时钟输出相应的按键值,这样可以有效的消除按键的抖动。当有按下KEYINPUT相应为1,没有按键按下就为0000,此时输出为7,当有按下刚相应输出为0,1,2,3;这四个按键代码。(4)乒乓球游戏机核心控制电路模块仿真波形如图4.4所示:图4.4 乒乓球游戏机核心控制模块仿真波形图由图4.4可以知道,仿真图中只是给出了部分仿真波形,因为仿真时间有限,但这部分波形图也给出了相应的比赛功能时序控制。(1) 当复位RESET为高电平时有效,输出显示为00F00F00;其中F对应的实物显示内容为“-”;(2) 当复位信号无效时,系统正常工作,当KEY_INPUTS 输入为1时,表示裁判发出比赛开始信号,这时根据随机信号PRBS9的状态选择相应的发球方。PRBS9在这里仿真时我们用一个有规律的时钟代替,结果的一样的。 (3)当KEY_INPUTS 输入为0时表示发球开始比赛,所以codeLED在相应的时钟驱动下显示以次出现,00000001-00000010.10000000;表示球的从右边向左边移动。当移动到10000000时,由于KEY_INPUTS =7表示没有按键按下,所以对方失误,发球方得一分,这时显示相应的得分00FA3F01。 (4) 当对方失误时,没的接到球,所以这时蜂鸣器发出声音,Beep输出由低电平变为高电平,控制蜂鸣器模块产生1K的单音频信号输出,从而控制蜂鸣器发出音响。(5)蜂鸣器仿真波形图如图4.5所示:图4.5 蜂鸣器仿真波形图由图4.5可以发现,当RESET为0时,BEEPOUT输出为0,不发出声音,当RESET为1时,BEEPOUT的输出频率为CLK1K信号的1/2倍,所以当输入的时钟信号为2K时,输出的声音就是1K的音频信号。(6)数码管显示模块仿真波形如图4.6所示:图4.6数码管显示的仿真波形图 仿真电路波形图如上图4.6所示,showcode为654321,也就是要显示的数字;dig中任一时刻只有一个位为有效电平0;seg在dig有效时刻输出不同的数据;比如数据6的共阴编码为01111101,在本设计中用的数码管为共阳极数码管,所以在以下程序中我们进行了取反操作后输出为10000010,也就是图4.6中,seg的第一个输出的数据,正好是codeshow中的第一位数据6,而此时, dig位选也正好为第2个位有效,正好是我们显示中的最左边一个位。4.2引脚的锁定此次设计采用的是自主设计开发板,Cyclone系列EP1C3T100C8芯片完成,引脚锁定如图4.7所示:图4.7引脚的锁定4.3 编程下载及验证本系统涉及到的硬件电路模块为有源晶振电路模块、数码管显示电路模块、LED灯显示及按键电路模块、脉冲蜂鸣器模块,以下详细介绍。系统时钟采用25MHZ的有源晶体振荡器。为了使有源晶振能输出较好的波形,必需保证供电的稳定。所以在晶振电路的前端加了两个小电容C41C43和一个电感L1对电源进行滤波,在时钟输出端加了一个小电阻R16=100欧,能有效地抑制高次谐波和实现阻抗匹配。有源晶振电路如图4.8所示。图4.8 有源晶振硬件电路原理图数码管分为共阴极和共阳极,共阴极是把LED的负极全部接在一起;共阳极是把LED的正极全部接在一起。为了节约成本及资源,本系统中6位数码管采用共阳极数码管并采用动态扫描的方式进行显示根据电子电路常识,采用灌电流工作方式的电路的功耗要比采用拉电流方式工作的电路小。因此本设计中所有的外部键盘,指示二极管均采用灌电流的工作方式如图4.9所示。当按键未按下时按键的输出(即FPGA的输入)为低电平,当按键按下时输出(即FPGA的输入)为高电平。在本设计中只有4个按键,分别为KEY0,KEY1,KEY2,KEY3。KEY0与KEY3按键用于选手进行击球, KEY1裁判控制发出比赛信号,KEY2,用于比赛结束后清除比赛分数.图4.9 按键输入电路原理图在本设计中共有八个指示灯表示球的位置,当FPGA的引脚输出为高电平时相应的指示灯就点亮。 图4.10 按键输入电路原理图在本设计中采用交流蜂鸣器。由于FPGA管脚的驱动能力有限,因此通过连接一个三极管来增强驱动能力,从而提高蜂鸣器的响度。蜂鸣器电路如图4.11所示。当比赛犯规攻或者是得一分,由蜂鸣器响提示。 图4.11蜂鸣器电路原理图乒乓球游戏机系统的主要是由一片Cyclone EP1C3T100C8芯片来完成逻辑设计的,用VHDL语言编写的源代码在Quartus9.1软件上进行编译以及测试,然后进行仿真,最后在Quartus软件上对所用芯片进行引脚锁定,再一次编译,完成后形成可配置到FPGA的 h_adder.sof 文件和配置到外部存储器的h_adder.pof文件。然后使用Create-SOPC2000实验系统和开发板,下载到实验箱的EP1C20F324C8芯片开发板上,然后对硬件进行相应的调试。在开发板 上,能观察到实验结果按最初的所设计的那样进行显示,并且能够按要求进行球速变换显示以及比分的显示,并当一方得分时候可以发出声音。当按下复位键时我们可以看到数码显示管显示暂停,二极管不再移动。硬件测试的图片如图4.12、图4.13、图4.14、图4.15所示:图4.13 硬件电路实现如图4.13所示,此时球速为1,按下复位键后比分清零,随机决定发球方为左方(乙方)。由图可知控制球速的是SW7-8,此时状态为01所以球速为1,比分显示00-A1-00的初始状态。图4.14 硬件电路实现2如图4.14所示,进行了三场比赛后由比赛规则决定左方(甲方)发球,因此发光二极管停留在左端,现在的比分为02-A1-01。图4.15 硬件电路实现3如图4.15所示,SW7-8状态为11,所以根据二进制可得球速为3,数码管中显示A3。进行一场比赛后左方得分,蜂鸣器响起并连续发球所以发光二极管停留在左端,比分示01-A3-00。图4.16硬件电路实现4如图4.16所示,经过五局比赛比分为03-A3-02,球速依然是3,此次是在比赛中的仿真图,发光二极管在第五个闪烁。4.4本章小结本章节主要是对编写以及处理过后的程序进行波形仿真以及实物仿真,根据不同的模块设计建立新的工程然后仿真,再对所得到的仿真图进行分析。使用EDA开发板,将ByteBlaster II 下载电缆插入SOPC 开发板的JTAG 下载接口中,将程序下载,对乒乓球游戏机系统进行硬件测试。结论乒乓球游戏机是以计算机为开发平台,综合运用EDA软件工具开发环境,使用硬件描述语言VHDL,采用自上向下的设计方法,把系统由上到下的分成六个模块设计,最后达到设计的要求,然后在Quartus II9.1上通过编译、编程、调试、仿真,从而实现对乒乓球游戏机的设计。本论文对乒乓球游戏机的原理、系统结构、设计方法进行了研究,取得了如下成果:(1) 简述了乒乓球游戏机的研究背景和发展走势,综合介绍了乒乓球控制的应用以及课题研究的意义。(2)介绍了乒乓球游戏机的基本特点、工作原理,然后简单地概述了可编程逻辑器件PLD,以及概述了VHDL语言的一些知识和Quartus II软件的介绍和应用。(3) 根据乒乓球游戏机的基本情况以及设计要求,将整个乒乓球游戏机分为三个状态,并将

温馨提示

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

评论

0/150

提交评论