Skip to content

JunnanLi/tetris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tetris(俄罗斯方块)

本项目采用FPGA实现俄罗斯方块功能,主要支持7种形状子块,4种处理动作(左移、右移、旋转、快速下落)。

目录

硬件模块介绍

文件名 功能描述
top.v 本项目的顶层模块,实例化了pll时钟模块(生成5MHz时钟)和tetris_top模块
tetris_top.v 包含hdmi_output和tetris_array两个模块
tetris_array.v 负责计算当前像素点的颜色
tetris_hdmi.v 逐行扫描,并输出每个像素点的RGB(8b*3)

主要设计思路

  1. 将显示器的480292划分为2020的子块,使用array_bitmap[10][20]数组表示子块是否需要填充黑色(白色为空),解决480*292像素点存储在SRAM中占用大量存储资源的问题;

  2. 使用arrayBlock_bitmap[10][20]数组表示下落形状在屏幕中的位置,方便形状平移、旋转操作;

  3. 使用arrayBlock_rotate_bitmap[10][20]数组进行实时计算下落形状所需执行的处理动作(左移、右移、旋转、快速下落),防止使用arrayBlock_bitmap[10][20]数组直接进行计算产生屏幕闪烁的情况。值得注意的是,array_bitmap[10][20]和arrayBlock_bitmap[10][20]会进行实时显示,而arrayBlock_rotate_bitmap[10][20]数组则只进行计算,计算完成后赋值给arrayBlock_bitmap[10][20];

About

俄罗斯方块

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published