Quartus乒乓球游戏实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:乒乓球游戏设计姓名:*************
学号:***********
时间:2 0 1 0 年9 月9 日
一、实验目的:
◆学习用Quartus II 5.0软件完成电路设计;
◆应用数字电子技术的相关知识,学习使用逻辑可编程器件;
◆学习“CPLD\FPGA数字发展实验箱”的使用方法以及把文件下载到芯片
中的方法。
二、实验原理阐述:
1 游戏设计:
“乒乓球游戏”电路以发光二极管逐个点亮模拟乒乓球的运动轨迹,以按键模拟球拍,具有乒乓球娱乐功能。比赛规则约定:五局三胜;当一方接到球时则得分,失球则比赛结束;裁判发出比赛开始信号,选择首次发球权方;8个LED 排列成行模拟乒乓球台;点亮的LED模拟乒乓球,受FPGA控制从左到右或从右到左移动;发球选手通过按钮输入模拟击球信号,实现LED移位方向的控制;若发亮的LED运动在球台终点之间时,对方未能及时按下击球按钮使其向相反方向移动,则球出界,即结束一局。按键功能如下:
➢set_L和set_R键是发球控制端。当一局开始的时候,选择其中一方为发球方,比赛进行中,选手连续两次获得发球权后,发球权交予对方;
➢hit_L和hit_R键是击球控制端,按下击球键乒乓球向对方移动。当球到达终点端位置时,对方必须及时按键接球,则球即反向移动;若球到达接球位置未被接住,球将飞出界外。
➢reset键为复位键。当球飞出界外后,一局结束后,按下reset键重新开局。
在主体电路的基础上,我们给游戏双方添加了自动计分器。当一方接球成功时,该方的得分自动加一分。当一局结束后,按下reset键将计分器清零重新开始下一局的计分。其时钟脉冲分别从移位寄存器的S0和S1端接出。
2 乒乓球移动轨迹控制电路
(1)电路图
(2)电路工作原理说明
用两个74LS194四位双向移位寄存器模拟乒乓球台,其中第一个74LS194的LD输出端接第二个的右移串行输入端,这样当乒乓球往右准备移出第一个寄存器的时候就会在时钟脉冲的作用下被移入第二个寄存器。同样道理,第二个74LS194的RA输出端接第一个的左移串行输入端。由于台面只能有一个乒乓球,而乒乓球到达球台末端就出界。所以第一个74LS194的右移串行输入端及第二个的左移串行输入端接低电平。
复位端操作原理如下:复位端reset通过非门接到两个D触发器的置1输入端,使两个D触发器的输出端Q均为高电平。这时两个移位寄存器的控制端S0、S1均为高电平,移位寄存器处于并行输入状态。由于乒乓球在发球的时候只能处于球台的两端,因此第一个寄存器的A输入端接set_L发球控制开关,第二个寄存器的D输入端接set_R发球控制开关,而两个寄存器的其它并行输入端都接低电平。
运动员击球原理如下:假设现在乒乓球在球台的左侧,LA输出端为高电平,这里运动员击球,hit_L为高电平,LA和hit_L通过与门和非门给两个D触发器形成时钟脉冲,这时第一个D触发器的D输入端为低电平;由于 RD为低电平,第二个D触发器的D输入端为高电平。于是hit_L产生脉冲的结果是Q1=0,Q2=1。这两个电平作用到移位寄存器上就是:S0=1,S1=0。这两个控制端电平使寄存器产生右移信号。右边的运动员击球的情况类似。
(3)乒乓球移动轨迹仿真图
3 计分器电路
(1)电路图
(2)原理说明
计分器部分采用两个74ls90十进制计数器级联构成的计分器,双方的两组得分直接通过显示译码输出。计分器的计数脉冲由s0和s1端信号控制。当接球方准确接球改变位移方向时,该方的信号变为0,控制相应的计分器加计数一次。
4 顶层电路图
三、实验过程
1 首先是学习Quartus软件的使用步骤。从电路的编辑设计到编译,然后重新修改,最后是对结果的仿真,每一步都要好好熟悉,才能更好的运用它把电路设计好。这其中比较难的是编译后的电路修改,找出错误固然好,但是很多部分都并不好改,可能牵一发而动全身。而其中许多细节是我们之前没有考虑到的。这促使我们在这个设计过程中更加细心,考虑问题也更全面了。
2本来我们设计的计分规则是“失球对方得分”。但是通过对乒乓球运动轨迹的仿真结果发现:在未接到球的情况下,并没有出现输出信号端的变化,所以原先设想用s0和s1键来对失球进行判断这一方法也实现不了。我们又想通过与非门等种逻辑器件对它们进行编辑,但也还是没法达到我们所要的失球得分。无论我们如何弄,结果都只是接球得分。
3在计分器的设计过程中,同学看到我们的电路的输出端数量庞大,原来我们在7490输出端接的七段译码器。同学告诉我们只需要将个位ihe十位分别用总线接上,在总电路图中接在老师给的scan_led上就可以直接显示了。我们根据他说的进行订正,电路图立马简练了许多。(原图如下)
4 文件设计好了之后下载到工具箱中,但是我们却发现我们犯了个大错误。在实验箱中,按键一般情况下为1,按下为0。而我们的按键一般情况下为0,按下为1。所以我们只好返回重新将按键及脉冲的高低弄好,把电路重新修改。
5然而紧接着,电路又再次出现问题。当我们将计分器重新修改后,小球却常常动不了了,或者是无法自动反向移动。这下问题更加严重了。在反复修改都不行的情况下,我们把电路重做了一遍,球才又顺利移动了。而此时我们所剩时间有限,失球得分只好放弃,最终将其改为了接球得分。
四、实验心得
这次的课程利用Quartus软件设计的EDA技术,让我们接触到了先进的电子系统设计,体会EDA技术为电子系统设计带来的变化。它不仅使设计效率提高,周期缩短,质量提高,而且系统功容易测试和修改,适用于现在工厂的生产模式。
在这两周的实践中,我又学习到了一种新的工具,同时也是在电子技术领域中的新技术。这两周里,我们充分利用所学的数字逻辑电路中的知识,在设计过程中,更加理解,而不是像以前那样似懂非懂。我一直认为,只有能将所学到的理论知识应用在实际中那才是真正学到了知识!在今后,我们要学着将理论与实际相结合,试着多多去了解电子方面的东西。为将来的工作积累资本!