1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 用c语言写生成 mif文件的软件 MIF文件生成(.MIF File Generator Utility)

用c语言写生成 mif文件的软件 MIF文件生成(.MIF File Generator Utility)

时间:2020-02-16 11:06:12

相关推荐

用c语言写生成 mif文件的软件 MIF文件生成(.MIF File Generator Utility)

.MI文件是当你实例化一个ROM或RAM中的示意图或AHDL文件,你必须与一些默认的数据预加载的EAB选项来指定.MIF文件。

.MIF File Generator Utility将生成MIF文件正弦或余弦数字波形。您可以选择指定几个参数,如振幅,偏移角度范围等。

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

利用Quartus自带的mif编辑器:

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

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

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

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

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

然后点击“OK”.

在表格中输入初始化数据;

右键单击左侧地址值,可以修改地址和数据的显示格式;

表中任一数据的地址=列值+行值,如图中蓝色单元的地址=24+4=28;

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

利用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_Maker.exe,可以百度下载;

使用高级语言:

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

#include #include

#define PI 3.141592

#define DEPTH 128 /*数据深度,即存储单元的个数*/

#define WIDTH 8 /*存储单元的宽度*/

int main(void)

{

int i,temp;

float s;

FILE *fp;

fp = 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=0;i

{

/*周期为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文件,内容如下:

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。