我正在使用System Verilog在FPGA上编写一个小游戏,我想通过VGA显示器显示一些小图片。我的图片尺寸是35px X 20px。我使用Matlab将图片转换为三个独立的数组(R,G和B值)。我不知道如何在System Verilog中创建类似的数组,然后再调用它们中的元素。下面是我目前的代码,我已经制作了白点和红点。我想用上面提到的图片替换这些点。谢谢!
begin:RGB_Display
if (missile_On == 1'b1)
begin
Red = 8'h00;
Green = 8'hff;
Blue = 8'h3f;
end
else if (ourMissileOn == 1'b1)
begin
Red = 8'hff;
Green = 8'hff;
Blue = 8'h00;
end
else if ((ball_on == 1'b1))
begin
Red = 8'hff;
Green = 8'hff;
Blue = 8'hff;
end
else if ((enemyAppear == 1'b1))
begin
Red = 8'hff;
Green = 8'h00;
Blue = 8'h2f;
end
else
begin
Red = 8'h3f;
Green = 8'h00;
Blue = 8'h3f; //- DrawX[9:3];
end
end
答案 0 :(得分:0)
您可以将颜色信息存储在24位寄存器中
24' hRRGGBB,(RR - 红色,GG - 绿色,BB - 蓝色) - 一个像素
35px x 20px = 700px,700 * 3字节= 2100字节
前35 * 3 = 105字节的内存是第一行图像。
第二个35 * 3 = 105个字节的内存是第二行图像。
...
您可以使用FPGA Block RAM。