本文为咱们共享fpga操控vga显现图片的办法。
1:黑白图片rgb获取
如果是黑白图片直接选用image2LCD转换成bmp格局图片,然后经过BMPtoMIF软件转换成rom的中导入的数据mif文件。但这仅仅rgb3位,色彩比较单一。
RGB = 000 黑色 RGB = 100 赤色 = 001 蓝色 = 101 紫色= 010 绿色 = 110 黄色= 011 青色 = 111 白色
2:转换成8位显现r【2:0】g【2:0】b【1:0】
if(rom_data==3‘d7) vga_rgb <= 8’b111_111_11;
else if(rom_data==3‘d6) vga_rgb <= 8’b111_111_00;
else if(rom_data==3‘d5) vga_rgb <= 8’b111_000_11;
else if(rom_data==3‘d4) vga_rgb <= 8’b111_000_00;
else if(rom_data==3‘d3) vga_rgb <= 8’b000_111_11;
else if(rom_data==3‘d2) vga_rgb <= 8’b000_111_00;
else if(rom_data==3‘d1) vga_rgb <= 8’b000_000_11;
else if(rom_data==3‘d0) vga_rgb <= 8’b000_000_00;
经过此能够转换成8位显现r【2:0】g【2:0】b【1:0】
3:彩色图片获取
经过winhex软件获取图片的信息,其间前54字节是图片信息,后1024字节是色彩表,后边是图片数据(给出色彩表中方位),经过图片数据查找色彩表显现。
在处理信息的时分咱们放弃前54字节,将数据复制成c数组保存到txt文档中,然后用excel翻开,经过=OFFSET($A$1,(ROW(A1)-1)/16,MOD(ROW(A1)-1,16))公式将数据排列成一列,最终依据mif文件格局转换成mif。导入到rom中
4:全体工程
是将数据(色彩表和图片数据)存到rom里,然后,将色彩表转换成256种色彩数据,存到ram中,然后显现时分查表得出色彩的rgb显现
2‘d0: rr_din[7:6] <= rom_data[7:6]; //2blue–2blue
2’d1: rr_din[5:3] <= rom_data[7:5]; //3green–3green
2‘d2: rr_din[2:0] <= rom_data[7:5]; //3red–3red
5:留意
留意ram和rom在存储数据时分,收支地址后读出数据时分会有推迟2个时钟