乒乓球游戏机报告及vhdl源程序

乒乓球游戏机报告及vhdl源程序

ID:15075015

大小:208.50 KB

页数:9页

时间:2018-08-01

乒乓球游戏机报告及vhdl源程序_第1页
乒乓球游戏机报告及vhdl源程序_第2页
乒乓球游戏机报告及vhdl源程序_第3页
乒乓球游戏机报告及vhdl源程序_第4页
乒乓球游戏机报告及vhdl源程序_第5页
资源描述:

《乒乓球游戏机报告及vhdl源程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、设计报告课程名称在系统编程技术任课教师周泽华老师设计题目乒乓球游戏机班级11电子信息工程(1)班姓名卢海军学号1105011024日期2013/12/29摘要用VHDL编程模拟乒乓球比赛,电路模块由状态机、记分器、译码显示器等部分组成,对各部分编写VHDL算法,进行编译、仿真、逻辑综合、逻辑适配及程序下栽.通过GW48型EDA实验箱的验证,乒乓游戏机能模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。VHDL是高速集成电路硬件描述语言,目前已成为许多设计自动化工具普遍采用的标准化硬件描述语言.VHDL语言功能性强、覆盖面广、灵活性高,具有很好的实用。本文

2、设计一个基于VHDL的乒乓游戏机模拟乒乓球比赛。设计的难点是状态机。并对其进行仿真,给出了仿真波形,完整程序可写入芯片,配合外围元器件,实现乒乓游戏机的功能。关键词:VHDL;GW48;乒乓游戏机一、系统功能概述1.系统的功能两人乒乓球游戏机是用7个发光二极管代表乒乓球台,用点亮的发光二极管按一定的方向移动来表示球的运动。在游戏机的两侧各设置一个开关,即击球开关HitA,HitB。甲乙二人按乒乓球比赛规则来操作开关。当甲按动击球开关时,靠近甲的第一个二极管亮,然后发光二极管由甲向乙依次点亮,代表乒乓球的移动。当球过网(中点)时,乙方可以击球。若乙方提前或是

3、没击中球则判乙方失分,甲方的计分牌自动加分。然后重新发球,比赛继续。比赛直到一方分数达到11分时,比赛结束。2.各项设计指标a.用两个开关表示HitA,HitB,当开关值为1时表示击球。b.设置一个复位信号RESET.当reset有效时,计分牌清0。二、系统组成以及系统各部分的设计1、系统结构描述libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitypingpangisPort(clk:inSTD_LOG

4、IC;--时钟,与球飞行速度有关hita:inSTD_LOGIC;--A选手击球键hitb:inSTD_LOGIC;--B选手击球键reset:inSTD_LOGIC;--低电平异步复位,高电平比赛进行中led0:outSTD_LOGIC_VECTOR(3downto0);--B选手得分led1:outSTD_LOGIC_VECTOR(3downto0);led2:outSTD_LOGIC_VECTOR(3downto0);--A选手得分led3:outSTD_LOGIC_VECTOR(3downto0);light:outSTD_LOGIC_VECTOR

5、(6downto0);--显示球飞行位置);endpingpang;architectureBehavioralofpingpangissignalascore1,ascore0,bscore1,bscore0:std_logic_vector(3downto0);--得分signalnum:integerrange0to9;--正亮着的light序号--0表示b侧落地,4表示网,8表示a侧落地,9表示全准备发球Beginprocess(clk,reset,hita,hitb)variabledir:integerrange0to2;--0:A=>B;1:

6、B=>A;2:准备发球beginifreset='0'then--低电平异步复位,高电平比赛进行中num<=9;dir:=2;ascore1<="0000";ascore0<="0000";bscore1<="0000";bscore0<="0000";elsifrising_edge(clk)thenifdir=2andascore1<"1010"andbscore1<"1011"then--准备发球,若已显示名次,则比赛结束,不再发球if(hita='1')then--A发球num<=7;dir:=0;elsif(hitb='1')then--B发球n

7、um<=1;dir:=1;elsenum<=9;--无人发球,继续准备dir:=2;endif;elsifdir=0andnum>0then--A=>B,未落台ifhita='1'then--A连续击球两次num<=9;if(bscore1="0000")then--B得分if(bscore0="1001")thenbscore0<="0000";bscore1<="0001";elsebscore0<=bscore0+'1';endif;elsif(bscore1="0001")then--B胜利,显示名次和分数bscore1<="0001";--1bs

8、core0<="1011";--bendif;dir:=2;--进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。