0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

电子设计 来源:郭婷 作者:电子设计 2019-07-23 08:01 次阅读

编程逻辑器件FPGA以其开发周期短、成本低、功耗低、可靠性高等优势,广泛应用于通信、航空、医疗等领域,近年来在消费电子领域中的应用也日渐增加。为进一步挖掘FPGA在家庭娱乐如游戏机开发与应用中的巨大商机,介绍了一款以Altera公司FPGA芯片为控制核心,附加少量外围电路组成的乒乓球比赛游戏机。整个系统设计模块划分清晰:包括裁判端、选手端、控制端、显示端及模拟乒乓球台;功能齐全:包括发球权控制、犯规提示、局数比分显示等,模拟实际乒乓球比赛相似程度高。采用了VHDL语言编程实现,在QuartusⅡ8.1集成环境下进行了模拟仿真,结果表明在设定的比赛规则下,游戏机运行正常,通过进一步优化可将其商品化,推入市场。

1 系统组成

乒乓球比赛游戏机的组成如图1所示。比赛规则约定:五局三胜;11分一局;裁判发出比赛开始信号,触发FPGA内部随机数发生器模块产生首次发球权方;比赛进行中,选手连续两次获得发球权后,发球权交予对方,如未获发球权方发球,裁判端犯规音响电路鸣响;13个LED排列成行模拟乒乓球台;点亮的LED模拟乒乓球,受FPGA控制从左到右或从右到左移动;比赛选手通过按钮输入模拟击球信号,实现LED移位方向的控制;若发亮的LED运动在球台中点至对方终点之间时,对方未能及时按下击球按钮使其向相反方向移动,即失去一分。

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

2 功能模块设计

图1中,基于FPGA设计的控制端为整个系统的核心,其内部主要由简易随机数发生器、发球权控制器、乒乓球位置控制器、甲乙方计分控制器、犯规音响控制器等模块组成。整个控制端采用模块化设计,先用VHDL语言编写功能模块,然后用顶层原理图将各功能模块连接起来。设计的难点在于协调各模块工作,严格遵守各信号间时序关系。本系统采用1 kHz系统时钟

2.1 简易随机数发生器

比赛首次发球权由随机数发生器产生的数据决定,其随机性要求不严,因此,采用非常简单的模式产生,即一旦FPGA上电,系统时钟百分频产生一方波信号square,当裁判闭合开始比赛开关产生start信号上升沿时,读取此时square信号值作为随机数发生器输出randq。模块仿真如图2所示,结果满足设计要求。此模块设计时保证了square信号周期应远大于start信号上升沿建立时间,保证随机数据的正确读取。

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

2.2 发球权控制器

发球权控制器的控制过程为:如果按下复位按钮,发球权数码管显示8,否则,开始比赛开关闭合时,显示随机数发生器的值(0或1,0代表甲方、1代表乙方)。而在比赛中,为遵守发球权交换规则,设计甲乙双方计分器总和信号sum_sc是不为0的偶数时(即计分总和最低位sum_sc0下降沿到来时),发球权数码管显示由0变为1或由1变为0。

此模块设计中,发球权数码管的信号控制受多个时钟的控制,即开始比赛开关start和计分值sum_sc0信号,这在VHDL编程语言中无法用一个进程实现,必须将两个信号组合成一个时钟信号,并统一两个时钟的触发沿。因此最佳时钟触发方式如图3所示的fqq_en信号。为满足这种时序要求,借助计分总和次低位sum_sc1信号设计entity sum_sc_mod2,由于start和sum_sc1的频率都远低于系统时钟信号clk频率,则可借助clk高频信号捕捉其边沿产生新的时钟信号fqq_en,并产生其计数值,仿真波形如图4(a)所示。为保证发球权数码管显示正确,设计entitv led_fqq_ctl在fqq_en下降沿时,根据其计数值产生相应的数码管输出信号led_fqq,仿真波形如图4(b)所示。

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

发球权控制器的VHDL核心程序如下:

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

2.3 乒乓球位置控制、甲乙计分、犯规音响控制

乒乓球位置控制电路为FPGA控制端的核心,依据比赛规则,采用了Mealy型状态机来实现,大大降低了设计难度。状态机共定义了7个状态,各状态定义如表1所示,状态转换如图5所示,转换条件如表2所示,具体程序如下。

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

3 顶层模块仿真测试

由于篇幅限制,本系统中的分频器、译码器等常用模块的设计就不再此赘述,最终顶层原理图设计如图6所示,仿真波形如图7所示,分析波形可知,图中开始比赛信号产生后,首次发球权方为乙方,甲方发球造成犯规音响电路鸣响,即speaker信号为高电平,然后乙方发球,乒乓球依次移位,甲方接球成功后乙方未接球成功,甲方得分,cnta信号为“0110000”,注意,此处输出为驱动数码管输出信号,代表数字“1”。通过仿真可知,该系统设计满足游戏机比赛规则要求。

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

基于VHDL语言和FPGA芯片实现乒乓球比赛游戏机的设计与仿真

4 结语

采用VHDL语言编程,基于FPGA成功设计了一款乒乓球比赛游戏机,通过仿真验证可知,结果满足设计需求,系统具有发球权控制、自动计分、犯规提示等多种功能,能有效模拟实际乒乓球比赛。该系统进一步改进思路为:改用人体感应传感器来采集击球信号,采用FPGA产生视频信号传送到电视机或监视器,更直观地展示乒乓球运动轨迹,从而真正实现人机互动,优化虚拟效果。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593122
  • 控制器
    +关注

    关注

    112

    文章

    15214

    浏览量

    171138
  • 电视机
    +关注

    关注

    7

    文章

    389

    浏览量

    43571
收藏 人收藏

    评论

    相关推荐

    FPGA设计实例】用FPGA控制乒乓球比赛

    FPGA控制乒乓球比赛本次试验实例将讲解如何用FPGA控制乒乓球比赛,也就是如何
    发表于 03-09 09:32

    基于FPGA乒乓球比赛游戏机”的设计

    基于FPGA乒乓球比赛游戏机”的设计
    发表于 08-17 11:45

    乒乓球游戏机 自己弄老是各种问题 请哪位高手帮忙弄 参...

    乒乓球游戏机要求:1.用8个发光二极管表示;用两个按钮分别表示甲乙两个球员的球拍;2.一方发球后,以固定速度向另一方运动(发光二极管依次点亮),当
    发表于 06-17 10:23

    有谁做过这个FPGA课程设计的?基于 FPGA乒乓球比赛游戏机

    设计要求:(1) 设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。 (2) 用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示的当前位置,点亮
    发表于 12-30 21:35

    【求助】FPGA乒乓球游戏机的设计

    1、使用乒乓球的双方在不同位置发球或击球;2、乒乓球的位置和移动方向由灯亮和依次亮的方向决定使用者根据的位置发出相应动作;3、比赛用21分一局进行。一方记满21分获胜。重新开局。;4
    发表于 12-25 12:28

    如何采用VHDLFPGA设计一款乒乓球比赛游戏机

    采用VHDL语言编程,基于FPGA成功设计了一款乒乓球比赛游戏机,通过
    发表于 05-06 07:08

    怎么实现乒乓球发射的设计?

    怎么实现乒乓球发射的设计?
    发表于 11-09 06:56

    如何利用单片实现乒乓球游戏的设计

    求代码兄弟们一、任务利用单片、LED、按键、数码管等设计制作简单的乒乓球游戏。用8 个LED表示,用两个按钮分别表示甲乙两个球员的球拍。一方发球后,
    发表于 01-07 07:10

    模拟乒乓球比赛设计

    用EasyFPGA030开发套件,游戏电路是模拟乒乓球比赛,可供两人游戏。甲乙各持一按键作为球拍,实验板上一行16只发光二极管为
    发表于 11-02 17:02 112次下载

    基于FPGA乒乓游戏机设计

    本文使用FPGA芯片来模拟实际的乒乓球游戏。本设计是基于Altera公司的FPGA Cyclone II
    发表于 02-24 14:51 88次下载

    基于FPGA乒乓游戏机设计

    本文使用FPGA芯片来模拟实际的乒乓球游戏。本设计是基于Altera公司的FPGA Cyclone II
    发表于 07-17 18:08 56次下载

    乒乓球游戏机VHDL程序

    乒乓球游戏机VHDL程序,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-11 15:51 12次下载

    使用STM32单片机实现乒乓球游戏的C语言和工程文件免费下载

    本文档的主要内容详细介绍的是使用STM32单片机实现乒乓球游戏的C语言和工程文件免费下载。
    发表于 12-16 08:00 7次下载
    使用STM32单片机<b class='flag-5'>实现</b><b class='flag-5'>乒乓球</b><b class='flag-5'>游戏</b>的C<b class='flag-5'>语言和</b>工程文件免费下载

    乒乓球游戏机Proteus仿真

    乒乓球游戏机Proteus仿真资料分享
    发表于 10-31 16:32 2次下载

    基于FPGA乒乓球比赛游戏机的设计

    电子发烧友网站提供《基于FPGA乒乓球比赛游戏机的设计.pdf》资料免费下载
    发表于 10-20 10:31 1次下载
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>乒乓球</b><b class='flag-5'>比赛</b><b class='flag-5'>游戏机</b>的设计