乒乓球比赛游戏机设计Word格式.docx
- 文档编号:15164260
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:21
- 大小:904.71KB
乒乓球比赛游戏机设计Word格式.docx
《乒乓球比赛游戏机设计Word格式.docx》由会员分享,可在线阅读,更多相关《乒乓球比赛游戏机设计Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
VHDL可以描述系统级电路和门级电路,而且描述方式多样,可以采用行为描述、寄存器传输描述或者结构描述,也可以用其混合描述方式。
同时,VHDL可以准确地建立硬件电路模型,因为它支持惯性延迟和传输延迟。
VHDL的数据类型很丰富,支持标准定义的数据类型,当标准定义的数据类型不能满足用户的需求时,用户可以自己定义的所需要的数据类型,增加了设计的自由度。
(5)语法规范,易于共享。
当把用VHDL编写的代码文件看作是程序时,它可以作为设计人员之间的交流内容;
当把它看作是文档时,可以作为签约双方的合同文本。
VHDL易于共享的特点,使得大规模的协作开发容易实现。
同时,这些特点也促进了VHDL的发展和完善。
综上所述,VHDL有很多其他的硬件描述语言所不具备的优点。
但是,VHDL仍然存在一些缺点,主要是3个方面。
(1)要求设计者对硬件电路知识甚至是芯片结构方面的知识了解较多。
应该摆脱一般的高级语言程序设计思路,因为在电路世界里的事件很多是并行发生的,并且硬件电路系统内部的模块可以是互相独立的,也可以是互为因果的,所以,在用VHDL设计硬件电路时应摆脱一般的高级语言程序设计思路。
在设计电路时,应先构思电路,然后才能描述。
(2)不能进行太抽象的系统描述。
因为EDA工具无法综合抽象性太强的系统,故用VHDL描述系统电路时不能太抽象。
目前的VHDL很难综合实际的硬件电路,只能适用于系统建模。
(3)不能描述模拟电路。
对于模拟电路而言,VHDL并不是一种理想的硬件描述语言。
但可以预见,未来硬件描述语言的发展方向是模拟电路和数模混合电路的描述方式。
1.3QuartusⅡ简介
2乒乓球比赛游戏机的设计
2.1系统设计要求
设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。
用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置点亮的LED依此从左到右,或从右到左,其移动速度应能调节。
当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,既表示启动球拍击球,若未击中,球掉出桌外,则对方得一方。
设置自动记分电路,甲乙双方各用两位数码管进行记分显示,每记满11分为1局。
甲乙双方各设一个发光二极管表示拥有发球权,每隔两次自动交换发球权,拥有发球权的一方发球才有效。
系统框图如图2-1所示:
图2-1乒乓球比赛游戏机系统框图
2.2设计思路
此设计问题可分为游戏控制模块,加减计数模块,译码模块,甲乙方得分显示模块四部分。
设置甲乙双方击球脉冲信号int1/int2,一方的击球信号使加/减计数器加法计数,则另一方的击球信号就使加/减计数器减法计数,译码模块输出端Y1-Y8接LED模拟乒乓球的轨迹。
经控制模块实现移位方向的控制,真值表2-2所列。
设置发球权拥有显示信号s1、s2。
控制模块使每两次交换发球权。
加/减控制信号/D由乒乓球到达Y8、Y1和击球信号int1、int2及发球权拥有信号s1、s2共同产生,真值表如表2-3所示。
当球到达Y8或Y1时,参赛者没有及时击中,则球掉出桌外,加/减计数模块停止计数,对方得一分。
设置捡球信号reset1,通过加/减计数模块的异步置数端实现捡球。
当甲方拥有发球权时捡球信号将球放到Y1,乙方拥有发球权时将球放到Y8.
在控制模块对甲乙双方的得分进行检测,只要一方的得分达到11,则一局结束,设置裁判员复位信号reset.在每局结束后将双方得分清零。
由调节晶振产生的时钟脉冲信号的频率,可以调节球的运动速度。
表2-2加/减计数译码显示真值表
时钟
加/减控制
计数器输出
译码器输出
CLK
/D
Q3Q2Q1Q0
Y8Y7Y6Y5Y4Y3Y2Y1
↑
0001
00000001
0010
00000010
0011
00000100
0100
00001000
0101
00010000
0110
00100000
0111
01000000
1000
10000000
1
表2-3加减控制信号的产生
Y8
Y1
Int1
Int2
S1
S2
硬件系统示意图如下所示
图2-4硬件系统示意图
3乒乓球比赛游戏机的实现
3.1乒乓球比赛游戏机的顶层原理图
图3-1顶层原理图
原理图中输入部分分别是:
复位按键res,时钟clk_1,startbutton开始游戏按键,serve[1..0]发球按键,serve0代表甲发球,serve1代表乙发球,int1为甲击球按键,int2为乙击球按键,原理图中输出部分分别是:
8个LED灯light[1..8],数码管段选信号A、C、D、E、F、G、H,数码管进入译码器74ls138的位选信号sel[2..0],在数码管上显示了甲乙两个人的分数。
3.2系统各功能模块的实现
比赛控制模块
图3-2比赛控制模块元件框图
按下startbutton按键之后游戏开始,当按下serve0时甲发球,8个一排的LED灯从左向右移动(从1到8),当移动到第八个灯时按下int2按键代表乙击中,则乙得1分,提前或未来的及击球则甲得分。
当按下serve1时乙发球从右向左移动,当移动到第一个灯时按下int1代表甲击中球,甲得1分,提前或未来的击球及则乙得分。
记分模块
图3-3记分模块元件框图
当选择好的信号binaryin[4..1]进入mydecoder之后,相应的数据会选择到相应的信号中,并且通过bcdout1[4..1]和bcdout2[4..1]输出相应的分数在两位数码管上的显示数字。
bcdout1为十位数,bcdout2为个位数。
图3-4显示模块框图
数码管显示模块主要是由两个模块组成分别为setime以及deled这两个模块组成:
setime模块主要是将输入的分数进行动态扫描,显示到每一位数码管的位选上,通过高速的扫描后会将每一位选手的分数很清晰的显示在数码管上。
deled模块是一个译码器的模块译码器的译码对照表3-5如下所示:
表3-5译码器的译码对照表
显示的数字
BCD编码
七段共阳数码管
0000
1000000
1111001
2
0100100
3
0110000
4
0011001
5
0010010
6
0000010
7
1111000
8
0000000
9
1001
0010000
X
XXXX
1111111
在程序中只考虑0000-1001(即0-9)的情况,将其转化为相应的七段显示器的码字,其他情况不予考虑。
4各个模块的仿真以及系统仿真、分析
4.1比赛控制模块仿真波形
图4-1比赛控制模块
4.2记分模块仿真波形图
图4-2记分模块仿真波形图
表4-3对应分数的数码管显示
binaryin
bcdout1
bcdout2
1010
1011
在图4-2中可以看出当得分为2(0010)分时对应的两位数码管则会显示为02(bcoudt1:
0000,bcoudt2:
0010),当分数超过11分时数码管的显示全为为00。
表4-3为具体的分数对应的数码管显示。
4.3管脚锁定
在验证出乒乓球比赛游戏机系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:
图4-4各引脚的对应情况
4.4系统的波形仿真
图4-5所示为甲方发球,在恰当的时候乙方接到球,当球回到甲方时,甲方又接到球,但乙方再也没有接到球的仿真波形。
图4-5乒乓球仿真波形一
图4-6所示为甲方两次发球,乙方没有接到球,甲方得到2分的仿真波形图。
图4-6乒乓球仿真波形二
图4-7所示为甲方发球,乙方提前击球的情况,此时,甲方得一分。
图中还显示了甲方发球,乙方在规定的时刻没有接到球的情况,此时,甲方又得一分。
图4-7乒乓球仿真波形三
图4-8所示为当清零信号按下时,得分清零,又开始新一局游戏
图4-8乒乓球仿真波形四
4.5显示结果的几种情况
图4-9验证结果1
图4-10验证结果2
图4-11验证结果3
5总结
5.1设计制作过程中遇到的问题及解决方案
1.VHDL语法使用不规范:
当我们编写软件程序的时,遇到了编译错误。
细心阅读QuartusII错误提示和所编写的程序后发现是因为VHDL语法使用错误。
最后经过翻阅EDA课本,熟悉相关语法后将其改正。
2.动态扫描部分不清楚,以至无法实现得分显示功能
起初以为每个数码管的引脚都要锁定,不知该怎样锁定四个数码管的引脚,后来想起曾经做过的数码管显示控制系列最终完成了该部分。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 乒乓球 比赛 游戏机 设计