FreeBSD Manual Pages
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 values for each address. This file is used during project compilation and/or simu- lation. 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 initializa- tion 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 Mem- ory Initialization File, you must specify the memory depth and width val- ues. In addition, you can specify data radixes as binary (BIN), hexadecimal (HEX), octal (OCT), signed decimal (DEC), or unsigned decimal (UNS) to dis- play and interpret addresses and data values. Data values must match the specified data radix. When creating a Memory Initialization File in the Quartus II Text Editor, you must start with the DEPTH, WIDTH, ADDRESS_RADIX and DATA_RADIX key- words. You can use Tab "" and Space " " characters as separators, and in- sert 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 be- tween the CONTENT BEGIN and END keywords, as shown in the following exam- ples. % 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 fol- lowing 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 values for each address. This file is used during project compilation and/or sim- ulation. 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 val- ues. In addition, you can specify the radixes used to display and inter- pret 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://man.freebsd.org/cgi/man.cgi?query=srec_mif&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>
