名称:乒乓球游戏控制器设计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开发板如下,其他开发板可以修改管脚适配:
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 );
源代码
点击下方的公众号卡片获取