用c语言写生成 mif文件的软件,生成mif文件的几种方法总结

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

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

优势:对于小容量RAM能够快速方便的完成mif文件的编辑工做,不须要第三方软件的编辑;spa

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

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

04fff8c9054b04aeb569839f23127181.png

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

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

而后点击“OK”.it

6837ae6df244b85deecb6249a0360242.png

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

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

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

对每一个单元填写初始值以后,将文件保存便可。io

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

不管使用什么编辑器,必须保证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中。

1 #include

2 #include

3

4 #define PI 3.141592

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

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

7

8 int main(void)9 {10 inti,temp;11 floats;12

13 FILE *fp;14 fp = fopen("TestMif.mif","w"); /*文件名随意,但扩展名必须为.mif*/

15 if(NULL==fp)16 printf("Can not creat file!\r\n");17 else

18 {19 printf("File created successfully!\n");20 /*

21 * 生成文件头:注意不要忘了“;”22 */

23 fprintf(fp,"DEPTH = %d;\n",DEPTH);24 fprintf(fp,"WIDTH = %d;\n",WIDTH);25 fprintf(fp,"ADDRESS_RADIX = HEX;\n");26 fprintf(fp,"DATA_RADIX = HEX;\n");27 fprintf(fp,"CONTENT\n");28 fprintf(fp,"BEGIN\n");29

30 /*

31 * 以十六进制输出地址和数据32 */

33 for(i=0;i

36 s = sin(PI*i/64);37 /*将-1~1之间的正弦波的值扩展到0-255之间*/

38 temp = (int)((s+1)*255/2);39 /*以十六进制输出地址和数据*/

40 fprintf(fp,"%x\t:\t%x;\n",i,temp);41 }//end for

42

43 fprintf(fp,"END;\n");44 fclose(fp);45 }46 }

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

fe56379b892018f89f7867b5706ba6b1.png

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

【注】:为尊重版权,特标注引用的地址:http://www.cnblogs.com/BitArt/archive/2012/12/11/2813503.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值