基于FPGA的贪吃蛇游戏

基于FPGA的贪吃蛇游戏

本项目代码较多,所以就从大的方向上说一下,具体的看我的源码,然后自己跑一下就可以,移植还是比较简单的。

基于FPGA的贪吃蛇游戏

图1.系统的结构图

在顶层模块中一共例化了7个模块,他们功能分别如下:

    apple_generate.v  主要是用来产生贪吃蛇食物,以及判断小蛇有没有吃到苹果,其中苹果的随机产生是利用加法计数器实现的,利用了每次吃苹果的时间不同,从而会得到不同的苹果坐标。

    game_ctrl.v这个主要是控制游戏的状态(START,PLAY,END),每种状态都有他们自己的一套vga显示,处在什么状态,就把相应的vga输出到物理的vga控制端口。

    ir_decoder.v 这个是用来红外解码的,可以看我的另外一篇博客,自己找一下。

    pll_clk.v这个是pll ip核,用来产生25MHz时钟。

    smg.v 这个是控制数码管的,显示蛇的长度。

    snake_ctrl.v 这个是用来控制蛇的运动,以及产生判断是否撞墙,撞身体的标志信号,以及扫描蛇身,产生object信号,给vga_play.v模块用于显示蛇身。

    vga_play.v 这个是用来显示处在PLAY状态时的图像

游戏效果如下:

基于FPGA的贪吃蛇游戏

图2.游戏效果

源码下载链接:https://download.****.net/download/chengfengwenalan/10371608