• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

弹球游戏Verilog代码Quartus仿真

06/12 13:08
628
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-23122Q03F2312.doc

共1个文件

名称:弹球游戏Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

设计要求:

1.查阅FPGAVGA接口标准等相关资料文献。

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

  • 2-23122Q03F2312.doc
    下载

相关推荐