专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

生成用于fpga的mif文件的matlab函数

作者:pplxlee   来源:pplxlee的空间   点击数:  更新时间:2014年06月08日   【字体:

 

 
function generatemif(A,str)
%功能:输入矩阵和文件名,生成mif文件,保存在默认路径中
%A为任意矩阵 ,str为生成文件的名字,不含后缀名
%----------------------------------------- 
%计算储存单元数
A=round(A);
SizeA=size(A);
line=SizeA(1); %行数
row=SizeA(2); %列数
depth =line*row; %存储器的单元数
%-----------------------------------------  
%计算数据宽度
m1=max(max(A))+1;
m2=max(max(-A));
index=0;
while m1>2^index || m2>2^index
    index=index+1;
end 
widths = index+1; %数据宽度为index+1位
%-----------------------------------------  
%生成文件 
tempstr='.mif';
str=strcat(str,tempstr);
fidc = fopen(str,'wt');
fprintf(fidc , 'depth = %d;\n',depth);
fprintf(fidc, 'width = %d;\n',widths);
fprintf(fidc, 'address_radix = UNS;\n');
fprintf(fidc,'data_radix = DEC;\n');
fprintf(fidc,'content begin\n');
for i = 1:line
    for j=1:row
    fprintf(fidc,'%d:%d;\n',(i-1)*row+j-1,A(i,j));
    end
end
    fprintf(fidc, 'end;');
fclose(fidc);
 
关闭窗口

相关文章