一、借助matlab工具,将图片转成.ceo文件。
1)新建一个脚本文件,复制粘贴下列代码
2)点击运行,随即生成.ceo文件
clc;
clear all;
RGB=imread('tower.jpg');//相应图片信息
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
outdata=zeros(1,40000);
for r = 1:200
for c = 1:200
outdata((r-1)*200+c)=bitand(R(r,c),224)+bitshift(bitand(G(r,c),224),-3)+bitshift(bitand(B(r,c),192),-6);
end
end
fid=fopen('tower.coe','w+');
fprintf(fid,'memory_initialization_radix=16;\nmemory_initialization_vector=\n');
for i = 1:39999
fprintf(fid,'%x,\n',outdata(i));
end
fprintf(fid,'%x;',outdata(40000));
fclose(fid);
二、新建一个RAM IP核
1)选择Block Memory Generator
2)配置IP核
RAM初始化图片文本结束!
可能遇到的问题:
问题1:载入的.ceo文件报错。(内存初始化配置的问题)
问题2:Disable Collision Warnings报错。(用户配置的内存大小超出了所选设备中可用的RAM资源的数量。)
以上两种报错的主要原因是:Port A Options的读写宽度和深度没有配置正确。
根据载入.ceo数据文本和FPGA的资源,将读写深度和宽度修改到合适的值,报错自动解除。