TA的每日心情 | 开心 2020-7-25 10:37 |
---|
签到天数: 40 天 连续签到: 1 天 [LV.5]常住居民I
|
今天给大家介绍一下我使用Perf-V开发板来显示一张自己喜欢的图片。
之前已经使用HDMI显示了彩条,有关HDMI的知识大家可以在网上找一下。今天的实验使用到了Image2LCD v2.9 和MATLAB软件。Image2LCD主要是讲图片数据转换成C语言数组的格式,MATLAB软件则是将C语言数组的格式数组转换成.coe文件形式(Xilinx ROM初始化需要的文件)。
Image2LCD的具体设置如下:输出类型:C语言数组、扫描模式:垂直扫描、输出灰度:16位真彩色
输出的数据格式如下:
0X20,0XC0,0X18,0XA0,0X18,0XA0,0X18,0XA0,0X18,0XA0,0X18,0XA0,0X18,0XA0,0X18,0XA0,
0X18,0XA0,0X20,0XC0,0X18,0XA0,0X18,0XA0,0X20,0XC0,0X20,0XC0,0X28,0XE0,0X29,0X00,
0X29,0X00,0X29,0X20,0X31,0X20,0X29,0X20,0X29,0X00,0X29,0X00,0X20,0XC0,0X20,0XA0,
0X20,0XC0,0X28,0XE0,0X29,0X00,0X29,0X00,0X31,0X20,0X31,0X20,0X31,0X40,0X31,0X40,
0X31,0X60,0X39,0X60,0X39,0X80,0X39,0X80,0X39,0X80,0X39,0X80,0X39,0X61,0X31,0X61,
0X31,0X41,0X31,0X41,0X31,0X21,0X31,0X21,0X31,0X21,0X31,0X21,0X31,0X41,0X31,0X41,
0X31,0X21,0X31,0X21,0X31,0X20,0X29,0X20,0X28,0XE0,0X20,0XC0,0X20,0XE0,0X29,0X00,......
所以需要对数据进行处理,以使得数据能够被vavido的ROM IP核识别,这里使用MATLAB进行处理,MATLAB脚本如下:
clear;
fid = fopen('aaaa.c','r'); % Open file
str = fscanf(fid,'%s'); % scan strings
fclose(fid); % close file
strwqh = strrep(str,'0X',''); % delete '0X'
strwqh1 = strrep(strwqh,',',''); % delete ','
strwqh2 = reshape(strwqh1,4,[]); %整理变成数组的形式
strwqh3=[strwqh2'];
n=length(strwqh3);
fid = fopen('endfile.txt','w');
for i=1:1:n %将数组打印到文件
fprintf(fid,'%s,\n',strwqh3(i,);
end
fclose(fid);
生成的数据格式如下:
20C0,
18A0,
18A0,
18A0,
18A0,
18A0,
18A0,
18A0,
18A0,
20C0,
18A0,
18A0,......................//数据太多了,省略!一共40000个数据:200x200=40000
Perf-V开发板板载的FPGA一共有50x32KbitRAM资源,我这里列化了一个ROM:16bit*40000;所以使用了38%的BRAM资源,如下图所示:
实验效果看视频吧,嘿嘿:
附上我的源码,感兴趣的同学可以下载下来参考一下,里面还包含了素材,和MATLAB文件:
hdmi_test_ok_heijing.zip
(1.42 MB, 下载次数: 1)
|
|