VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载

名称:VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载

软件:Quartus

语言:Verilog

开发板/平台:Cyclone IV FPGA开发板

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

功能介绍

本设计实现一个基于 FPGA 的 VGA 方块游戏显示控制系统,使用 Verilog 语言完成核心逻辑开发,工程软件为 Quartus。系统通过 VGA 接口输出游戏画面,配合按键完成开始、暂停以及左右方向控制,并将分数低 4 位通过 LED 进行显示,适合用于 FPGA 图形显示、简单游戏逻辑和 VGA 时序控制相关课程设计或工程参考。

顶层模块 vga_controller_top 以 50MHz 时钟作为系统输入,外部接口包含复位、开始按键、暂停按键、两个方向控制按键、VGA 行同步/场同步信号、12 位 RGB 输出以及 4 位 LED 输出。整体功能围绕 VGA 扫描坐标生成、游戏画面像素输出、按键消抖和复位同步展开,结构清晰,便于阅读和二次修改。

画面显示部分由 VGA 时序模块产生 pixel_x、pixel_y、video_on 等显示控制信号,图形生成模块根据当前像素坐标、按键状态和游戏状态输出 RGB 颜色数据。按键输入经过消抖处理后再进入游戏控制逻辑,可减少机械按键抖动对开始、暂停和方向控制的影响。

运行环境

开发语言:Verilog。

开发软件:Quartus。

目标应用:FPGA VGA 图形显示与按键交互游戏设计。

工程顶层:vga_controller_top。

设计思路

系统采用顶层集成的设计方式,将 VGA 时序、复位同步、按键消抖和图形生成逻辑分成相对独立的功能模块。顶层模块负责连接外部时钟、复位、按键、VGA 输出和 LED 显示,同时完成各子模块之间的信号传递,使工程结构更便于定位问题和扩展功能。

VGA 显示部分先由 vga_sync 模块生成行同步、场同步、当前像素坐标以及有效显示区域标志。图形生成模块 graphic_generator 根据像素坐标判断当前位置应显示的游戏元素,并在 video_on 有效时输出对应的 12 位 RGB 数据,从而形成完整的 VGA 游戏画面。

按键控制部分使用 key_jitter 模块对开始、暂停及方向按键进行消抖处理。开始和暂停按键使用下降沿触发信号参与游戏状态切换,方向按键输出稳定电平用于控制游戏中的移动操作。复位信号经过 aiso_rst 同步处理后提供给 VGA 时序和图形控制模块,减少异步复位直接进入多模块逻辑带来的不稳定因素。

LED 输出与 score 信号相关联,用于显示分数低 4 位的状态。这样的设计既保留了 VGA 屏幕上的主要游戏显示,也提供了开发板 LED 辅助观察信号,方便调试和演示。

模块结构

vga_controller_top:工程顶层模块,连接时钟、复位、按键、VGA 输出和 LED 输出,例化复位同步、VGA 时序、按键消抖和图形生成模块。

vga_sync:VGA 时序控制模块,产生 VGA_CLK、VGA_BLANK_N、hsync、vsync、pixel_x、pixel_y 和 video_on 等显示相关信号。

aiso_rst:复位同步模块,将外部复位信号同步为内部使用的复位信号。

key_jitter:按键消抖模块,用于开始、暂停和方向控制按键输入处理。

graphic_generator:图形控制与游戏显示生成模块,根据按键、像素坐标、显示有效信号和游戏状态输出 RGB 数据及 score 分数信号。

display、RAM_set:作为工程相关显示/存储功能模块参与整体设计。

开发板验证

本设计带有 Cyclone IV FPGA 开发板验证内容,工程中配置了管脚约束文件,并提供开发板相关实物验证图片。外部接口覆盖 50MHz 时钟、复位按键、开始/暂停按键、方向按键、VGA 行场同步、12 位 RGB 输出以及 LED 显示,适合在对应 FPGA 开发板环境下进行下载演示和功能观察。

开发板验证重点包括 VGA 显示接口输出、按键交互控制和 LED 分数状态显示。通过管脚分配与工程编译结果,可作为实际硬件连接和板级调试的参考。

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 开发板验证图片 .jpg

演示视频

提供 VGA 方块游戏运行演示视频,可用于查看开发板运行状态、VGA 画面显示效果以及按键控制过程。视频内容适合作为下载前了解工程实际演示效果的参考。

仿真图/仿真说明/设计文档图片

设计文档图片覆盖工程文件、程序文件、程序编译、RTL 图和管脚分配等内容,可辅助理解 Quartus 工程结构、模块层次关系和硬件引脚配置。工程中还包含 ModelSim 仿真目录及相关仿真生成文件,可作为进一步仿真分析和时序查看的基础。

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 设计文档图片 image1.png

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 设计文档图片 image2.png

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 设计文档图片 image3.png

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 设计文档图片 image4.png

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 设计文档图片 image5.png

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 设计文档图片 image6.png

VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载 设计文档图片 image7.png

部分代码

以下展示顶层模块 vga_controller_top 的部分代码,完整源码请下载压缩包查看。

module vga_controller_top(clk_50M,start_btn_n,pause_btn_n, rst, btn_0_in, btn_1_in, hsync, vsync, rgb,LED);
   input         clk_50M;//时钟
   input         rst;//复位(低电平)
	input         start_btn_n;//开始按键
	input         pause_btn_n;//暂停按键
   input         btn_0_in;//按键
   input         btn_1_in;//按键
   output        hsync;//VGA水平同步信号
   output        vsync;//VGA垂直同步信号

   output [3:0]  LED;//LED信号

   output [11:0] rgb;//RGB信号

   wire        VGA_CLK;//VGA控制时钟
   wire        VGA_BLANK_N;//VGA控制有效信号
   wire          clk;
   wire          video_on;
   wire          rst_s;//高电平复位
   wire [9:0]    pixel_x;
   wire [9:0]    pixel_y;
   wire          btn_0;
   wire          btn_1;
   
   wire [1:0]    btn_up_dowm;
   wire [7:0]    score;
   wire          hsync_buf;
   wire          vsync_buf;
   wire [11:0]   rgb_buf;
   //信号输出
   assign hsync = hsync_buf;
   assign vsync = vsync_buf;
   assign rgb = rgb_buf;
   
   assign clk = clk_50M;
	wire btn_start,btn_pause;
	
	assign LED = ~ score[3:0] ;
	
	
   //复位信号同步模块
   aiso_rst i_aiso_rst(.clk(clk), .reset(rst), .reset_s(rst_s));
   
   //VGA时序控制模块(高电平复位)
   vga_sync i_vga_sync(.clk(clk), .rst(rst_s), .VGA_CLK(VGA_CLK), .VGA_BLANK_N(VGA_BLANK_N), .hsync(hsync_buf), .vsync(vsync_buf), .pixel_x(pixel_x), .pixel_y(pixel_y), .video_on(video_on));
   
   
//按键消抖
key_jitter i0_key_jitter(
     . clkin(clk),
     . key_in(start_btn_n),//输入
	  . key_out(),
	 . key_negedge(btn_start)//消抖后按键下降沿
);

//按键消抖
key_jitter i1_key_jitter(
     . clkin(clk),
     . key_in(pause_btn_n),//输入
	  . key_out(),
	 . key_negedge(btn_pause)//消抖后按键下降沿
);


//按键消抖
key_jitter i2_key_jitter(
     . clkin(clk),
     . key_in(btn_0_in),//输入
	  . key_out(btn_0),
	 . key_negedge()//消抖后按键下降沿
);

//按键消抖
key_jitter i3_key_jitter(
     . clkin(clk),
     . key_in(btn_1_in),//输入
	  . key_out(btn_1),
	 . key_negedge()//消抖后按键下降沿
);


   
   //调用图形控制模块(高电平复位)
   graphic_generator i_graphic_generator(.clk(clk), .rst(rst_s), .btn_start(btn_start), .btn_pause(btn_pause), .btn_0(btn_0), .btn_1(btn_1), .pixel_x(pixel_x), .pixel_y(pixel_y), .video_on(video_on), .score(score), .rgb(rgb_buf));
   

endmodule

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » VGA 方块游戏显示控制 Verilog Quartus FPGA代码工程源码下载

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员