Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
srec_mif(5)		      File Formats Manual		   srec_mif(5)

NAME
       srec_mif	- Memory Initialization	File (MIF) format

DESCRIPTION
       This format was invented	by Altera.

       An ASCII	text file (with	the extension .mif) that specifies the initial
       content of a memory block (CAM, RAM, or ROM), that is, the initial val-
       ues  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 II
       Text Editor.

       A Memory	Initialization File serves as an input file  for  memory  ini-
       tialization in the Compiler and Simulator. You can also use a Hexadeci-
       mal (Intel-Format) File (.hex) to provide memory	initialization data.

       A Memory	Initialization File contains the initial values	for  each  ad-
       dress 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  un-
       signed  decimal	(UNS) to display and interpret addresses and data val-
       ues. Data values	must match the specified data radix.

       When creating a Memory Initialization File in the Quartus II Text  Edi-
       tor, you	must start with	the DEPTH, WIDTH, ADDRESS_RADIX	and DATA_RADIX
       keywords. You can use Tab "" 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 the CONTENT BEGIN and END keywords, as shown in
       the following examples.
	      %	 multiple-line comment
	      multiple-line comment  %
	      -- single-line comment
	      DEPTH = 8;		    -- The size	of data	in bits
	      WIDTH = 32;		    -- The size	of memory in words
	      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;

       There  are several ways to specify the address and data,	as seen	in the
       following table:

       Notation		   Interpretation	 Example

       A : D;		   Addr[A] = D		 2 : 4
						 Address: 01234567
						 Data:	  00400000
       [A0..A1]	: D;	   Addr[A0]  to	  [A1]	 [0..7]	: 6
       (See note below.)   contain data	D	 Address: 01234567
						 Data:	  66666666
       [A0..A1]	: D0 D1;   Addr[A0] = D0,	 [0..7]	: 5 6
       (See note below.)   Addr[A0+1] =	D1,	 Address: 01234567
			   Addr[A0+2] =	D0,	 Data:	  56565656
			   Addr[A0+3] =	D1,
			   until A0+n =	A1
       A : D0 D1 D2;	   Addr[A] = D0,	 2 : 4 5 6
			   Addr[A+1] = D1,	 Address: 01234567
			   Addr[A+2] = D2	 Data:	  00456000

       Note: The address range forms are limited in SRecord, the range must be
       less than 255 bytes.  SRecord will never	write an address range.

       Note: When reading MIF file, SRecord will round up the number  of  bits
       in  the	WIDTH  to  be a	multiple of 8.	Multi-byte values will be laid
       down in memory as big-endian.

       An ASCII	text file (with	the extension .mif) that specifies the initial
       content of a memory block (CAM, RAM, or ROM), that is, the initial val-
       ues for each address.  This file	is  used  during  project  compilation
       and/or  simulation.  A MIF contains the initial values for each address
       in the memory.  In a MIF, you are also required to specify  the	memory
       depth  and width	values.	 In addition, you can specify the radixes used
       to display and interpret	addresses and data values.

SIZE MULTIPLIER
       In general, binary data will expand  in	sized  by  approximately  3.29
       times  when  8-bit data is represented with this	format (16 bit = 2.75,
       32 bit =	2.47, 64 bit = 2.34).

EXAMPLE
       Following is a sample MIF:
	      DEPTH = 32; % Memory depth and width are required	%
	      %	DEPTH is the number of addresses %
	      WIDTH = 14; % WIDTH is the number	of bits	of data	per word %
	      %	DEPTH and WIDTH	should be entered as decimal numbers %
	      ADDRESS_RADIX = HEX; % Address and value radixes are required %
	      DATA_RADIX = HEX;	% Enter	BIN, DEC, HEX, OCT, or UNS; unless %
				% otherwise specified, radixes = HEX %
	       --Specify values	for addresses, which can be single address or range
	      CONTENT
	      BEGIN
	      [0..F]: 3FFF;	% Range: Every address from 0 to F = 3FFF %
	      6	    :	 F;	% Single address: Address 6 = F	%
	      8	    :	 F E 5;	% Range	starting from specific address %
	      --		% Addr[8] = F, Addr[9] = E, Addr[A] = 5	%
	      END;

REFERENCE
       The above information was gleaned from the following sources:
       http://www.altera.com/support/software/nativelink/quartus2/glossary/def_mif.html
       http://www.mil.ufl.edu/4712/docs/mif_help.pdf

COPYRIGHT
       srec_mif	version	1.64
       Copyright (C) 1998, 1999, 2000, 2001, 2002,  2003,  2004,  2005,	 2006,
       2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Peter Miller

       The srec_mif program comes with ABSOLUTELY NO WARRANTY; for details use
       the 'srec_mif -VERSion License' command.	 This is free software and you
       are  welcome  to	 redistribute it under certain conditions; for details
       use the 'srec_mif -VERSion License' command.

MAINTAINER
       Scott Finneran	E-Mail:	  scottfinneran@yahoo.com.au
       Peter Miller	E-Mail:	  pmiller@opensource.org.au

Reference Manual		    SRecord			   srec_mif(5)

NAME | DESCRIPTION | SIZE MULTIPLIER | EXAMPLE | REFERENCE | COPYRIGHT | MAINTAINER

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=srec_mif&sektion=5&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help