如何在systemverilog中创建二维数组并稍后调用此数组中的元素?

时间:2016-12-06 17:36:55

标签: fpga vga

我正在使用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 

1 个答案:

答案 0 :(得分:0)

您可以将颜色信息存储在24位寄存器中

24' hRRGGBB,(RR - 红色,GG - 绿色,BB - 蓝色) - 一个像素

35px x 20px = 700px,700 * 3字节= 2100字节

前35 * 3 = 105字节的内存是第一行图像。

第二个35 * 3 = 105个字节的内存是第二行图像。

...

您可以使用FPGA Block RAM。