read mif and convert to bitmap
Contents
open file
name = 'altera';
fid = fopen(strcat(name,'.mif'));
read comments
while (1)
tline = fgetl(fid);
if (isempty(tline))
continue;
end
if (tline(1)=='-')
continue;
elseif (strcmp(tline(1:7),'CONTENT')~=0)
break;
end
end
z = zeros(640*480/8,1);
parse line
while (1)
tline = fgetl(fid);
if (strcmp(tline(1:3),'END')~=0)
break;
end
[address str] = strtok(tline);
[token str] = strtok(str);
token = strtok(str);
value = sscanf(token,'%x');
n = length(address);
k = strfind(address,'[');
if (k>0)
a1 = sscanf(address(k+1:n),'%x')+1;
k = strfind(address,'..');
a2 = sscanf(address(k+2:n),'%x')+1;
z(a1:a2) = value;
else
a1 = sscanf(address,'%x')+1;
z(a1) = value;
end
end
unpack into bitmap
zi = uint8(z);
for j=1:8
zb(:,j) = bitand(bitshift(zi,j-8),1);
end
zbi = zb';
za = zbi(:);
zx = reshape(za,640,480);
zout = zx';
imshow(zout*255);
imwrite(zout*255,strcat(name,'.png'));