Memory Initialization File (.mif) Definition
An ASCII text file (with the extension .mif) that specifies the initial content of a memory block (RAM or ROM), that is, the initial values for each address. This file is used during project compilation and/or simulation. You can create a Memory Initialization File in the Memory Editor, the In-System Memory Content Editor, or the Quartus® Prime Text Editor.
A Memory Initialization File serves as an input file for memory initialization in the Compiler and Simulator. You can also use a Hexadecimal (Intel-Format) File (.hex) to provide memory initialization data.
A Memory Initialization File contains the initial values for each address in the memory. A separate file is required for each memory block. In a Memory Initialization File, you must specify the memory depth and width values. In addition, you can specify data radixes as binary (BIN), hexadecimal (HEX), octal (OCT), signed decimal (DEC), or unsigned decimal (UNS) to display and interpret addresses and data values. Data values must match the specified data radix.
When creating a Memory Initialization File in the
Quartus® Prime Text Editor, you must start
with the DEPTH
, WIDTH
, ADDRESS_RADIX
and
DATA_RADIX
keywords. You can use Tab "\t" and Space " " characters as
separators, and insert multiple lines of comments with the percent "%" character,
or a
single comment with double dash "--" characters. Address : data pairs represent data
contained inside certain memory addresses and you must place them between
theCONTENT BEGIN
andEND
keywords, as shown in the
following examples.
%
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 : 00000010; 03 :
00000011; 04 : 00000100; 05 : 00000101; 06 : 00000110; 07 : 00000111; 08 : 00001000;
09
: 00001001; 0A : 00001010; 0B : 00001011; 0C : 00001100;
END;
Address : Data Pairs Syntax Rules |
Definition |
Example |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|