My title page contents

乒乓球游戏机设计Verilog代码ISE仿真

名称:乒乓球游戏机设计Verilog代码ISE仿真

软件:ISE

语言:Verilog

代码功能:

乒乓球游戏机

项目功能说明

设计一个由两人参赛的乒乓球游戏机,用4个LED排成一条直线,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED一次从左到右,或者从右到左,其移动速度应能调节。当“球”将运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球,若击中,则球向相反方向移动;若未击中,球掉出桌外,则对方得一分。双方各设一个LED表示拥有发球权,每隔两次自动交换发球权,拥有发球权的一方发球才有效。设置计分电路,其中参赛选手各有一个可显示自己当前分数的按钮,当按下个人分数按钮,可用LED灯显示自己分数,当某一方率先达到11分

时,所有LED灯闪烁,表示比赛结束。

  

输入输出的关系

out: clk, rst, in1, in2, scorel, score2

Output: led[3: 0

①clk为系统时钟,在代码中需要进行分频,根据合适的分频系数从而调节乒乓球的运动快慢;rst为异步复位信号,可清除当前的比分;inl和in2分别为两个选手的击球按钮。 scorel和sore2分别为显示各自当前分数的按键,当按下任意一个时,led[3:0]显示相对应选手的分数

②led[3:0]为球运动轨迹信号,同时也可以代替数码管显示选手分数;    

③s1~s4为球运动轨迹寄存器,s0和s5为球掉出桌外的信号, R score1和2为双方当前得分寄存器,turm1和] turn r为移位信号寄存器,nght和righ2为双方的发球权


.注意事项

①显示输出模块中,可把球运动轨迹和双方分数分别存到不同的寄存器中,按下相应的按键显示相应的输出;

②球的移动可通过加减计数器和译码电路实现,或者通过移位信号实现

③设置好发球权,每次得分后,LED[0]或者LED3]应显示下一次的发球权    


仿真程序说明

测试时按照相应的时间设置相应的输入信号inl和in2,看球的运动轨迹和得分及发球权情况。同时内部分数寄存器也可显示当前分数。

乒乓球游戏机要求1.jpg乒乓球游戏机要求2.jpg

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1、工程文件


2、程序文件

3、程序编译


4、RTL图


5、管脚分配


部分代码展示:

`timescale 1ns / 1ps
module pingpang_game(
    input clk,//50MHz
    input rst,//低电平复位
    input In1,//选手1 
    input In2,//选手2
    input Score1,//选手1分数查询
 input Score2,//选手2分数查询  
    output [3:0] led//led,低电平亮,获胜所有LED亮
    );
 
wire button_posedge_1;
wire button_posedge_2;
//按键消抖模块
key_debounce i1_key_debounce(
     . clk(clk),
     . button_in(In1),//输入
  . button_pos(button_posedge_1)//消抖后按键上升沿
);
//按键消抖模块
key_debounce i2_key_debounce(
     . clk(clk),
     . button_in(In2),//输入
  . button_pos(button_posedge_2)//消抖后按键上升沿
);
//分频模块
move_speed i_move_speed(
. clk_in(clk),
. reset_p(button_posedge_1 | button_posedge_2),
. shift_en(shift_en)//移动使能信号
    );

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 乒乓球游戏机设计Verilog代码ISE仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员