名称:乒乓球比赛游戏设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
乒乓球比赛游戏
设计一个数字系统,模拟选手 A(左方)和选手 B(右方)的乒乓球比赛游戏,要求具有如下功能:
1、裁判按开始键后开始比赛,首先左方 A 发球,每方发5个球后自动换发球;
2、能模拟乒乓球台上球的运动轨迹和击球过程;
3、能自动判球,统计显示双方得分情况,先获得 15 分者获胜;
4、判球标准为 : 球到达一方的球拍位置时,若该选手未按击球键则对方得分;若球未到达击球位置,选手提前击球则击球无效,但不失分。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 乒乓球游戏功能
设计一个乒乓球游戏,模拟选手 A(左方)和选手 B(右方)的乒乓球比赛游戏,要求具有如下功能:
1、裁判按开始键后开始比赛,首先左方 A 发球,每方发5个球后自动换发球;
2、能模拟乒乓球台上球的运动轨迹和击球过程;
3、能自动判球,统计显示双方得分情况,先获得 15 分者获胜;
4、判球标准为 : 球到达一方的球拍位置时,若该选手未按击球键则对方得分;若球未到达击球位置,选手提前击球则击球无效,但不失分。
QuartusII 9.0软件
2. 工程文件
3. 程序文件
4. 程序编译
5. RTL图
6. 仿真图
按键下降沿检测模块
游戏控制模块
数码管显示模块
部分代码展示:
//数码管显示模块 module display_num( input clk, input [7:0] score_1,//分数1 input [7:0] score_2,//分数2 output reg [7:0] HEX0,//数码管0 output reg [7:0] HEX1,//数码管1 output reg [7:0] HEX2,//数码管2 output reg [7:0] HEX3//数码管3 ); wire [3:0] data1; wire [3:0] data2; wire [3:0] data3; wire [3:0] data4; //除以10得十位,取余得个位 assign data1=score_1/10;//十位 assign data2=score_1%10;//个位 assign data3=score_2/10;//十位 assign data4=score_2%10;//个位 //数码管显示 always@(posedge clk) begin case(data4) 4'd0 : HEX0= 8'hc0; 4'd1 : HEX0= 8'hf9; 4'd2 : HEX0= 8'ha4; 4'd3 : HEX0= 8'hb0; 4'd4 : HEX0= 8'h99; 4'd5 : HEX0= 8'h92; 4'd6 : HEX0= 8'h82; 4'd7 : HEX0= 8'hf8; 4'd8 : HEX0= 8'h80; 4'd9 : HEX0= 8'h90; default:HEX0= 8'hc0; endcase end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1381
638