乒乓球游戏控制器设计Verilog代码Quartus EP4C开发板

名称:乒乓球游戏控制器设计Verilog代码Quartus  EP4C开发板(文末获取)

软件:Quartus

语言:Verilog

代码功能:

乒乓球游戏控制器

设计任务

设计一个乒乓球游戏控制器,用8个LED组成乒乓球台,用点亮的发光二极管按一定的方向的移动表示球的运动位置。游戏控制器由A、B两人操作,每方设置一个击发球按键,即可用来发球,又可用来击球。比赛规则为:当A按动开关时,靠近A方的第一个LED亮,表示A发球,然后LED从A向B依次点亮,代表球的移动(移动速度为0.5S~1S)。当球移动到靠近B方的第一个灯时,B应该按开关击球,LED向反方向依次点亮,表示球已经击出。若B方提前击球和未击球,则判B方失分,A方得一分。然后重新发球,比赛继续进行。通过数码管来显示双方得分,任何一方先记满9分获胜。每方发两次球后交换发球权。

本代码已在EP4C开发板验证,EP4C开发板如下,其他开发板可以修改管脚适配:

EP4C开发板.png

1、工程文件

2、程序文件

3、程序编译

4、RTL图

5、管脚分配

部分代码展示:

`timescale 1ns / 1ps
module pingpang_game(
    input clk_in,//50MHz
    input reset_n,//低电平复位
    input button_1,//选手1 push low
    input button_2,//选手2 push low
 output beep,//获胜提示
    output [7:0] led,//led,高电平亮 high light
 output [7:0] lednum_select,//数码管段选
    output [3:0] bit_select//数码管位选
    );
wire button_posedge_1;
wire button_posedge_2;
//按键消抖模块
key_debounce i1_key_debounce(
     . clk(clk_in),
     . rst_p(1'b0),
     . button_in(button_1),//输入
  . button_neg(button_posedge_1)//消抖后按键下降沿
);
//按键消抖模块
key_debounce i2_key_debounce(
     . clk(clk_in),
     . rst_p(1'b0),
     . button_in(button_2),//输入
  . button_neg(button_posedge_2)//消抖后按键下降沿
);
wire [7:0] score_1;
wire [7:0] score_2; 
//游戏控制模块
game_ctrl i_game_ctrl(
    . clk_in(clk_in),
    . reset_p(~reset_n),//复位
    . led(led),//led,高电平亮 high light
 . beep(beep),
    . button_posedge_1(button_posedge_1),//消抖后按键下降沿
    . button_posedge_2(button_posedge_2),//消抖后按键下降沿
    . score_1(score_1),//分数1
    . score_2(score_2)//分数2
    );
源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值