名称:弹球游戏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
阅读全文