名称:弹球游戏Verilog代码Quartus仿真(文末获取)
软件:Quartus
语言:Verilog
代码功能:
设计要求
查阅FPGA、VGA接口标准等相关资料文献。
2.编写HDL代码实现νGA显示模块和按键输入模块,并下载到开发板进行测试。
3.图像分辨率不低于1024*768,目标移动方块50*50,移动弹板为20*100。
4.实现一个通过VGA显示器进行游戏显示并通过按键进行控制弹板的弹球游戏。
5.对项目的性价比以及社会经济效益进行分析说明。实验要求
1.完成系统硬件设计
2.完成HDL代码设计及仿真
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
按键模块
VGA时序控制模块
画面生成模块
部分代码展示:
//VGA时序控制模块
module vga_controller_1024x768(rst_p, pixel_clk, HS, VS, hcount, vcount, video_enable);
input rst_p;//高电平复位
input pixel_clk;//65M
output HS;//行同步
output VS;//场同步
output [10:0] hcount;//当前x像素坐标位置
output [10:0] vcount;//当前y像素坐标位置
output video_enable;//显示使能
reg HS;
reg VS;
//定义1024*768的参数
parameter HMAX = 1344;
parameter HLINES = 1024;
parameter HFP = 1024;
parameter HSP = 1160;
parameter VMAX = 806;
parameter VLINES = 768;
parameter VFP = 771;
parameter VSP = 777;
reg [10:0] hcounter;
reg [10:0] vcounter;
assign hcount = hcounter;
assign vcount = vcounter;
//行计数
always @(posedge pixel_clk)
begin
if (rst_p == 1'b1)
hcounter <= 11'b0;
else if (hcounter == HMAX)
hcounter <= 11'b0;
else
hcounter <= hcounter + 1;
end
//场计数
always @(posedge pixel_clk)
begin
if (rst_p == 1'b1)
vcounter <= 11'b0;
else if (hcounter == HMAX)
begin
if (vcounter == VMAX)
vcounter <= 11'b0;
else
vcounter <= vcounter + 1;
end
end
//行同步
always @(posedge pixel_clk)
begin
if (hcounter >= HFP & hcounter < HSP)
HS <= 0;
else
HS <= 1;
end
//场同步
always @(posedge pixel_clk)
begin
if (vcounter >= VFP & vcounter < VSP)
VS <= 0;
else
VS <= 1;
end
//输出显示使能信号
assign video_enable = ((hcounter < HLINES & vcounter < VLINES)) ? 1'b1 : 1'b0;
endmodule
完整代码
扫描文章末尾的公众号二维码
相关文章
发表评论