利用matlab进行ROM初始化mif文件方法(转)
来源:互联网 发布:开淘宝店怎么发货 编辑:程序博客网 时间:2024/05/18 03:06
利用matlab进行ROM初始化mif文件方法(转)
工具使用版本:Quartus
撰写人:Strive_JP
http://comm.chinaaet.com/adi/blogdetail/35921.html
关于FPGA中ROM初始化,最近学会了利用matlab强大的数据处理能力来初始化ROM当中的数据。
先简单介绍下FPGA内部的RAM。这里为了简单起见,以EP4CE10为例,先来看下资源情况。
EP4CE10内部有414Kbits的存储容量。有EP4CE10的片内存储器内存为M9K。这样,可以计算出EP4CE10内部的M9K有46片。再看看handbook里面介绍的配置特性。
由上图可以看出FPGA虽然内部拥有一定数量的M9K,但配置深度和配置位宽均有一定的限制。
介绍完上述那些,言归正传,这里提出一种利用matlab文件来初始化ROM内部数据的方式,即对.mif文件进行配置。
假设一组图像数据,现在想将其写入ROM中,以供后续的工程调用。图像数据保存在.txt文件中,格式类型如下所示:
这里只显示了部分图像数据,实际数据有几千上万行。咋办?总不能一点点地敲入ROM的初始化文件中去吧。别人介绍的软件处理方法也没提过这种情况。这时候,想到是否可以利用matlab强大的数据处理能力,来对.txt文件进行处理,再修改为.mif文件保存后直接让quartusII读取呢。
思路是有了,接下来看看一个可供quartusII识别的.mif文件内部是什么结构。此时以txt文档打开一个简单配置完成的文件来看看。
这样,即可利用matlab构造类似的文件存储方式。利用matlab将上述的图像数据转换成.mif。代码如下所示:
clear; clc; close all; fid=fopen('data_8bits.txt');%打开待转换数据的.txt文件 temp=fscanf(fid,'%x');%扫描文件 n=1024; fid=fopen('convert_data.mif','w');%打开待写入的.mif文件 fprintf(fid,'WIDTH=8;\n');%写入存储位宽8位 fprintf(fid,'DEPTH=1024;\n');%写入存储深度1024 fprintf(fid,'ADDRESS_RADIX=UNS;\n');%写入地址类型为无符号整型 fprintf(fid,'DATA_RADIX=HEX;');%写入数据类型为16进制 fprintf(fid,'CONTENT BEGIN\n');%起始内容 for i=0:n-1 fprintf(fid,'\t%d:%x;\n',i,temp(i+1));
end fprintf(fid,'END;\n'); fclose(fid);%关闭文件
这样将data_8bits.txt文件转换后文件convert_data.mif打开后以及利用quartusII打开.mif文件如下所示:
完全没有任何问题。
针对这种.txt文档其实更直接的方法是采用EXCEL表,将数据做成符合.mif文件格式。这样或许也会比较简单。
- 利用matlab进行ROM初始化mif文件方法(转)
- 用MATLAB生成Quartus II下ROM初始化文件(MIF,HEX)
- 用MATLAB生成*.mif(QUARTUS II)内存初始化文件
- Altera RAM/ROM 初始化文件MIF生成详解
- matlab输出mif文件
- 使用matlab生成rom初始化文件.coe
- modelsim仿真带有mif文件的rom
- mif文件生成方法
- 用MATLAB生成mif文件
- 用MATLAB生成MIF文件
- 用MATLAB产生mif文件
- Matlab 生成 图片的coe文件初始化xilinx rom
- QuartusII使用.mif文件初始化片内ram
- matlab生成quartus中可用的.mif文件
- 编写MATLAB脚本产生正弦信号的mif文件
- 得到QuartusII rom初始化文件
- [verilog]用文件初始化ROM
- Matlab生成Xilinx Rom IP CORE的初始化内容coe文件
- iOS获取音频设备信息
- 页面的一次往返处理
- 我们心心念念的原型批注审阅方式可能是这样的...
- 【源资讯 第36期】赶超 Java 和 PHP,Python 成最热门编程语言?
- 深入理解阻塞和非阻塞赋值的区别
- 利用matlab进行ROM初始化mif文件方法(转)
- DOM BOM 常用API小记
- oracle之 nvl 和 decode结合使用实例
- Hadoop CharacterTreeAuditLogger
- Android学习之碎片与活动之间的通信
- c++中字符串反转的3种方法
- 获取当前日期的前一天
- ProgressManager 进度监听器
- R语言对爬取的天气数据进行整理