用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
Number of words:可寻址的存储单元数,对于8bit地址线,此处选择256;blog
words size:存储单元宽度,8bit;get
而后点击“OK”.it
在表格中输入初始化数据;
右键单击左侧地址值,能够修改地址和数据的显示格式;
表中任一数据的地址=列值+行值,如图中蓝色单元的地址=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文件,内容以下:
能成功导入,且数据一致,说明生成正确。
【注】:为尊重版权,特标注引用的地址:http://www.cnblogs.com/BitArt/archive/2012/12/11/2813503.html
用c语言写生成 mif文件的软件,生成mif文件的几种方法总结相关推荐
- r语言写九九乘法表并保存为txt文件
r语言写九九乘法表并保存为txt文件 代码 for(i in 1:9){for(j in 1:i){cat(j,"x",i,"=",i*j,'\t',file= ...
- C语言实现不带头结点的单链表逆置的三种方法
C语言实现不带头结点的单链表逆置的三种方法 直接循环 头插法 递归法 END! 直接循环 图片解释 ListNode* ReverseList1(ListNode *head) {if(head == ...
- java语言写常驻服务_让程序常驻后台运行的原理和方法
linux中进程组织结构为session包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程. 一个session可能会有一个session首进程,而一个session首进程可能会有一个控 ...
- 【C语言】详解strlen函数 | 模拟实现strlen函数的三种方法 | 写库函数的人是如何实现这个函数的
前言: 本篇将专门为 strlen 函数进行讲解,总结了模拟实现 strlen 函数的三种方法,并对其进行详细的解析.手写库函数是非常常见的题目,希望通过本篇博客能够加深大家对 strlen 的理解. ...
- python解压zip文件_python-29 python解压压缩包的几种方法
这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. t ...
- mysql模糊查询xml_在userMapper.xml文件中模糊查询的常用的3种方法
在userMapper.xml文件中新建映射sql的标签 select from users name like "%"#{name}"%" and phone ...
- svg标签和svg文件区别_SVGO减少SVG文件大小的三种方法
svg标签和svg文件区别 This article is part of a series created in partnership with SiteGround. Thank you for ...
- 嵌入式生成自定义id_实施可嵌入自定义徽章的3种方法
嵌入式生成自定义id One great way of organically promoting your application is to provide "badges"; ...
- PDF文件怎么合并在一起?这三种方法快利用起来
如何将几个PDF文件合并到一起呢?PDF文件相信大家是经常会使用到的,有时候为了工作上的需求,需要把几个PDF文件合并到一起来传输发送,最近有很多小伙伴私信来说不知道怎么把文件进行合并,今天给大家整理 ...
- OFD文件怎么转换成图片?这两种方法能够快速转换
怎么将OFD文件转换成图片呢?OFD文件是我们国家自主研发的一种文件版式格式标准,大家对于这种受用面较小的文件格式见到的次数可能不多,因此也对这种格式的文件不太了解,打开它需要相关的OFD阅读软件才可 ...
最新文章
- 前端Vue学习之路(四)axios请求数据
- aspose-cells 表合并
- linux oracle 远程exp_linux单独安装oracle客户端及exp/imp工具配置
- python 批量改名
- 遍历 HashMap 的 5 种最佳方式,我不信你全知道!
- 电子书下载|2020 年云原生年货小红书来啦!
- qt mysql数据库连接池_qt中使用数据库连接池
- vue 源码学习(一) 目录结构和构建过程简介
- 网线重新插拔后恢复正常_生活小窍门之网线不够长怎么办,毕亚兹网线连接器轻松搞定...
- Hadoop—LDAP介绍和使用
- 对象调用方法方法及其call调用
- 局域网内通过代理服务器上网的详细设置
- golang清空切片
- msm8937 porting iic device
- 解决进入WindowsXP系统蓝屏提示“stop:0X0000007B
- 硬盘是计算机的 奥鹏,奥鹏计算机应用基础一教学内容.docx
- php做一个文章页面,wordpress主题制作教程(十):制作文章单页模板single.php
- disallow php,在robots.txt中Disallow: /abc和Disallow: /abc/的区别
- Paper:人工智能可解释性的背景/方法/伦理/教育/可解释性的基本原理/Interpretability和Explainability区别之《可解释人工智能的教育视角:基于伦理和素养的思考》解读笔记
- ERROR:C3848