Verilog Project俄罗斯方块(1)
在这个Project中比较麻烦的就是俄罗斯方块的存储,经过考虑,我们考虑直接使用若干个register来直接储存这个背景方块。相关register的定义如下,上verilog code.
reg [9:0]BG[23:0];
reg [2:0]shape;
reg [1:0]circute;
reg [3:0]center_x;
reg [4:0]center_y;
其中 BG(background)可以对应为24*10的二维数组,其中最上面4行(即BG[0],BG[1],BG[2],BG[3])是不显示的方块,用来做最开始下落。余下来的20行是正常的背景方块矩阵。
其中BG的值可以这样调用BG[9][19]
我们可以用一个wire valid;
作为信号来判断rotate,left,right,down等操作的可行。如果可以rotate的话,那么valid=1;
,反之valid=0;
上面是各个状态的当前方块的数据。图上的圆点代表着旋转中心。即旋转中心center_x和center_y的坐标。
相关的常量要用parameter来定义。