基于MATLAB的mif文件生成
2017-06-06邹林甫席挺
邹林甫席挺
1. 南京邮电大学通信与信息工程学院 2. 南京邮电大学电子科学与技术学院
基于MATLAB的mif文件生成
邹林甫1席挺2
1. 南京邮电大学通信与信息工程学院 2. 南京邮电大学电子科学与技术学院
mif(Memory Initialization File)文件是通用数据交换格式,可导入多种平台用于对特定单元赋值,为数字信号处理平台提供方便。本文针对初学者,在FPGA设计中对mif文件使用的疑惑,详细介绍了mif文件在MATLAB中的实现过程。以quartus开发平台cyclone Ⅳ系列芯片的使用为例,生成am调制信号的mif文件数据,通过FPGA输出调制波形。
MATLAB mif文件 数字信号处理
1 前言
在FPGA设计中ROM的应用是比较常见的,调用ROM时经常要加载mif(Memory Initialization File)文件。尽管mif文件有多种生成方式,例如C程序,使用专门mif文件生成软件等,基于MATLAB的生成方法依托其在数字信号分析、处理领域的强大功能,有着天然的优势。
2 MATLAB简介
MATLAB是MathWorks公司出品的数学软件,主要包括MATLAB和Simulink两大部分,主要用于算法开发、数据可视化、数据分析以及数值计算。自问世以来,历经了实践的检验,逐渐成为科研工作者和高校师生信赖的仿真软件。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
3 mif文件
3.1 简介
mif(Memory Initialization File)文件是指定内存块(CAM,RAM或ROM)的初始内容的ASCII文本文件(扩展名为.mif),即每个地址的初始值。该文件在项目编译或模拟期间使用。可以在内存编辑器,系统内存内容编辑器或Quartus II文本编辑器中创建内存初始化文件。也可以使用十六进制(Intel-Format)文件(.hex)来提供内存初始化数据。文件包含内存中每个地址的初始值。每个内存块都需要单独的文件。在内存初始化文件中,必须指定内存深度和宽度值。另外,您可以将数据基数指定为二进制(BIN),十六进制(HEX),八进制(OCT),有符号十进制(DEC)或无符号十进制(UNS),以显示和解释地址和数据值。数据值必须与指定的数据基数相匹配。
3.2 格式说明
创建文件时,必须以DEPTH,WIDTH,ADDRESS_RADIX和DATA_RADIX关键字开始。可以使用“Tab”和“Space”字符作为分隔符,并用“%”百分比字符插入多行注释,或者使用双击“—”字符的单行注释。地址、数据对表示内存地址中包含的数据内容,以“:”间隔,必须将其放在CONTENT BEGIN和END关键字之间。
4 MATLAB程序文件代码
本文围绕mif文件,介绍了其格式以及基于MATLAB的生成方法。今后对存储块的初始化,可依据此模板进行修改,通过MATLAB输出波形检验输出正确性,产生mif文件后,导入开发平台相应单元中。
[1]张志涌,杨祖樱.MATLAB教程R2012a[M].北京:北京航空航天大学出版社,2012:29
[2]王金明.数字系统设计与Verilog HDL[M].北京:电子工业出版社,2014:130-132