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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

最新基于VHDL课程设计乒乓球游戏.docx

1、最新基于VHDL课程设计乒乓球游戏A、以太网 B、快速以太网7. 从数据表RSGL和RSGZ两个表中,查询出“编号”字段值相同的记录的全部信息,则实现此功能的SQL命令为_ 。B. 视图和查询文件的扩展名都是.QPRB. S表中年龄大于60岁的记录被加上删除标记14. 查询设计器的排序依据选项卡的作用相当于SELECT命令中的_短语。6. Visual FoxPro是一种关系数据库管理系统,所谓关系是指_。A. .DBF B. .QPR C. .SCX D. .TXT26、子网掩码中“1”代表( B)。C. 选择了一个空闲的工作区 D. 显示出错信息B. 视图和查询文件的扩展名都是.QPR 课

2、程设计名称 乒乓球游戏程序 姓名 专业班级 基于FPGA的乒乓球游戏程序的设计摘 要VHDL是高速集成电路硬件描述语言,目前已成为许多设计自动化工具普遍采用的标准化硬件描述语言VHDL语言功能性强、覆盖面广、灵活性高,具有很好的实用。本文设计一个基于VHDL的乒乓游戏机模拟乒乓球比赛。用VHDL编程模拟乒乓球比赛,电路模块由分频、状态机等部分组成,对各部分编写VHDL算法,进行编译及程序下载。通过验证,乒乓游戏机能模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分,还能根据接球快慢改变球运行的速度。实现乒乓游戏机的功能。关键词:乒乓游戏机、VHDL、状态机第一部分 绪论1.1 课题设计背景1.

3、1.1 FPGA简介FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。1.1.2 硬件描述语言VHDLVHDL 的英文全名是VHSIC Hardware Description Language(VHSIC硬件描述语言)。VHSIC是Very High Speed Integrated Circuit的缩写,是20世纪80年代在美国国防部的资助下始创的,并最终

4、导致了VHDL语言的出现。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。1.1

5、.3 Quartus简介Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。Altera Quartus II (3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。Quartus II design 是最高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。 QuartusII design 提供完善的 timing closure 和 LogicLock? 基于块的设计流程。QuartusII design是

6、唯逐一个包括以timing closure 和 基于块的设计流为基本特征的programmable logic device (PLD)的软件。 Quartus II 设计软件改进了性能、提升了功能性、解决了潜伏的设计延迟等,在产业领域率先提供FPGA与mask-programmed devices开发的同一工作流程。1.2 课题主要内容随着可编程逻辑电路和EDA技术的发展,在逻辑电路设计和嵌入式系统设计方面,以CPLD/FPGA为代表的可编程逻辑器件已经逐步代替了传统的标准逻辑器件;本次论文的乒乓球游戏所有的程序可以集成在一个FPGA开发芯片上面,不用在用其他功能的分立逻辑元件,达到集成度高

7、、响应快、功耗低的特点。本次论文主要是基于FPGA的乒乓球游戏的设计,模拟乒乓球比赛的基本过程和规则,自动裁判和记分,比局为7局,每局11分。而本次论文采用模块化设计,主要分为两大模块:时钟分频模块、状态机控制模块。第二部分 系统设计2.1整体设计图图 1 乒乓球游戏程序BDF图2.2设计思路1控制模块状态图图 2 乒乓球游戏程序控制模块状态图2总体思路SW0开关(EN)控制功能使能与比赛清零 。SW0关闭(EN=0),显示学号后六位,打开时允许运行,比分比局清零。利用状态机,设初始状态处于start状态,key3为复位键,按下key3可以回到start状态。通过各种请求信号实现状态的相互转换

8、,进而实现发球和乒乓球左右移动、击球的相互转换,并在球未击中、提前击中、发球失败时显示相应比分、比局情况。通过设计control的反馈控制频率方式,利用不同键击球的快慢控制球运行的速度。并在整个游戏结束时有一个end标记与比分比局切换显示。2.3具体功能对应等1乒乓球控制模块控制乒乓球的运行状态的转换,比分、比局的显示。反馈信号信号的设置和输出,为分频模块提供指令信号,控制球运行的速度。图 3 乒乓球运行控制模块BDF2时钟分频模块 为状态机产生3种不同的时钟信号。图 4 时钟分频模块BDF 第三部分 模块设计3.1控制模块3.1.1 引脚功能表 1 控制模块的引脚功能表定义类型外设引脚功能i

9、n std_logicENSW0关闭显示学号后6位并对比分清零,打开则开始游戏CLK分频模块送入3种不同频率的速度RSTKEY3按一次重新开始新的一球HIT17.13SW17SW13选手甲接发球开关HIT5.2SW5SW2选手乙接发球开关HIT12.6SW12SW6禁止触球区outstd logicHEX7HEX7选手甲获胜局数HEX6HEX6选手乙获胜局数HEX5HEX5显示无意义HEX4HEX4显示无意义HEX3HEX3选手甲获胜比分HEX2HEX2选手甲获胜比分HEX1HEX1选手乙获胜比分HEX0HEX0选手乙获胜比分CONTROL1.0输出反馈给分频模块LIGHT17.2LEDR17

10、LEDR2乒乓球位置显示3.1.2 核心代码及解释模块主要分状态转换,状态译码,LED灯的译码,和辅助变量temp,辅助判断信号control的计数进程。利用temp判断是否分出胜负即游戏是否结束,结束之后显示闪烁辅助标志End并且清零比分。利用control判断接球快慢,反馈到分频器,分频器根据接球快慢控制球的运行速度,共快中慢三种速度,分别为50Hz,10Hz,5.556Hz。为方便检查结果,SW1直接控制速度开关,共快慢两种速度,分别为50Hz,5.556Hz。1中间变量的初始化:SIGNAL ST,NST: STATE:=start;SIGNAL reg: STD_LOGIC_VECT

11、OR(17 DOWNTO 2); -灯的内部变量SIGNAL BIFEN1,BIFEN2: integer range 0 to 11;-选手甲乙的比分记录变量SIGNAL BIJUONE,BIJUTWO: integer range 0 to 4; -选手甲乙的比局记录变量SIGNAL TEMP: integer range 0 to 1; -比局数的内部计数变量SIGNAL BIJU1,BIJU2: STD_LOGIC_VECTOR(6 DOWNTO 0); -选手甲乙的比局译码输出变量SIGNAL BIFENOUT11,BIFENOUT12,BIFENOUT21,BIFENOUT22:

12、STD_LOGIC_VECTOR(6 DOWNTO 0); -选手甲乙的比分译码输出变量SIGNAL REG_1: STD_LOGIC_VECTOR(6 DOWNTO 0); -数码管的内部变量SIGNAL REG_5: STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL REG_3: STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL REG_8: STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL REG_4: STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL REG_2: STD_LOGIC_VEC

13、TOR(6 DOWNTO 0); 2主控组合进程:通过判断球的位置信号及开关键信号执行相应的状态转换。EN=1时游戏开始,进入状态start,temp开始计数,进入状态wait1检测发球选手并点亮相应的球所代表的LED,之后进入状态send,之后选择进入状态,movatoright或movetoleft,球开始向对方选手移动,当球到达可接球区域时,若对方及时击打并及时关闭开关,则进入状态movetoleft或movatoright球向回移动,如此反复。若发球方或接球方未及时关闭开关,则视为击打失败,返回状态start,对方加一分。每局为11分制,共设七局。每结束一局temp就会相应加1,当te

14、mp加到5,即分出胜负之后显示闪烁辅助标志End。以选手甲发球为例:(1)进入状态start,统计比分及比局。(2)进入状态send,判断选手甲(假设甲为左边一方)是否发球,若发球则进入状态wait1,否则停留在状态start。(3)进入状态wait1,判断选手甲发球端球代表的灯REG17是否亮起,若是则进入状态movetoright,反之返回状态start。(4)进入状态movetoright,灯右移,并判断是否有无关按键按下(SW17SW14),若无则继续右移,反之返回状态start并且对方得一分。当球移至REG6REG2,进入选手乙可接球区域:1当球移至REG6时选手乙及时击打相应开关S

15、W6,则进入状态movetoleft,并调整球运行速度为快。若提前击打或未及时关闭开关,则击球失败并且对方得一分,进入状态start。REG5条件下类似。2当球移至REG4时选手乙及时击打开关SW4,则进入状态movetoleft,并调整球运行速度为中。若提前击打或未及时关闭开关,则击球失败并且对方得一分,进入状态start。REG4,REG3条件下类似。(5)进入状态movetoleft,灯左移,并判断是否有无关按键按下(SW2SW5),若无则继续右移,反之返回状态start并且对方得一分。当球移至REG17REG13,进入选手甲可接球区域:1当球移至REG13时选手乙及时击打相应开关SW6

16、,则进入状态movetoright,并调整球运行速度为快。若提前击打或未及时关闭开关,则击球失败并且对方得一分,进入状态start。REG14条件下类似。2当球移至REG15时选手乙及时击打开关SW4,则进入状态movetoright,并调整球运行速度为中。若提前击打或未及时关闭开关,则击球失败并且对方得一分,进入状态start。REG16,REG17条件下类似。附movetoright代码:WHEN movetoright=REGNST IF HIT=0000000000000000 THEN -开关及时关上 NST=movetoright; ELSE BIFEN2= BIFEN2+1;NS

17、T NST IF HIT=0000000000000000 THEN NST=movetoright; ELSE BIFEN2= BIFEN2+1;NSTNSTNSTNSTNSTNSTNSTNST IF HIT=0000000000010000 THEN CONTROL=01;NST=movetoleft; ELSIF HIT(5)=1 THEN BIFEN1= BIFEN1+1; NST IF HIT(4)=1 THEN BIFEN1= BIFEN1+1; NST=start; ELSIF HIT=0000000000001000 THEN CONTROL=01; NST IF HIT(3)

18、=1 THEN BIFEN1= BIFEN1+1; NST=start; ELSIF HIT=0000000000000100 THEN CONTROL=10;NST IF HIT(2)=1 THEN BIFEN1= BIFEN1+1; NST=start; ELSIF HIT=0000000000000010 THEN CONTROL=10; NST IF HIT=0000000000000001 THEN CONTROL=10; NST=movetoleft; ELSE BIFEN1= BIFEN1+1; NSTNST=start; END CASE; 3主控时序进程:控制游戏使能及状态转

19、换,具有异步清零功能。附代码:PROCESS (EN,RST,CLK) BEGIN IF EN =1 THEN IF RST=0 THEN ST=start; ELSIF CLKEVENT and CLK=1 THEN ST=NST; END IF; END IF;END PROCESS;4译码进程:EN=0时显示学号;EN=1时将选手甲、乙的比分及比局变量译码转为七段数码管显示。并且当TEMP=0时,在数码管上显示游戏结束标志End。代码见附录。3.1.3 RTL图图 5 控制模块RTL图3.2 分频模块3.2.1 引脚功能表 2 分频模块引脚功能表FD定义类型外设引脚功能in std_lo

20、gicCLK内部50MHz时钟ENKEY3总使能开关SW1SW1频率直接选择信号CONTROL速度控制频率选择信号out std_logicCLKOUT提供频率给GAME3.2.2 核心代码及解释1核心代码PROCESS(CLK,EN) VARIABLE temp1: integer range 999999 downto 0 :=0; -50Hz VARIABLE temp2: integer range 4999999 downto 0 :=0; -10Hz VARIABLE temp3: integer range 8999999 downto 0 :=0; -5.556Hz BEGIN

21、 IF EN=1 THEN if CLKEVENT AND CLK=1 THEN IF temp1=999999 THEN temp1:=0; Q1 = NOT Q1; ELSE temp1:=temp1+1; END if; IF temp2=4999999 THEN temp2:=0; Q2 = NOT Q2; ELSE temp2:=temp2+1; END if; IF temp3=8999999 THEN temp3:=0; Q3 = NOT Q3; ELSE temp3:=temp3+1; END if; end if; ELSE temp1:=0;Q1 = 0; temp2:=0

22、;Q2 = 0; temp3:=0;Q3 IF SW1=1 THEN CLKOUT=Q1; ELSIF SW1=0 THEN CLKOUTCLKOUTCLKOUTCLKOUT=Q1;END CASE;END PROCESS;2解释该模块将内部时钟的50MHz信号,变为50Hz,10Hz,5.556Hz。内部变量分别为Q1、Q2、Q3,将根据GAME模块反馈的CONTROL选择输出到CLKOUT。初始条件下可直接通过SW1控制Q1、Q3输出到CLKOUT。3.2.3 RTL图图 6 分频模块RTL图第四部分 操作配图1、EN=0,显示学号图 7 显示学号153835、1538422、EN=1,初

23、始状态,甲和乙比局和比分均为0。图8 初始状态3、EN=1,甲发球,SW17亮。图 94、EN=1,右移状态。图 105、EN=1,乙接球失败,乙发球情况。图 116、甲乙比局2:1,比分2:5情况显示如下。图177、游戏结束辅助显示如下。图12第五部分 结论4.1遇到的问题和改进问题1:在比赛结束时,比分比局迅速清零,无法使比分比局按我们的意志在某时刻清零。解决办法:增设辅助信号,当比赛结束时,使数码管在结束标志与比局之间切换显示,最后由人为的控制使能开关清零。问题2:无法按照在不同键接球改变球运行的速度。解决办法:设一个反馈控制信号,将不同键接球信息反馈回分频模块里从而控制速度。4.2工作

24、分配比例邢可馨:分频模块,按键击球以及比赛记分译码代码的设计与开发(55%)陈声琴:速度控制处理、状态机代码的设计与开发(45%)第六部分 附录一、分频模块代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FD IS PORT( EN: IN STD_LOGIC; CLK:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC; SW1:IN STD_LOGIC; CONTROL:IN STD_LOGIC_VECTOR(1 DOWNTO 0) );END FD;AR

25、CHITECTURE behav OF FD ISsignal Q1: STD_LOGIC;signal Q2: STD_LOGIC;signal Q3: STD_LOGIC;BEGIN PROCESS(CLK,EN) VARIABLE temp1: integer range 999999 downto 0 :=0; -最快使比赛结束的速度 VARIABLE temp2: integer range 4999999 downto 0 :=0; -接球加速后的速度 VARIABLE temp3: integer range 8999999 downto 0 :=0; -正常发球速度 BEGIN

26、 IF EN=1 THEN if CLKEVENT AND CLK=1 THEN IF temp1=999999 THEN temp1:=0; Q1 = NOT Q1; ELSE temp1:=temp1+1; END if; IF temp2=4999999 THEN temp2:=0; Q2 = NOT Q2; ELSE temp2:=temp2+1; END if; IF temp3=8999999 THEN temp3:=0; Q3 = NOT Q3; ELSE temp3:=temp3+1; END if; end if; ELSE temp1:=0;Q1 = 0; temp2:=0;Q2 = 0; temp3:=0;Q3 IF SW1=1 THEN CLKOUT=

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

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