名称:乒乓球游戏控制器设计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分获胜。每方发两次球后交换发球权。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在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 ????);
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1245