VGA 小球游戏显示控制 Verilog Quartus
名称:VGA 小球游戏显示控制 Verilog Quartus
软件:Quartus
语言:Verilog
功能介绍
这是一个使用 Verilog 实现的 VGA 小球游戏显示控制设计,工程以 `vga_controller_top` 为顶层模块。顶层接收时钟、复位和上下两个按键输入,输出 VGA 水平同步、垂直同步及 12 位 RGB 颜色信号,形成从按键输入到像素画面输出的完整控制链路。 设计将 VGA 扫描时序、像素坐标生成、按键消抖和图形绘制拆分为独立模块。图形生成模块接收像素坐标、有效显示区标志和按键状态,负责形成显示颜色数据;顶层完成各模块连接,便于按信号路径理解和修改游戏控制及画面逻辑。 工程适合用于学习 FPGA 上的 VGA 时序组织、坐标驱动图形显示、模块化 Verilog 设计以及按键输入处理。Quartus 工程文件和管脚配置可作为工程配置与硬件接口分配的参考。运行环境
硬件描述语言:Verilog。开发软件:Quartus。工程顶层模块:`vga_controller_top`。设计思路
设计采用模块化结构,将时钟生成、复位同步、VGA 扫描时序、按键消抖与图形生成分开处理。输入时钟经 PLL 产生设计使用的时钟;复位信号经过同步后供各模块使用,降低复位释放与时钟边沿不同步带来的影响。 VGA 时序模块产生水平和垂直同步信号、当前像素坐标以及有效显示区标志。两个按键分别经过消抖处理,再组合成控制信号送入图形生成模块。图形模块依据像素坐标、显示区状态和按键输入生成 RGB 像素数据,并将游戏画面与 VGA 同步信号一并送到顶层输出。模块结构
顶层模块 `vga_controller_top` 连接并管理各功能模块:`pll` 生成内部时钟;`aiso_rst` 完成复位同步;`vga_sync` 输出 VGA 同步信号、像素坐标和显示有效标志;两个 `debounce` 实例分别处理上下按键;`graphic_generator` 根据控制输入与像素坐标生成 RGB 数据及分数信号。`display` 模块也位于工程源码中。开发板验证
工程包含 VGA 管脚约束与分配配置,可用于配套开发板的接口连接与验证。顶层设计提供 VGA 水平、垂直同步信号及 12 位 RGB 输出,并以两个按键输入控制画面中的游戏图形。仿真图/仿真说明/设计文档图片
工程包含 ModelSim 仿真目录及 Quartus 编译、时序相关输出文件,可用于了解工程仿真与实现流程。配套文档图片可展示实验设备及相关设计资料。未据此描述具体仿真波形或仿真结果。





























部分代码
以下展示顶层模块 vga_controller_top 的部分代码,完整源码请下载压缩包查看。
module vga_controller_top(clk_20M, rst, btn_up, btn_down, hsync, vsync, rgb);
input clk_20M;//时钟
input rst;//复位
input btn_up;//上按键
input btn_down;//下按键
output hsync;//VGA水平同步信号
output vsync;//VGA垂直同步信号
output [11:0] rgb;//RGB信号
wire clk;
wire video_on;
wire rst_s;
wire [9:0] pixel_x;
wire [9:0] pixel_y;
wire db_btn_up;
wire db_btn_down;
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;
//PLL模块
pll pll_inst (
.inclk0 ( clk_20M ),
.c0 ( clk )//50M
);
//复位信号同步模块
aiso_rst u0(.clk(clk), .reset(rst), .reset_s(rst_s));
//VGA时序控制模块
vga_sync u1(.clk(clk), .rst(rst_s), .VGA_CLK(), .VGA_BLANK_N(), .hsync(hsync_buf), .vsync(vsync_buf), .pixel_x(pixel_x), .pixel_y(pixel_y), .video_on(video_on));
//按键信号控制模块
debounce u2(.clk(clk), .reset(rst_s), .sw(btn_up), .db(db_btn_up));
//按键信号控制模块
debounce u3(.clk(clk), .reset(rst_s), .sw(btn_down), .db(db_btn_down));
//将上下控制按键信号拼接为一个2位的信号
assign btn_up_dowm = ({db_btn_down, db_btn_up});
//调用图形控制模块
graphic_generator u4(.clk(clk), .rst(rst_s), .btn(btn_up_dowm), .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
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » VGA 小球游戏显示控制 Verilog Quartus