有的时候,我们需要将FPGA采集到的数据进行显示,通过MATLAB分析,那么需要读取FPGA的片上数据。我们以quartusii为例子,其片上数据采集到的文件格式为tbl文件,这个时候,我们编写如下程序来读取tbl文件。
function data_dec = tbls(name);
fid=fopen(name,'r');%文件的路径
yy=fscanf(fid,'%s');
fclose(fid);
aa=find(yy=='='); %找出“=”的下标
i=0;
for j=1:length(aa)
if yy(aa(j))=='=' %滤除说明中的“=”
i=i+1;
data_hex(i,1)=yy(aa(j)+1);
data_hex(i,2)=yy(aa(j)+2);
data_hex(i,3)=yy(aa(j)+3);
data_hex(i,4)=yy(aa(j)+4);
data_hex(i,5)=yy(aa(j)+5);
data_hex(i,6)=yy(aa(j)+6);
data_hex(i,7)=yy(aa(j)+7);
end
end
data_dec=hex2dec(data_hex); %将十六进制数转为十进制数
调用上述子函数,我们可以实现tbl文件的读取。