一、mif与hex概述
ROM IP的数据需要满足断电不丢失的要求,ROM IP数据的文件格式一般有三种文件格式:.mif、.hex、.coe,Xilinx与Intel Altera支持的ROM IP数据文件格式如下:
Altera | hex、mif | AM(助记) |
Xilinx | hex、coe | XC(助记) |
.hex、.coe格式一般是用于Xilinx版本,.mif、.hex格式一般用于Altera版本的ROM。
hex文件: Hexadecimal FIle
mif文件: Memory Initialization File
coe文件:Coefficient File;本篇暂不解读xilinx的coe文件。
其他:
上传了下面创建的mif与hex文件:Quartus_mif_hex_file.zip,文本编辑器打开可查看:
二、Quartus 的mif文件创建与内容填充
Intel Altera的QuartusII软件可以创建hex与mif文件。
2.1 Quartus创建mif文件
2.1.1 创建mif文件
FIle》New》Memory Files》Memory Initialization File单击
2.1.2 设置位宽与数量
2.1.3 设置Address与Memory Radix,并输入数据
在ASCII上右键选择Address Radix,一般默认无符号十进制,Unsigned Decimal;
radix,发音:ˈreɪdɪks
n.根;[数]基数
在ASCII上右键选择Memory Radix,默认也是无符号十进制,这里我选择十六进制Hexadecimal,并输入0~15的数据以待后续验证;
2.1.4 选择保存路径并设置mif的文件名称
Ctrs+S选择mif文件的保存路径与mif文件名称,即完成mif文件的创建与内容填充。
2.2 通过文本方式创建mif文件
首先查看mif文件的内容格式:
用notepad+或文本编辑器打开查看mif文件,如下:
-- Quartus Prime generated Memory Initialization File (.mif)
WIDTH=8;
DEPTH=256;ADDRESS_RADIX=UNS;
DATA_RADIX=HEX;CONTENT BEGIN
0 : 00;
1 : 01;
2 : 02;
3 : 03;
4 : 04;
5 : 05;
6 : 06;
7 : 07;
8 : 08;
9 : 09;
10 : 0A;
11 : 0B;
12 : 0C;
13 : 0D;
14 : 0E;
15 : 0F;
[16..255] : 00;
END;
由上述mif文本内容可以通过文本方式创建自己的mif文件,步骤如下:
- 创建txt文本
- 按照上述文本格式填写基本设置并填写数据
- 修改.txt文件后缀名为.mif并保存即可
三、Quartus创建hex文件与内容填充
3.1 Quartus创建hex文件
3.1.1 创建hex文件
FIle》New》Memory Files》Hexademical(Intel-Format) File单击
3.1.2 设置位宽与数量
3.1.3 设置Address与Memory Radix,并输入数据
在ASCII上右键选择Address Radix,一般默认十进制,Decimal;
在ASCII上右键选择Memory Radix,这里我选择十六进制Hexadecimal,并输入0~15的数据以待后续验证;
3.1.4 选择保存路径并设置hex的文件名称
Ctrs+S选择hex文件的保存路径与hex文件名称,即完成hex文件的创建与内容填充。
3.2 通过文本方式创建hex文件-太夸张,不建议
首先查看hex文件的内容格式:
用notepad+或文本编辑器打开查看hex文件,如下:
通过文本格式创建hex文件太吃力,了解即可,编写嘛,放弃……
四、参考链接:
【小技巧】使用MATLAB产生coe文件和mif文件供FPGA调用方法整理-CSDN博客
FPGA中ROM调用.mif文件和.hex文件要注意的问题(一)