FPGA比较完美的复现复现俄罗斯方块

2022-06-06 08:25:01 浏览数 (1)

《俄罗斯方块》(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。

游戏介绍

这里就不介绍了,很经典的游戏。

软硬件环境

FPGA板卡

ZEDBOARD(纯逻辑设计,没使用ARM) 其他板卡也可以

VGA显示器

PS2键盘

游戏需要4(上下左右移动) New Game(游戏GG,重新开始)

上下左右键,上是旋转,下是加速下降,左右就是左右移动,N字幕键是重新开始。

这里需要将PS2鼠标或者键盘连接到开发板上,所以制作了一个PMOD扩展小板转接出PS2接口,如下:

原理图 PCB地址:

https://gitee.com/openfpga/FPGAandGames/tree/main/hardware/PMOD_PS2

注意:PS2不一定用5V供电,亲测3.3V也可以。

Vivado

Vivado 2018.3及更高版本

源码简介

整个核心框图如下所示:

FSM如下:

每个模块的源码上都有简介,状态机代码也比较简单(主要控制,初始状态,失败三个状态,详见代码)。

整个工程使用SystemVerilog建模,学习SV的同学也可以看看,尤其针对状态机部分使用typedef enum实现,可以看下和Verilog在状态机建模方面的区别。

开源链接

https://github.com/suisuisi/FPGAandGames/tree/main/TETRIS/fpgatetris

下载后可以直接进行综合,使用JTAG下载到FPGA中,就能看到VGA显示画面如下:

0 人点赞