接发球游戏机的设计与实现
实验题目:接发球游戏机的设计与实现
1. 课程简要信息
课程名称:数字逻辑电路实验
课程学时:32
项目学时:课内6
适用专业:电子信息类
学生年级:本科一年级第二学期
2. 实验内容与任务(限500 字,可与“实验过程及要求”合并)
项目需要完成的任务(如需要观察的现象,分析某种现象的成因、需要解决的问题等);是否设计有不同层次的任务。
实验内容:
基于FPGA和给定电路模块,设计并实现一个接发球游戏模拟机,用发光二级管的亮灭模拟球运动的轨迹,用按键开关模拟接球和发球,计算得分并显示。实验设计操作过程由浅到深、逐级深入,在有限的实验教学课时数内,完成复杂数字电子系统的设计。
注:给定电路模块包含 24个发光二极管,高低电平即可控制亮灭,如下图 1 所示。
实验任务:
1、基本任务:
1)基于 Quartus,设计 8位双向移位寄存器,模拟球左右移动的轨迹,下载到FPGA中连接模块中并调试,观察实验结果。
2)设计接球和发球控制按键。某边按键启动发球,当球移动到最后一个发光二极管(最左或最右)时,按下接球键,才能接球成功,提前或推后接球均为接球失败。接球成功则球自动回弹,继续换方接球,如此循环往复,直到某方接球失败,对方得分。
3)基于 8 位动态扫描数码管,设计双方得分显示器。
2、扩展任务:
1)判断得分先到达 11 分并领先 2 分者,游戏获胜。若领先不到 2 分,继续比赛直至决出胜负。
2)为接球和发球的成功或者失败,或整局的胜利,配合无源蜂鸣器,加上不同的音效。
3)游戏可3 档调速,或自动根据游戏进度提速。
4)接球可以选择高抛、平抛、低抛三种不同模式,控制显示球运动在不同轨迹上,如下图1所示。
5)随机产生不同的提示灯,指定接球模式(高、中、低),游戏者需在正确的时间区间内按下正确的按键(每人分配三个按键),才能接球成功。
6)其他创新游戏模式或功能。

图1 电路模块三种球路模式
3. 实验过程及要求(限300字)
如对学生在实验过程中在需求分析、资料查询、自学预习、思考讨论、方法设计、进程规划、软件仿真、平台构建、器件选择、表格设计、现象观察、数据测试、问题分析、总结报告、验收答辩、演讲交流等各方面的要求。
本课程为独立实验课程,32 学时,每周一次课,3学时,共 11次课,9个实验项目。本案例是最后数字系统综合性设计实验项目之一,共 6个学时;指导教师需提前两周由线上向学生发布数字系统综合性实验任务,学生 1-2人一组,进行实验方案构思与设计。
学生需选定项目及设计目标,本案例为选题之一,当学生选定课题后,课外自行查阅资料,基于自己的电脑进行项目设计和仿真,两次课上(各3学时)基于FPGA开发板和电路模块、其余课外基于远程实境实验平台进行硬件下载和调试,基于课程QQ群进行线上答疑,固定时间线下指导和答疑,完成后进行实物验收、答辩和提交实验报告。
4. 相关知识及背景(限150字)
项目涉及所需的知识方法、实践技能、应用背景、工程案例。
该案例将数字电路中编码器、译码器、数据选择器、加法器、计数器、触发器、移位寄存器、状态机设计、脉冲信号发生等内容融会贯通,是“数字逻辑电路实验”课程中最后的综合实验选题之一。学生还需要会使用 QuartusII 或 Vivado 等 EDA软件进行电路设计,使用Modelsim等工具进行仿真,并掌握电路调试技能,软硬结合实施自顶向下或自底向上进行系统设计的工程理念和方法。
5. 实验环境条件
项目实施需要实验资源,包括实验装置功能、实验仪器设备、设计软件工具、主要电子元器件等。
线上环境:我校教师开发的“远程数字实境实验平台”,曾获第六届全国高校教师自制仪器二等奖,可供学生在课外时间进行实验下载和调试使用;另外本实验课程为浙江省线上一流课程,向学生提供全套线上mooc资源。
软件环境:Quartus 等 EDA 软件。
硬件环境:FPGA 自制实验开发板+扩展用电路模块。

图 2 数字远程实境实验箱+FPGA 开发板
6. 教学目标与目的(限150字)
如学习、运用知识、技术、方法等;培养、提升技能、能力、素质等。
综合运用之前的数字电路理论知识及实验技能,设计并实现接发球游戏模拟机;采用“实物演示 $^ +$ 答辩 $^ +$ 报告”的实验考核模式,使学生在自主创新设计、工程协作、语言表达及论文写作等方面得到训练,提升学生的工程实践能力。
7. 教学设计与实施进程
课堂知识讲解、方法引导、背景解释;实验中的方法指导,问题设置、思路引导等。教学模式、实验渠道、研讨主题、观察节点、验收重点、质询问题等方面设计等。实验实施进程的各个环节(如任务安排、预习自学、现场教学、分组研讨、现场操作、结果验收、总结演讲、报告批改等)中教学设计的思路、目的,教师、学生各自需要完成的工作任务,需要关注的重点与细节。
数字逻辑电路实验通过课程改革,重构了适应新技术发展的数字电子技术课程体系,使课程设置和内容组织更为系统和合理。“数字逻辑电路实验”实验教学内容如表1所示。
表 1实验教学内容
| 数字逻辑电路实验(改革前) | 数字逻辑电路实验(改革后) |
| TTL集成门电路参数测试 | TTL 集成门电路测试与三态门 |
| 编码器、译码器的应用 | 编码器、译码器的应用(基于FPGA) |
| 数据选择器的应用 | 数据选择器的应用(基于FPGA) |
| 全加器的应用 | 广义译码器的应用(基于FPGA) |
| 组合逻辑电路的设计 | 加法器的设计与实现(基于FPGA) |
| 组合电路的软件仿真实验 | 触发器、计数器和移位寄存器的应用 |
| 触发器与计数器的应用 | 时序电路的自动化设计(基于FPGA) |
| 移位寄存器的应用 | 基于一般模型的计数器设计(基于FPGA) |
| 交通灯的控制系统设计 | 数字系统综合性实验(基于FPGA) |
| A/D、D/A转换器的应用 |
任务布置:
本实验位于课程后期,但需提前 2 周发布任务要求,介绍实验项目具体内容及
考核要求,讲解所提供的实验资源及使用方法,鼓励学生自主创新。
线上自主学习与答疑:
实验课程提前录制了实验教学视频并发布在学校网络教学平台,实验内容括实验任务要求、需要用到的电路模块介绍、简单的示例、仿真注意事项等内容,让学生提前熟悉实验资源并做好准备,酝酿实验方案,线上QQ班级群答疑。
课堂线下实验与指导:
为达到更好的实验效果,课堂对实验人数进行了一定的限制,每个实验班最多允许20名学生进行实验设计。接发球游戏机的设计实验分三次完成,第一次提前 2周左右发布任务,第二周,主要完成球轨迹左右移动模块的设计,接发球控制,第三周,完成得分显示及扩展功能的设计。
课堂实验以学生为主体,实验课上学生承担“讲解、补充、质疑”任务,教师承担“质疑、引导、归纳”任务,指导教师每周挑选两组优秀团队对实验设计进行讲解及心得分享。调动学习气氛,提升实验教学的趣味性、研究性及可研讨性。
在设计本案例时,由浅入深,引导学生思考并回答下列问题:
1)发光二极管的电路如何连接?为什么需要限流电阻,应选用多大的的电阻?为何FPGA引脚输出高低电平,能控制发光二极管亮灭?
2)如何使用74194设计8位双向移位寄存器?有没有专门集成的 8位双向移位寄存器器件?如何用 Verilog HDL设计8位双向移位寄存器?
3)如何实现发球?什么情况下,按键需要消抖?如何实现按键消抖?
4)如何判断接球是否成功?如何控制球转向?球的运动速度跟什么因素有关,如何调节?
5)如何实现得分累加?使用加法计数器实现,可以有几种不同的方法?使用Verilog HDl 应如何实现?
6)数码管动态扫描的含义是什么?动态扫描频率适合的范围?太慢或者太快会有怎样的后果?
7)数码管的位选信号可以通过译码器输出控制,那如何使位选信号依次有效?段选信号来自哪里,通过什么样的器件可以将要显示的数码信息轮流传输至段选端?两者如何配合?
8)显示译码器如何选用?共阴数码管或者共阳数码管在使用中要注意什么?
9)如何判断得分是否大于 10 分,且至少相差2分?
10)无源蜂鸣器发声的原理?如何编辑不同的音效?如何配合需要,启动不同的发声音效?
11)如何变换球的运动速度?
12)如何变换球的运行模式和轨迹?
13)如何产生 0-2 的随机数?如何根据随机数,控制不同的信号灯闪烁?如何判断选手接发球是否正确?
14)如何连接和调试不同的模块?如何设计和定义模块接口的变量?
8. 实验原理及方案
实验的基本原理、设计依据、完成任务的思路方法,可能采用的方法、技术、电路、器件。
1、系统结构如图3所示。

图 3 系统框图
2、实现方案
1)分频模块,主要提供各个模块需要的不同频率的时钟信号。可以通过调用IP 库里的 PLL 和 Lpm-counter 模块级联分频实现,构建 n 进制计数器实现或者写 Verilog HDL代码实现。
2)核心控制模块。可以在 Quartus 中调用中规模器件,画原理图实现;或者采用实验8中学习过的时序电路的一般模型,画出控制电路的状态转换图,设计状态机来实现。
时序电路的一般模型如下图所示,其中状态译码模块即实验4中所学的广义译码器模型,实现状态机的现态到次态的变化,n 位寄存器组实现状态机的时序,控制译码器实现控制信息的输出。

图 4 时序电路的一般模型示意图
3)球移动模块。可使用2片 74194扩展级联为8位双向移位寄存器实现,或调用专门集成的8位双向移位寄存器器件74299实现;或者用Verilog HDL代码设计8 位双向移位寄存器。再用 8 位移位寄存器输出连接外部流水灯模块,控制 8 个发光二极管亮灭即可。
4)按键消抖模块。由于按键为机械开关,按下和松开都会产生抖动,有可能影响接发球的判断,所以设计按键消抖模块。这里主要是采用硬件延时消抖的方法,可以使用多个触发器级联延时,如下图所示,或写Verilog HDL代码延时消抖。

图 5 按键消抖电路图
5)接发球模块。本模块主要进行接球、发球信号及控制信号判断,并对输入信
号进行编码操作,再输入给控制模块。
6)得分计算和判断模块。可通过加法计数器(2位级联的74160)控制实现成绩的累加,再通过广义译码器模型设计或 8位数据比较器设计实现得分的判断,结果输出到显示模块,并返回控制模块。
7)得分显示模块,需要设计 4位动态扫描数码管显示控制电路,电路主要思路如下图所示。

图 6 动态扫描原理图
8)音效模块。通过分频模块,产生不同频率的信号,从几百赫兹到一千赫兹左右,通过数据选择器,控制蜂鸣器发出不同音调的声音即可。也可以编辑一段音乐,存储在嵌入式的 ROM中,输入不同的地址调出不同的数据播放不同的音效。
9. 实验报告要求
需要学生在实验报告中反映的工作(如:实验需求分析、实现方案论证、理论推导计算、设计仿真分析、电路参数选择、实验过程设计、数据测量记录、数据处理分析、实验结果总结等等),如:
学生按实验教学任务要求,经过选题申请、中期考核、实体平台测试、答辩汇报等环节完成实验设计,对所设计的实验进行测试验证,给出电路优化方案,提交实验总结报告。报告要求如下:
- 按照实验原理和实验步骤进行实验设计,完成实验后提交 Word 文档实验报告。2) 实验报告文件命格式为:姓名—学号—XXXX(实验名称).doc。3)报告内容至少应包含摘要、引言、系统总体设计方案、分模块电路详细设计、时序仿真结果及分析、硬件平台下载调试结果、实验总结等。
10.考核要求与方法(限300字)
考核的节点、时间、标准及考核方法。
接发球游戏机的设计属于综合设计性实验项目,采用“实物 $^ +$ 报告 $^ { \cdot + }$ 答辩”模式对实验设计进行验收和考核,除了对仿真正确性、实物完成度、实验报告规范性等实验结果进行要求外,实验结果更注重发挥学生的自主性,从选题申报、开题审核、中期汇报、项目验收答辩等环节均以学生为主体,让学生去探索、去思考设计过程。
综合设计性实验成绩 $= 4 0 %$ 实物验收 $+ 2 5 %$ 答辩 $+ 2 5 %$ 总结报告 $+ 5 %$ 创新性 $+ 5 %$ 实验行为,具体评分要求如表 2所示。
表2 实验教学考核评价内容
| 类别 | 考核项目 | 考核评价内容 |
| 综合设计实验 | 创新性、实验行为 | 学生分组申报课题设计目标及技术指标,教师审核并给予难度系数、创新性评分;并根据参与讨论程 |
| 度、过程规范性,对实验行为进行评分 验收分为仿真验收和实物验收,教师根据实验结果 | ||
| 验收和答 辩 | 及其达到的技术指标给予评分,基础功能全部实现 得70%,扩展功能完成1项得15%,最高不超过100%; 答辩结合学生自述和教师提问的方式进行,教师给 予评分;小组可合在一起答辩,但小组内每人的分 工和贡献需表述清楚 | |
| 总结报告 | 教师根据学生撰写报告条理是否明白、逻辑是否合 理、表述是否清楚、语言是否规范、内容是否有创 新等方面进行评分 |
11. 项目特色或创新(可空缺,限 150字)
项目的特色在于:项目背景的工程性,知识应用的综合性,实现方法的多样性。
1、本项目是实验课程最后的综合设计环节,把之前8个基础实验中编码器、译码器、数据选择器、加法器、计数器、分频器、触发器、移位寄存器、状态机设计等内容有机的结合在一起。
2、项目既有挑战性又有趣味性,容易激发学生的学习兴趣。
3、项目教学过程以学生为中心,实施分层教学,满足不同层次学生需要。
4、引导学生将基于模块和元器件的自底向上的设计方法和基于系统分析的自顶向下的设计思想有机结合在一起,锻炼学生的工程实践思维。