名称:乒乓球比赛游戏设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

乒乓球比赛游戏

设计一个数字系统,模拟

选手 A(左方)和选手 B(右方)

的乒乓球比赛游戏,要求具有

如下功能:

1 裁判按开始键后开始

比赛,首先左方 A 发球,每方

发5个球后自动换发球;

2 能模拟乒乓球台上球

的运动轨迹和击球过程;

③ 能自动判球,统计显示双方得分情况,先获得 15 分者获胜;

④ 判球标准为 : 球到达一方的球拍位置时,若该选手未按击球键则对方得分;若球未

到达击球位置,选手提前击球则击球无效,但不失分。

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
源代码

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

更多推荐