Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66662
  • 博文数量: 16
  • 博客积分: 410
  • 博客等级: 下士
  • 技术积分: 154
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-01 21:38
文章分类

全部博文(16)

文章存档

2013年(6)

2010年(1)

2009年(9)

我的朋友

分类: Verilog

2013-11-05 19:34:37

原文地址:http://www.cnblogs.com/BitArt/archive/2012/12/11/2813503.html
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。生成QuartusII11.0可用的mif文件,有如下几种方式:

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

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

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

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

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

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

然后点击“OK”.

  • 在表格中输入初始化数据;
  • 右键单击左侧地址值,可以修改地址和数据的显示格式;
  • 表中任一数据的地址=列值+行值,如图中蓝色单元的地址=24+4=28

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

 

方法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  #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文件,内容如下:

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


阅读(868) | 评论(0) | 转发(0) |
0

上一篇:FPGA实现RAM--LPM_RAM

下一篇:没有了

给主人留下些什么吧!~~