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 <stdio.h>
#include <math.h> #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=;i<DEPTH;i++)
{
/*周期为128个点的正弦波*/
s = sin(PI*i/);
/*将-1~1之间的正弦波的值扩展到0-255之间*/
temp = (int)((s+)*/);
/*以十六进制输出地址和数据*/
fprintf(fp,"%x\t:\t%x;\n",i,temp);
}//end for fprintf(fp,"END;\n");
fclose(fp);
}
}

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

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

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

最新文章

  1. 如何在一个页面添加多个不同的kindeditor编辑器
  2. .NET FRAMEWORK版本:4.0.30319; ASP.NET版本:4.6.118.0
  3. Sql server 2008 R2 实现远程异地备份
  4. web安全之sql注入联合查询
  5. Mac下使用Fiddler
  6. 解决SQL数据库无法脱机的问题
  7. 10.20_web编辑器复制粘贴图片
  8. Java---基于TCP协议的相互即时通讯小程序
  9. 走进C标准库(6)——&quot;string.h&quot;中函数的实现memchr
  10. ifarme的自适应高度问题
  11. flask微服务框架的初步接触
  12. python学习笔记1-基础知识
  13. chart.js应用中遇到的问题
  14. 函数式编程之 Python
  15. [PHP] 05 - Cookie &amp; Session
  16. Matchvs 使用记录
  17. iOS 代码调试
  18. php-curl小记
  19. python requests模块手动设置cookies的几种方式
  20. Flask从入门到放弃1:路由app.route()

热门文章

  1. localstorage 初谈
  2. 【MongoDB】在windows平台下mongodb的分片集群(五)
  3. 《sqlite权威指南》读书笔记 (一)
  4. [React + Mobx] Mobx and React intro: syncing the UI with the app state using observable and observer
  5. [RxJS] Aggregating Streams With Reduce And Scan using RxJS
  6. ||和 &amp;&amp; 符号的赋值运用(转)
  7. IOS--实现滤镜效果的四种方式
  8. DIV------使用 &lt;div&gt; 元素的网页布局
  9. .NET中的三种Timer的区别和用法(转)
  10. 用sed、awk、grep同时匹配多个条件(与模式、或模式)