名称:弹球游戏Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
设计要求:
2.编写HDL代码实现νGA显示模块和按键输入模块,并下载到开发板进行测试。
3.图像分辨率不低于1024*768,目标移动方块50*50,移动弹板为20*100。
4.实现一个通过VGA显示器进行游戏显示并通过按键进行控制弹板的弹球游戏。
5.对项目的性价比以及社会经济效益进行分析说明。
实验要求:
1.完成系统硬件设计。
2.完成HDL代码设计及仿真。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
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
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=438
阅读全文
628