mif文件生成方法
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。常见生成方法:
- Quartus自带的mif编辑器生成
- mif软件生成
- 高级编程语言生成
前两种方法都有一定的缺陷,主要介绍第三种方法,按照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);