Menu Close

Quartus II 下 mif文件的使用

Quartus II 下 mif文件的使用

在开发ROM,RAM等存储器类的FPGA应用时,会经常使用存储器的初始化文件,比如在一个嵌入式CPU的开发中,经常会碰到程序代码,数据代码等这些内容往往希望在FPGA上电的时候随着FPGA的配置一起成为ROM,RAM的初始值。在Quartus II 和Vivado系统中都支持一种扩展名为.mif的文件可以很好的支持上述功能。当然还有其它的格式文件也可以使用,如16进制文件(Intel-Format).hex,Vivado下的2进制文件.coe等

  1. mif文件的构成

mif文件是一种具有一定格式的ASCII吗的文本文件,文件的扩展名为.mif。主要用来指定CAM,RAM或ROM存储器内的初始内容。该文件在编译时会一起打包到对应的可下载文件中如Quartus II 中的.sof文件,在FPGA上电配置时一起作为ROM,RAM等存储器的初始化文件。mif文件也可以作为仿真文件的一部分在仿真过程中使用。

2. mif文件编辑

由于mif文件是ASCII码文本文件,因此只要能编辑ASCII码文件的编辑器都可以使用,如notepad, notepad++, 也可以在Quartus II 下使用the Memory Editor, the In-System Memory Content Editor, 或 the Quartus II Text Editor进行创建或编辑。

3. mif文件格式

mif文件是存储器的初始化内容文件,其内容和地址一一对应。每个ROM,RAM都需要一个独立的mif文件。文件的格式如下:

    • 指定存储器的深度,也就是对应多少存储单元。如:DEPTH = 32;表示有32个存储单元
    • 存储单元的数据宽度,这个宽度要与ROM,RAM生成时指定的宽度一致。如:WIDTH = 8; 表示存储单元的数据宽度为8位。
    • 地址的表示方法,可以是2进制(BIN),16进制(HEX), 8进制(OCT),有符号的10进制(DEC),无符号的十进制(UNS)表示。地址的数值应与对应的进制一致。
    • 存储器内容的表示方法,可以是2进制(BIN),16进制(HEX), 8进制(OCT),有符号的10进制(DEC),无符号的十进制(UNS)表示。存储器内容的数值应与对应的进制一致。
    • 地址数据由 CONTENT开始,具体的地址、内容映射由BEGIN …END;包括起来的部分。
    • mif文件内由空格或TAB制表符分隔。
    • mif文件内的注释语句可以由%…%括起来的部分,可以写在一行也可以写在多行。如:

%  multiple-line comment

multiple-line comment  %

也可以用 –注释单行,如:– single-line comment。

    • 地址和数据之间用冒号“:”分隔 。

例1:4位2进制到4格雷码的转换

 

%  multiple-line comment

multiple-line comment  %

 

— single-line comment

 

DEPTH = 32;                                   — The size of memory in words
WIDTH = 8;                                     — The size of data in bits
ADDRESS_RADIX = HEX;          — The radix for address values
DATA_RADIX = BIN;                   — The radix for data values
CONTENT                                        — start of (address : data pairs)
BEGIN

00 : 00000000;                             — memory address : data
01 : 00000001;
02 : 00000011;
03 : 00000010;
04 : 00000110;
05 : 00000111;
06 : 00000101;
07 : 00000100;
08 : 00001100;
09 : 00001101;
0A : 00001111;
0B : 00001110;
0C : 00001010;

0D : 00001011;

0E : 00001001;

0F : 00001000;

END;

例中,只要将16进制数作为ROM地址,在ROM的输出端的低4位就是4位2进制格雷码。

4. mif的扩展应用,利用mif文件与ROM ,RAM 配合,可以生成各种编码,如 :减法器,格雷码,8b/10b转换,三角函数表等,在数据编码,科学计算,DSP等领域获得广泛应用。

练习题:利用mif文件生成8位二进制格雷码。

 

Posted in FPGA, FPGA, Quartus II, Verilog, Verilog, 开发工具, 教材与教案, 文章

发表评论

相关链接