本文为大家分享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个时钟
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)