使用matlab生成mif文件用于ROMIP核读取。
text文本中一行有5个数据,共有80行,400个1位的数据。地址从左至右,从上至下计,范围为0-399。
quartusII的mif文件地址范围从0开始计数,所以如果400个地址,范围是0-399。如果超过399,例如400,就会报错不能打开文件。
[data1, data2, data3, data4, data5] = textread('zifu.txt','%n %n %n %n %n');
ROM_depth = 400; % 存储深度
ROM_width = 1; % 存储宽度
% 生成.mif文件
fid=fopen('ROM_1_400.mif','wt');
fprintf(fid,'WIDTH=%d;\n', ROM_width);
fprintf(fid,'DEPTH=%d;\n',ROM_depth);
fprintf(fid,'ADDRESS_RADIX=UNS;\n');
fprintf(fid,'DATA_RADIX=UNS;\n');
fprintf(fid,'content begin\n');
for i=1:(ROM_depth/5)
fprintf(fid,'%d:%d; \n',(i-1)*5+0,data1(i));
fprintf(fid,'%d:%d; \n',(i-1)*5+1,data2(i));
fprintf(fid,'%d:%d; \n',(i-1)*5+2,data3(i));
fprintf(fid,'%d:%d; \n',(i-1)*5+3,data4(i));
fprintf(fid,'%d:%d; \n',(i-1)*5+4,data5(i));
end
fprintf(fid,'END; \n');
fclose(fid);