使用matlab生成sine波mif文件

使用matlab生成sine波mif文件

作者:lee神

在使用altera FPGA中的rom过程中常常会使用到.mif文件或.hex文件。对于初学者,无论mif还是hex都是很令人疑惑的东西,这里就对mif文件的格式及其创建做一点简单的说明。

Mifmemory initialization file 的缩写,中文意思就是存储器初始化文件。直接说就是给rom赋值的文件。下面使用一个简单的.mif文件举例:

width=14;          %存储器的位宽 横向宽度

depth =1024;       %存储器的深度 总共有多少个数据

address_radix=uns;  %设置地址基值(实际就是地址用什么进制的数表示)   可以设为BIN(二进制),OCT(八进制),DEC(十进制)HEX(十六进制

data_radix=dec;     %同上

content begin       %开始数据区

0:0;               %地址:数据

1:29;

2:57;

3:86;

...

...

...

1023:16008;

end;              %结束

Matlab源码:

clear all

close all

clc

t = [0:0.1:360];%输入范围0-90度,步长0.1

x =pi*t/180;

sin_val = sin(x);

fid=fopen('E:matlab_projectsinsine.mif','wt');

fprintf(fid,'width=14; ');

fprintf(fid,'depth =1024; ');

fprintf(fid,'address_radix=uns; ');

fprintf(fid,'data_radix=dec; ');

fprintf(fid,'content begin ');

for j=1:1024

    i=j-1;

    k=round(sin_val(j)*16384);

    if(k==16384)

        k=16383;

    end

    fprintf(fid,'%d:%d; ',i,k);

end

fprintf(fid,'end; ');

fclose(fid);

plot(sin_val);

结果:

 

欢迎大家关注我的FPGA微信公众号FPGA开源工作室以及QQ资料群

原文地址:https://www.cnblogs.com/leegod/p/8472210.html