如何生成mif文件

如何生成mif文件,第1张

mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。生成QuartusII11.0可用的mif文件,有如下几种方式:

方法1:利用Quartus自带的mif编辑器

优点:对于小容量RAM可以快速方便的完成mif文件的编辑工作,不需要第三方软件的编辑;

缺点:一旦数据量过大,一个一个的输入会使人崩溃;

使用方法:在quartus中,【file】/【new】,选择Memory  Initialization file,d出如下窗口:

Number of words:可寻址的存储单元数,对于8bit地址线,此处选择256;

words size:存储单元宽度,8bit;

然后点击“OK”.

对每个单元填写初始值之后,将文件保存即可。

方法2:利用mif软件来生成

无论使用什么编辑器,必须保证mif文件的段备格式如下:冒号左边是地址,右边是数据;分号结尾;

DEPTH = 256

WIDTH = 8

ADDRESS_RADIX = HEX

DATA_RADIX = HEX

CONTENT

BEGIN

0000 : 0000

0001 : 0000

0002 : 0000

……(此处省略一兄誉千字*.*)

00FA : 00FF

00FB : 00FF

00FC : 00FF

00FD : 00FF

00FE : 00FF

00FF : 00FF

END

这里推荐一款mif生成器:Mif_Maker2010.exe,可以百度下载;软件使用方法见《Mif Maker2010的使用方法》。

方法3:使用高级语言

用C语言或者matlab语言等来生成,C语言生成代码如下:本代码生成一个正弦波的数据波形,保存在TestMif.mif中。

#include <stdio.h>#include <math.h>#define PI 3.141592 #define DEPTH 128 /*数据深度,即存储单元的个数*/ #define WIDTH 8 /*存储单元的羡燃段宽度*/ int main(void) { int i,tempfloat sFILE *fpfp = fopen("TestMif.mif","w")/*文件名随意,但扩展名必须为.mif*/ if(NULL==fp) printf("Can not creat file!\r\n")else { printf("File created successfully!\n")/* * 生成文件头:注意不要忘了“” */ fprintf(fp,"DEPTH = %d\n",DEPTH)fprintf(fp,"WIDTH = %d\n",WIDTH)fprintf(fp,"ADDRESS_RADIX = HEX\n")fprintf(fp,"DATA_RADIX = HEX\n")fprintf(fp,"CONTENT\n")fprintf(fp,"BEGIN\n")/* * 以十六进制输出地址和数据 */ for(i=0i<DEPTHi++) { /*周期为128个点的正弦波*/ s = sin(PI*i/64)/*将-1~1之间的正弦波的值扩展到0-255之间*/ temp = (int)((s+1)*255/2)/*以十六进制输出地址和数据*/ fprintf(fp,"%x\t:\t%x\n",i,temp)}//end for fprintf(fp,"END\n")fclose(fp)} }

验证生成的数据是否正确:用记事本打开生成的mif文件,同时用Quartus打开mif文件,内容如下:

能成功导入,且数据一致,说明生成正确。

(1)一慎早般情况下,双击即可打开,因为默认安装程序,.mat默认用带镇MATLAB打开。

(2)或者

运行matlab,在workspace

中有一个load

data

file按钮,即可读宽行雀入数据,

(3)用

imread

命令

------------

希望有帮助


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8220089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存