项目中遇到问题如下:ISE功能仿真正确,但是下载进硬件板子后,输出图像功能与预期不符,比如图像部分边缘与预期不符。这种大批量数据很难通过波形比对,除了可以查看ISIM的memory之外,把生成的数据写入到文本文件,然后由matlab读出。将matlab读出的图像数据文件与matlab算法仿真结果数据比对,就可以知道两者之间的差别,进而判断功能仿真是否正确。
matlab读文本部分:
m=574;%行数
n=640;%列数
A=textread('data_out.txt','%u');%该函数只能用于纯数据文本读取,且最好文本数据位宽是8位的整数倍数,这里取16位位宽
img_get = zeros(m,n);
total_size = m*n;%此处数据与A的长度必须一致
for k = 1:total_size
a = A(k,1);%去除数据
%%计算图像坐标
if(mod(k,n) ~= 0)
i = floor(k/n) + 1;
j = mod(k,n);
else
i = floor(k/n);
j = m;
end
img_get(i,j) = A(k,1);
end
FPGA写文本部分(testbench):
integer write_f