使用matlab生成sine波mif文件
掃描二維碼
隨時(shí)隨地手機(jī)看文章
使用matlab生成sine波mif文件
在使用altera 的FPGA中的rom過程中常常會(huì)使用到.mif文件或.hex文件。對(duì)于初學(xué)者,無論mif還是hex都是很令人疑惑的東西,這里就對(duì)mif文件的格式及其創(chuàng)建做一點(diǎn)簡(jiǎn)單的說明。
Mif是memory initialization file 的縮寫,中文意思就是存儲(chǔ)器初始化文件。直接說就是給rom賦值的文件。下面使用一個(gè)簡(jiǎn)單的.mif文件舉例:
width=14; %存儲(chǔ)器的位寬 橫向?qū)挾?/span>
depth =1024; %存儲(chǔ)器的深度 總共有多少個(gè)數(shù)據(jù)
address_radix=uns; %設(shè)置地址基值(實(shí)際就是地址用什么進(jìn)制的數(shù)表示) 可以設(shè)為BIN(二進(jìn)制),OCT(八進(jìn)制),DEC(十進(jìn)制),HEX(十六進(jìn)制)
data_radix=dec; %同上
content begin %開始數(shù)據(jù)區(qū)
0:0; %地址:數(shù)據(jù)
1:29;
2:57;
3:86;
...
...
...
1023:16008;
end; %結(jié)束
Matlab源碼:
clear all
close all
clc
t = [0:0.1:360];%輸入范圍0-90度,步長(zhǎng)0.1度
x =pi*t/180;
sin_val = sin(x);
fid=fopen('E:\matlab_project\sin\sine.mif','wt');
fprintf(fid,'width=14;\n');
fprintf(fid,'depth =1024;\n');
fprintf(fid,'address_radix=uns;\n');
fprintf(fid,'data_radix=dec;\n');
fprintf(fid,'content begin\n');
for j=1:1024
i=j-1;
k=round(sin_val(j)*16384);
if(k==16384)
k=16383;
end
fprintf(fid,'%d:%d;\n',i,k);
end
fprintf(fid,'end;\n');
fclose(fid);
plot(sin_val);
結(jié)果: