名称:贪食蛇游戏仿真设计Verilog代码ISE仿真
软件:ISE
语言:Verilog
代码功能:贪食蛇游戏仿真
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 按键消抖模块
检测到按键按下后,拉低超过一段时间则认定为按下有效,产生使能脉冲信号,图中可以看到该信号拉高,此时认为接收到有效的按键输入信号。
2. VGA模块
本文中 VGA 显示控制模块实现的是时钟频率为 25.175MHz,帧频 60Hz,在可见范围内一帧有 480 行,每行可见 640 个像素的显示模式。编写Verilog代码后,生成RTL接口图:
上述仿真结果中可以看出,根据VGA的时序,进行模拟之后可以产生行同步信号和场同步信号,并且可以输出图像数据。
3. 贪食蛇运动控制模块
从上述仿真结果可以看出,当按下up向上按键后,蛇的Y坐标值从991变成992,增加1,即向上运动1个坐标值,符合贪吃蛇控制需求,其它按键类似。
4. 苹果生成模块
苹果自从复位后,便开始产生,仿真结果中显示的蛇头坐标为:X=10,Y=5,苹果的坐标值是X=28,Y=13,如果蛇头的坐标值和该苹果值坐标重合,则会出发Body_add_sig信号从0变成1,蛇身体增加一节。
部分代码展示:
`timescale 1ns / 1ps //////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 10:56:02 03/28/2020 // Design Name: Greedy_snake // Module Name: G:/FPGA-GO/NO190/project/greedy_sim.v // Project Name: Greedy_snake // Target Device: // Tool versions: // Description: // // Verilog Test Fixture created by ISE for module: Greedy_snake // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // //////////////////////////////////////////////////////////////////////////////// module greedy_sim; // Inputs reg Clk; reg Rst_n; reg Left; reg Right; reg Up; reg Down; // Outputs wire VSYNC_Sig_out; wire HSYNC_Sig_out; wire [4:0] VGA_red_o; wire [5:0] VGA_green_o; wire [4:0] VGA_blue_o; wire vga_clk; wire vga_blank; wire vga_sync; wire [7:0] Smg_duan; wire [3:0] Smg_we; // Instantiate the Unit Under Test (UUT) Greedy_snake uut ( .Clk(Clk), .Rst_n(Rst_n), .Left(Left), .Right(Right), .Up(Up), .Down(Down), .VSYNC_Sig_out(VSYNC_Sig_out), .HSYNC_Sig_out(HSYNC_Sig_out), .VGA_red_o(VGA_red_o), .VGA_green_o(VGA_green_o), .VGA_blue_o(VGA_blue_o), .vga_clk(vga_clk), .vga_blank(vga_blank), .vga_sync(vga_sync), .Smg_duan(Smg_duan), .Smg_we(Smg_we) ); initial begin // Initialize Inputs Clk = 0; Rst_n = 0; Left = 0; Right = 0; Up = 0; Down = 0;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1153
419