基于FPGA的乒乓球游戏设计
课程名称:硬件描述语言与可编程逻辑器件
实验题目:基于FPGA的乒乓球游戏设计
课程简要信息
硬件描述语言与可编程逻辑器件,理论20学时+实验16学时,计算机科学与技术,大三
实验内容与任务(限500字)
项目需要完成的任务(如需要观察的现象,分析某种现象的成因、需要解决的问题等);是否设计有不同层次的任务。
-
采用硬件描述语言设计一个基于FPGA的乒乓球游戏机,能够模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。完成系统的功能时序仿真验证,并在FPGA开发板上验证所设计功能的正确性,通过开关/按键实现发球动作、击球动作的模拟,显示设备显示比赛得分结果。
-
乒乓球游戏机的基本功能要求包括以下几种功能:
-
乒乓球台:8个发光二极管,中间两个发光二极管作为乒乓球网
-
球运动方向:点亮的发光二极管的移动方向
-
游戏规则:比赛采用11分为一局进行。在游戏机的两侧各设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。当甲方按动发球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方向乙方依次点亮,代表乒乓球的移动,当球过网后,按照设计者规定的球位乙方就可以击球。若乙方提前击球或者未击到球,则甲方得分。然后重新发球比赛,直到一方达到11分为止,记分清0,重新开始新一局比赛。
- 乒乓球游戏机的扩展功能要求包括以下几种功能:
-
实现多个不同发球和击球位置,乒乓球移动速度可调节。
-
点阵液晶作为乒乓球台,模拟实现抛物线状乒乓球运动方向。
-
VGA屏幕作为乒乓球台,模拟显示球拍不同位置及乒乓球的移动。
实验过程及要求(限300字)
如对学生在实验过程中在需求分析、资料查询、自学预习、思考讨论、方法设计、进程规划、软件仿真、平台构建、器件选择、表格设计、现象观察、数据测试、问题分析、总结报告、验收答辩、演讲交流等各方面的要求。
-
学习了解乒乓球比赛规则,掌握有限状态机的基本原理及设计方法,分析掌握乒乓球比赛得分判断过程,注意分析状态间逻辑关系及触发转移条件;
-
学习乒乓球游戏控制器的状态机模块与其他功能模块的信号关系;
-
根据功能要求设计乒乓球游戏机的基本功能结构,并采用硬件描述语言进行编程设计实现;
-
通过EDA工具的时序仿真方法验证乒乓球游戏机每个功能模块以及状态转移的正确性。采用FPGA验证乒乓球游戏机的基本功能,设计输入及输出接口,通过拨动开关模拟发球和击球动作,数码管显示比赛得分情况。注意开关需要进行消抖操作,数码管采用动态扫描方式显示。
-
撰写设计总结报告,并通过分组讨论交流不同实现方案的特点。
相关知识及背景(限150字)
项目涉及的知识方法、实践技能、应用背景、工程案例。
这是一个综合运用数字电路、硬件描述语言及FPGA的典型案例,需要运用数字电路设计、有限状态机原理与设计、硬件描述语言设计、FPGA设计应用、数据输入及显示及数码管动态扫描等相关知识与技术方法。并涉及EDA软件仿真验证、FPGA原型验证、有限状态机设计、控制时序及按键消抖等工程概念与方法。
教学目标与目的(限100字)
如学习、运用知识、技术、方法;培养、提升能力、素质。
在较为完整的实际应用设计项目实现过程中引导学生掌握有限状态机的基本原理及实际应用方法,掌握硬件描述语言及FPGA设计验证方法;引导学生根据需求设计功能结构,设计并验证功能要求,并通过测试与分析提高综合实践能力。
教学设计与引导
如预习要求及检查;课堂知识讲解、方法引导、背景解释;实验中的方法指导,问题设置、思路引导等。研讨主题、观察节点、验收重点、质询问题的设计等。
本实验的过程是一个比较完整的综合实践工程,需要经历学习研究、需求分析,方案论证、结构设计、仿真验证、FPGA验证、设计总结等过程。在实验教学中,应在以下几个方面加强对学生的引导:
-
学生需要提前学习有限状态机的基本原理和结构,了解状态间逻辑关系及转移触发条件,了解不同状态机类型的差异。
-
课程上讲述有限状态机的设计方法。面向具体应用,如何抽象提取状态及分析状态间逻辑关系。注意状态转移的触发条件分析。
-
在功能模块设计实现时,注意乒乓球游戏机比赛过程具体状态的先后顺序以及转移关系。对于同一功能要求,硬件描述语言设计时可以采用不同的描述方式及不同的逻辑语句实现。
-
可以简略地介绍控制信号的时序分析方法,要求学生自学整理出乒乓球游戏机比赛过程的控制信号时序关系。
-
简略介绍功能仿真验证、FPGA验证方法以及有限状态机的设计方法,在逻辑功能设计完成后,要求学生对每个功能模块进行功能仿真验证。验证模块功能正确后,需要根据实验室所能够提供的条件,设计输入输出接口电路,进行FPGA验证。
-
验收重点关注乒乓球游戏状态的完整性和正确性以及设计的创新性。在验收过程,可以提出如“为什么要采用这样的方案”、“在具体的状态设计中如何考虑状态间关系及触发转移”、“这些控制信号的时序为什么这样安排”等问题来考查学生对知识的掌握程度。
-
在实验完成后,可以组织学生以项目演讲、答辩、评讲的形式进行交流,了解不同实现方案及其特点,拓宽知识面。
在设计中,要注意设计的规范性;如模块接口的规范性及可扩展性;并且要注意按键消抖、时钟频率对结果显示的影响。
实验原理及方案
实验的基本原理、完成实验任务的思路方法,可能采用的方法、技术、电路、器件。
- 乒乓球游戏机控制原理
本实验所设计的乒乓球游戏机包括状态机控制器、按键消抖、比赛得分译码电路和乒乓球状态等功能模块,具体结果如图1所示。乒乓球状态控制器根据外部发球/击球动作的输入,实现内部有限状态机状态根据比赛规则进行状态转移,将比赛得分及乒乓球移动状态输出显示。

图1 乒乓球游戏控制器基本结构
比赛采用21分为一局。乒乓游戏机用8个发光二极管(或者更多)代表乒乓球台,中间两个发光二极管作为乒乓球网,用点亮的发光二极管按照一定的方向移动来表示球的运动。在游戏机的两侧各设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。当甲方按动发球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方向乙方依次点亮,代表乒乓球的移动,当球过网后,按照设计者规定的球位乙方就可以击球。若乙方提前击球或者未击到球,则甲方得分。然后重新发球比赛,直到一方达到11分为止,记分清0,重新开始新一局比赛。具体原理如图2所示。

图2 乒乓球游戏基本原理
- 实现方案
首先,可供选择的数据输入方式包括轻触按键(四脚按键)和拨动开关,输入的数据格式可以采用二进制或者十进制方式输入。输入信号需要进行按键消抖操作,可以采用RS触发器消抖或者延时消抖以实现信号的正确输入。
其次,乒乓球游戏状态控制器采用Mealy型状态机实现乒乓球状态处理,在状态机编码部分可选择二进制、格雷码、约翰逊、独热码等不同的编码方式。在乒乓球状态设计过程中,需要注意状态之间的逻辑关系及转移条件。
在数据显示方式上,可采用数码管、字符型LCD或点阵LCD等形式。输出数据格式可以采用二进制、十进制或者十六进制。

图3 乒乓球游戏控制器实现方法多样性
- 验证系统结构
采用硬件描述语言设计乒乓球游戏机功能模块,经仿真验证后下载到FPGA开发板进行板级验证。在基于FPGA开发板基础上进行输入和输出接口电路设计。输入接口可采用拨动开关、矩阵键盘或并行接口键盘,实现发球/击球动作输入。输出接口可采用并行或串行数码管、并行/串行字符型LCD或点阵LCD,实现比赛得分结果及乒乓球移动状况的显示。

图4 实验验证系统结构
教学实施进程
简要介绍实验实施进程的各个环节(如任务安排、预习自学、现场教学、分组研讨、现场操作、结果验收、总结演讲、报告批改等)中,教学设计的思路、目的,教师、学生各自需要完成的工作任务,需要关注的重点与细节。
在实验教学实施过程中,以项目开发方式进行部署,使学生参与到任务需求分析、方案设计、仿真验、实物系统设计制作及测试验证整个设计开发过程,掌握项目开发的基本方法和软硬件协同综合调试测试方法,学会如何分析问题和解决问题,切实提高学生的实践动手能力。
-
任务安排:以分组形式进行任务安排,1~2人一组。每组有1~2项任务要求不相同,避免相互抄袭。
-
预习自学:学生需要预先学习有限状态机的基本结构及工作原理,重点要掌握EDA工具的使用和FPGA的基本应用开发。
-
现场教学:教师需要讲述有限状态机的原理及设计方法、状态转移条件分析,功能仿真验证、FPGA验证方法,重点分析状态的抽象和触发条件。
-
分组研讨:以小组形式进行学习交流、方案分析、问题讨论及设计探讨等交流活动,交流形式可以多样化,如报告形式、现场讨论或者网络讨论,以培养学生团队合作精神和语言组织及表达能力。
-
结果验收:学生必须完成所题目所要求的基本功能,并现场解说所设计的方案及结果分析。教师可根据学生的情况进行提问,以了解学生对知识的掌握程度以及动手能力,并对所完成实验的各项功能进行打分验收,重点关注功能的完整性和正确性,以及创新点。
-
总结汇报:组织学生进行结题汇报。每组学生对自己工作进行整理总结,展示各自实现方案、功能实现及系统验证等方面内容。不同小组的交流可以了解不同方案的特点,拓宽知识面。教师对汇报进行点评及提问。整个环节主要培养学生文档整理、语言组织、交流表达等方面的能力。
报告批改:教师在报告批改过程中主要关注学生语言组织的流畅性,内容完整性、结果分析的正确性以及方案设计的创新性。
实验报告要求
需要学生在实验报告中反映的工作(如:实验需求分析、实现方案论证、理论推导计算、设计仿真分析、电路参数选择、实验过程设计、数据测量记录、数据处理分析、实验结果总结等等)
实验报告需要反映以下工作:
-
实验需求分析
-
实现方案设计
-
乒乓球游戏状态分析与设计
-
功能仿真验证
-
信号时序分析
-
FPGA验证
-
实验结果分析与总结
考核要求与方法(限300字)
考核的节点、时间、标准及考核方法。
-
实物验收:基本功能的完成程度(如乒乓球游戏状态机状态个数、状态转移关系、发球/击球位置判断、比赛得分判断等),完成时间。
-
实验质量:有限状态机设计的正确性,有限状态机状态转移关系的正确性。
-
扩展功能考核:扩展部分的完成程度及正确性。
-
自主创新:功能构思、逻辑设计的创新性,自主思考与独立实践能力。
-
实验报告:实验报告的规范性与完整性。
-
考核标准:乒乓球游戏实验共100分,其中基本功能实现(50分),实验报告(20分),可扩展性(20分),创新性(10分)。
项目特色或创新(可空缺,限150字)
项目的特色在于:项目背景的工程性,知识应用的综合性,实现方法的多样性。
项目的特色是:知识应用的综合性,实现方法的多样性。
项目的创新点在于:以硬件描述语言设计乒乓球游戏的方法,实现了有限状态机从理论原理到具体应用实践。虚实结合的验证方法提高了学生对有限状态机结构和关键原理的掌握程度。在实验教学中,引导学生进行创新性设计,增强了学生综合运用基础知识的实践能力。
参赛选手信息表
| 案例提供单位 | 西安电子科技大学 | 相关专业 | 计算机科学与技术 | ||||
|---|---|---|---|---|---|---|---|
| 设计者姓名 | 张剑贤 | 电子邮箱 | jianxianzhang@mail.xidian.edu.cn | ||||
| 移动电话 | 13572283774 | 通讯地址 (含邮编) |
西安电子科技大学计算机学院161#信箱,710071 | ||||
| 设计者姓名 | 吴文华 | 电子邮箱 | wwhooo_xd@163.com | ||||
| 移动电话 | 15129202267 | 通讯地址 (含邮编) |
西安电子科技大学计算机学院161#信箱,710071 | ||||
| 设计者姓名 | 周佳社 | 电子邮箱 | jshzhou@mail.xidian.edu.cn | ||||
| 移动电话 | 13891822299 | 通讯地址 (含邮编) |
西安电子科技大学电工电子教学基地,710071 | ||||
| 相关x课程名称 | 硬件描述语言与可编程逻辑器件 | 学生年级 | 大三 | 学时(课内+课外) | 课内(理论20+实验16)+课外16 | ||
支撑 条件 |
仪器设备 | Xilinx Spartan-3E FPGA核心板 | |||||
| 软件工具 | Xilinx ISE集成开发环境 | ||||||
| 主要器件 | 学生自设计按键/开关、数码管/LCD接口电路 | ||||||
教务部门 推荐意见 |
签字: 印章 | ||||||