名称:贪食蛇游戏仿真设计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