基于vhdl的乒乓球逻辑电路设计

基于vhdl的乒乓球逻辑电路设计

ID:513263

大小:351.00 KB

页数:14页

时间:2017-08-21

基于vhdl的乒乓球逻辑电路设计_第1页
基于vhdl的乒乓球逻辑电路设计_第2页
基于vhdl的乒乓球逻辑电路设计_第3页
基于vhdl的乒乓球逻辑电路设计_第4页
基于vhdl的乒乓球逻辑电路设计_第5页
资源描述:

《基于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

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

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

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