3012008225 发表于 2011-8-11 09:51:28

如何用MATLAB生成FPGA的rom文件

如何在MATLAB中编写程序生成rom文件,再在Quartus里面调用生成的rom.mif文件。下面是看到的一个例子,但保存位.mif格式后,MATALAB里无法运行,请懂的人帮忙看一看。
DEPTH=存储器深度;
WIDTH=存储器字宽;
ADDRESS RADIX=:她址进制;
DATA_RADIX=存储数据进制;
一进制为BIN(2进制),DEC(10进制),FIEX(16进制),OCT(8进制),
一默认为16进制
一以下为存储内容示例,格式:。地址:数据;”,共256个单元,中间省略
在Matlab里编写的m文件,保存的文件名为rom_data.mif
x=(O:1:255);
y=round(-128*sin(2*pi*x/256))+127;
fid=fopen(‘rom_data.mif’,’w’);
fprintf(fid,%d:%d;\n’,);
fclose(fid);
plot(x,y);
grid on

baiyu 发表于 2011-8-11 18:24:40

depth = 256;
width =8;
x = round(128.*(sin(2*pi*(0:255)/256)+1));
fid = fopen('F:\verilog\rom_data.mif','w');   %文件的路径
fprintf(fid,'depth= %d ;\n',depth);
fprintf(fid,'width= %d ;\n',width);
fprintf(fid,'address_radix=dec;\n');
fprintf(fid,'data_radix = dec;\n');
fprintf(fid,'Content Begin \n');
for(k=1:depth)
fprintf(fid,'%d : %d ;\n',k-1, x(k) );
end
fprintf(fid,'end;');
fclose(fid);

%round(x) —— 四舍五入。
%   ceil(x) ——取比X大的最小整数。
% floor(x) ——取比X小的最大整数。

如果你用记事本打开的话看到的是很乱的,因为在记事本里“\n”并不表示换行,可以把内容复制进Quartus里就正常了,再复制到文件里就是整齐的样子了
页: [1]
查看完整版本: 如何用MATLAB生成FPGA的rom文件