首页->【MATLAB Usage 】

4 1

function [ res ] =ui_mif_file_wr(miffilenamepath,datpth,depth,width,words)
%UI_ 此处显示有关此函数的摘要
%   此处显示详细说明
        %miffilenamepath :mif文件路径

        %datpth,:读入dat参数文件路径 dat文件格式数据长度规定16位或者20位

        %depth, :文件长度

        %width,   :数据宽度

        %words   :单个数据由几个字节组成 2 后者3

%输出参数

        %res   :操作结果

fileID=fopen(miffilenamepath,'wb');
filepthID=fopen(datpth,'rb');

    if fileID == -1
        
       res=-1;
       error('the file path is error ');
       
    end
    
    if filepthID == -1
       
       res=-1;
       error('the file path is error ');
    end
    
fprintf(fileID, 'DEPTH = %d;\n',depth);
fprintf(fileID, 'WIDTH = %d;\n',width);
fprintf(fileID, 'ADDRESS_RADIX = HEX;\n');
fprintf(fileID, 'DATA_RADIX = HEX;\n');
fprintf(fileID, 'CONTENT\n');
fprintf(fileID, 'BEGIN\n');

%两个字节

    if words == 2 
        d=fread(filepthID,'uint16');
    else %三个字节
        t=fread(filepthID,'uint8');
        d0=t';
        [~,col]=size(d0);
        d=zeros(1,col/3);
        cnt=1;
        for t=1:3:col-2
            d(cnt)=d0(t)+d0(t+1)*hex2dec('100')+d0(t+2)*hex2dec('10000');
            cnt=cnt+1;
        end
    end  
    [~,col]=size(d);
    for cnt=0:col-1
       fprintf(fileID,'%x : %05x;\n',cnt,d(cnt+1));     
    end

fprintf(fileID,'END;\n');
fclose(fileID);
fclose(filepthID);
res=0;
end


楼主可见

  1. shwnyoo 1#

    mif文用于fpga的rom后者ram的初始化,本程序给出了 数据长度为16或者20位的初始化参数的mif文件生成例程。