c语言正弦波的mif文件,【原创】ROM的初始化文件-mif文件
1、mif文件
1)、mif文件的概念
mif文件,是FPGA中ROM的初始化文件(Memory Initialization File),用来配置RAM或者ROM。因为FPGA是基于SRAM存储的,是掉电易失性的,所以要实现ROM的功能,我们就需要在FPGA配置的过程中,把相应的存储块初始化,从而在FPGA处在用户状态时,这个存储块在用户看来就相当于一个ROM。
2)、mif文件的格式
mif文件有固定的格式。如下:
DEPTH = XXX;//存储块的深度
WIDTH = XX;//每个存储单元存储数据的宽度
ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;
CONTENT
BEGIN
XX : XXX;//冒号前的数表示存储单元在存储块中的位置,后面的数据表示该存储单元中存储的数据。
END;
因为mif文件的格式是固定的,所以要想产生带有我们需要数据的mif文件很简单,只要按照mif文件的格式把BEGIN...END中的数据替换成我们需要的数据即可。
3)、Quartus II 中mif文件里数据产生的方法
①、手工录入法
当mif文件中的数据较少时,我们可以在Quartus II 中新建一个mif文件,然后直接在mif文件中编辑录入所需要的数据。编辑的方法既可以是直接在Quartus II 软件界面中直接输入,也可以打开.mif文件的文本文档直接编辑BEGIN ...END;中的数据
②高级语言生成法
如果mif文件中的数据具有一定的规律,我们可以用高级语言按照这个规律来编写程序来生成这些数据。比如mif文件中的数据是正弦曲线上的数值,那么我们就可以用高级语言编写一个正弦函数来算得这些数值。
高级语言生成,可以用C语言也可以用Matlab 的M语言。比如,用C语言生成一组正弦函数数据:
#include
#include
void main()
{
int t;
int u;
for(t=0;t<=121;t++)
{
u=sin(2*3.1415926*(100*t+59*t*t/7));
printf("%d: %d;\n",t,u);
}
}
这里就是生成122个正弦曲线上的数据的方法,我们只需要把打印输出的数据复制到mif文件的BEGIN ...END;之间替代之前的数据即可。
③高级语言直接生成mif文件
我们也可以直接用高级语言(C语言或者M语言)来生成mif文件,之前两种方法产生的只是mif文件中的数据。
比如,用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 II中即可。
4、参考文件
c语言正弦波的mif文件,【原创】ROM的初始化文件-mif文件相关推荐
- linux7inittab文件不存在,Linux下修复inittab文件丢失的两种方法
/etc/inittab文件是linux系统初始化配置文件,该文件出现错误或者丢失时,可能导致无法启动系统,启动系统时会提示出"INIT No inittab file fonud" ...
- Matlab生成Xilinx Rom IP CORE的初始化内容coe文件
在进行FPGA设计时,经常要对rom模块进行初始化.ISE或Quartus II软件本身具备的初始化功能对于较小的rom是行之有效的,但面对大容量的rom时就显得捉襟见肘了.而matlab作为一神器, ...
- c语言 遍历文件夹中所有文件名,C# 遍历文件夹下所有子文件夹中的文件,得到文件名...
假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中 using System.Data; using System.Drawing; using System.Linq; using ...
- R语言sys方法:sys.getpid函数获取R会话的进程ID、sys.glob函数和file.path函数匹配文件夹下的所有特定类型文件、sys.info函数获取系统和用户信息
R语言sys方法:sys.getpid函数获取R会话的进程ID.sys.glob函数和file.path函数匹配文件夹下的所有特定类型文件.sys.info函数获取系统和用户信息 目录
- Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略
Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略 目录 Python与文件夹那些事 1.创建/删除文件/文件夹 1.创建文件夹
- [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作
[原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作 转载请注明出处 一.关于为什么用pymediainfo以及pymediainfo的安装 使用python对视频/音频文件进行详 ...
- c语言lua读文件,file-io – 在Lua中逐行读取文件
Lua使用相同的底层C实现模型管理文件(此模型也被其他编程语言使用,这是相当常见的).如果您不熟悉这种查看文件的方式,那么术语可能不清楚. 在该模型中,文件表示为具有所谓的当前位置的字节流.当前位置是 ...
- C语言之文件读写探究(七):随机读写文件
相关博文:C语言之文件读写探究(一):fopen.fclose(文件的打开和关闭) 相关博文:C语言之文件读写探究(二):fputc.fgetc.feof(一次读写一个字符(文本操作)) 相关博文:C ...
- python语言源程序文件类型_浅谈Python的文件类型
Python的文件类型主要分为3种:源代码(source file).字节码(byte-code file).优化的字节码(optimized file).这些代码都可以直接运行,不需要编译或者连接. ...
最新文章
- Redis配置主从数据,实现主从库之间数据同步
- [已经完美解决]IE下 'document.getElementById(...)' is null
- fatal error C1001的一个解决心得
- PHP5异常处理,PHP5异常处理分析实例
- 让这三个月来的更猛烈些吧,前端react同构项目
- golang 上下文 Context
- 充电枪cp信号控制板_新能源汽车充电头气密性检测是怎么做的呢?
- 2018-2019-1 20189218《Linux内核原理与分析》第二周作业
- 视觉SLAM入门十四讲
- 电商产品设计:购物车管理
- PHP PDF转图片:设置图像的色彩空间 RGBCMYK互转
- 学计算机的人可以定位找人吗,电脑如何实现查找“附近的人”?
- 引气管理计算机失效,TAT信号无效导致ND上TAS-显示消失B737系列机务在线 - 认真、负责、细致 我们秉承的理念...
- Revit模型轻量化方法
- 安装独立的 Elastic Agents 并采集数据 - Elastic Stack 8.0
- 计算机毕业设计Java河池市旅游信息系统(源码+系统+mysql数据库+lw文档)
- Pandas的panel结构
- Opencascade 开发 1章
- 语音怎么在线转文字,语音转文字的小技巧
- Cesium常用事件,包括点击事件,鼠标事件,相机移动事件
热门文章
- CRM能给企业带来什么价值
- 射频微波PCB板材信息
- 冯.诺伊曼体系结构的计算机工作原理是,冯诺依曼体系结构计算机的要点和工作过程.doc...
- [WSDL]WSDL(web service document language)简介
- python实现对简单的运算型验证码的识别【不使用OpenCV】
- 模仿淘宝-导航式订单跟踪css简单实现
- java河南省农村多元化养老服务管理系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- 使用redis-shake工具迁移云Redis数据(二十一)
- 项目管理系统助力汽车行业APQP高效落地︱奥博思软件总经理黎学文
- 计算机网络第六章学习通题目及答案