欢迎来到天天文库
浏览记录
ID:513263
大小:351.00 KB
页数:14页
时间:2017-08-21
《基于vhdl的乒乓球逻辑电路设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于VHDL的乒乓球游戏电路设计1、概述两人乒乓球游戏机是由发光二极管代替球的运动。并按一定的规则进行对垒比赛。甲乙双方发球和接球分别用两只开关代替。当甲方按动发球开关时,球就向前运动(发光管向前移位),当球运动过网到一定位置以后,乙方就可接球。若在规定的时间内,乙方不接球或提前、滞后接球,都算未接着球,甲方的计分牌自动加分。然后重新按规则有一方发球,比赛才能继续进行。比赛一直要进行到一方记分牌达到11分,这一局才告结束。2、设计任务和要求乒乓球游戏机逻辑电路控制任务和要求如下:1、乒乓球游戏机甲、乙双方各有两只按钮,分
2、别为发球按钮和击球按钮。2、乒乓球的移动用14只LED灯模拟运行。亮着的灯表示乒乓球此时的位置,乒乓球可以向左和向右移动。3、球过网到一定的位置方可接球,提前击球或出界击球均判为失分,对方的得分加1。4、比赛采用11分制,任何一方先记满11分就获胜,比赛一局就结束。当计分牌清零后,又可开始新的一轮比赛。5、利用VHDL写相应的代码,利用状态机来实现其功能。3、总体设计总体设计框图:该系统可由以下几个模块构成(1).Fenpin模块(分频模块),用来产生球移动频率和得分显示动态扫描频率。(2).Move模块(模拟运行模块)
3、,用来显示乒乓球的运动情况(3).Control模块(控制模块),用来控制乒乓球的运动情况,包括发球、接球、复位,加分等的控制。(4).Showscore模块(得分显示模块),用来记录和显示各方的得分情况,通过四个7段数码管显示出来。(5).Pingpangqiu模块(顶层文件),最终的乒乓球逻辑电路的一切功能的顶层文件。(2)Fenpin模块设计ibraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsi
4、gned.all;entityfenpinisport(clk:instd_logic;-----输入频率,为10MHZclkscan:outstd_logic;-----输出得分动态扫描频率,为8usclkmove:outstd_logic);-----球移动频率,为400msend;architecturebehavioroffenpinisbeginprocess(clk)variablecntscan:integerrange80downto0;-----80分频后得到8us脉冲--variablecntmove
5、:integerrange4000000downto0;variablecntmove:integerrange400downto0;-----为了仿真方便则使球的移动频率改为40usbeginifclk'eventandclk='1'then------clk的上升沿到来时ifcntscan<80thencntscan:=cntscan+1;------计数器未满时加1elsecntscan:=0;------否则计数器清零endif;ifcntmove<400thencntmove:=cntmove+1;elsecn
6、tmove:=cntmove+1;endif;ifcntscan<40then-------使其占空比为50%clkscan<='0';elseclkscan<='1';endif;ifcntmove<200thenclkmove<='0';elseclkmove<='1';endif;endif;endprocess;end;本模块是实现分频作用的。有一个总的时钟输入clk,两个时钟输出。一个是乒乓球模拟移动时的脉冲输出clkmove,一个是得分动态扫描脉冲输出clkscan。其仿真波形如下:由波形图可以看出,输入的频
7、率较高,经过分频后得到两个较小的频率。其中clkscan为动态显示的扫描频率,出clkmove为乒乓球模拟运行的移动频率。(3).Move模块设计libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitymoveisport(clk:instd_logic;-----移动脉冲sa:instd_logic;-----控制模块中a发球标志sb:instd_logic;----控制模块中b发球标志direction:instd_log
8、ic;----球的移动方向,0向左,1向右acanhit:outstd_logic;-----a可击球,0不可击,1可击bcanhit:outstd_logic;-----b可击球adda:outstd_logic;-----a得分addb:outstd_logic;-----b得分moveout:outstd_lo
此文档下载收益归作者所有