用MATLAB生成Quartus II下ROM初始化文件(MIF,HEX)

使用quartus ii 写DDS模块时需要生成0-0.5pi范围的正弦查找表,需要使用ROM核,初始化ROM需要使用.mif文件或hex文件。

生成MIF文件

mif文件的格式如下:

WIDTH=15;
DEPTH=2048;
ADDRESS_RADIX=DEC;
DATA_RADIX=DEC;
CONTENT BEGIN
0:0;
1:25;
2:50;
3:75;
4:101;
5:126;
6:151;
7:176;
8:201;
9:226;
…….
END

使用matlab可以生成这种文件,代码如下:

%生成0-pi/2 的正弦查找表,保存为mif格式
depth=2048;        %深度
width=15;          %位宽
fid1=fopen('sin_coe.mif','wt');   %wt(write tab)是写换行的意思 
fprintf(fid1,'WIDTH=%d;\n',width); 
fprintf(fid1,'DEPTH=%d;\n',depth); 
fprintf(fid1,'ADDRESS_RADIX=DEC;\n');        %地址基值
fprintf(fid1,'DATA_RADIX=DEC;\n');           %数据基值
fprintf(fid1,'CONTENT BEGIN\n');             %开始数据区

for i=0:1:(depth-1)      %在[0:depth-1]做depth次循环,每次加1 
    y2=round(sin(i/depth*pi/2)*(2^width-1));                
    %在[0:0.5*pi]中等间隔取depth个点,计算相应的正弦值 ,扩大浮点值并取整 
    fprintf(fid1,'%d:%d;\n',i,y2); 
end 

fprintf(fid1,'END');                        %结束
fclose(fid1);

mif文件生成方法
这篇文章中提到:

注意: mif文件都是ASCⅡ码,负数应该是用补码处理,否则负数在mif文件中会变成0。

由于我生成的是0-0.5pi之间的正弦表,没有负数,所以没有遇到这个问题,以后可以研究一下。

生成HEX文件

只要将生成的mif文件在quartus ii中打开,然后另存为hex即可。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值