mif文件生成方法

mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。常见生成方法:

  1. Quartus自带的mif编辑器生成
  2. mif软件生成
  3. 高级编程语言生成

前两种方法都有一定的缺陷,主要介绍第三种方法,按照mif文件格式,使用高级编程语言(Matlab、C)编写生成。

注意: mif文件都是ASCⅡ码,负数应该是用补码处理,否则负数在mif文件中会变成0。

Matlab参考代码如下:

clc;clear;close all;
width = 10;
depth = 2^width;
t = linspace(0,6.28,depth);
sin_val = sin(t);
%cos_val = cos(t);
sin_val = fix(sin_val*(2^width-1)/2 + 0.5);  %四舍五入
%cos_val = fix(cos_val*(2^width-1)/2 + 0.5);
sin_val(find(sin_val<0))=sin_val(find(sin_val<0)) + 2^width; %求补码 
addr = [0:depth - 1];
file = fopen('sin.mif','wt');
fprintf(file,'WIDTH=%d;\n',width);      %该格式对应于mif格式,最后不要变
fprintf(file,'DEPTH=%d;\n',depth);
fprintf(file,'\n');
fprintf(file,'ADDRESS_RADIX=UNS;\n');
fprintf(file,'DATA_RADIX=HEX;\n');
fprintf(file,'\n');
fprintf(file,'CONTENT BEGIN\n');
for i=1:depth
    fprintf(file,'    %d  :  %X;\n',addr(i), sin_val(i));
end
fprintf(file,'\n');
fprintf(file,'END;\n');
fclose(file);
posted @ 2015-09-05 19:21  yfwblog  阅读(1078)  评论(0编辑  收藏  举报