Return to Support Page
 homesearchagentssupportask xilinxmap

Answers Database


PROMS: About PROM/EEPROM file formats -- Intel MCS, Motorola EXOR, Tektronix HEX


Record #476

Problem Title:
PROMS: About PROM/EEPROM file formats -- Intel MCS, Motorola EXOR,
Tektronix HEX



Problem Description:
Keywords:  prom eeprom format mcs exor tekhex

Urgency:  standard

General Description:
Xilinx supports 3 PROM file formats for programming
parallel proms and Xilinx devices--
Intel MCS, Motorola EXORmacs, and Tektronix HEX


Solution 1:

PROM File Formats
-----------------
		     INTEL MCS-86 HEXADECIMAL OBJECT
			   File Format Code 88

     The Intel 16-bit Hexadecimal Object record format has a 9-character
     (4 field) prefix that defines the start of the record, byte count,
     load address, and record type, as well as a 2-character checksum
     suffix.  The four record types are:
		  00 = data record
		  01 = end record(signals end of file)
		  02 = extended address record(provides the offset to
		       determine the absolute destination address)
		  03 = start record(ignored during input and not sent
		       during output by Data I/O translator firmware)

     Input data record(type 00)
	----------------------------------------------------------
	\  :   |  BC  |   AAAA	 |   00  |  HHHHHHHH..HH |   CC  \
	 ---------------------------------------------------------
	  start  byte	 hex	   record     HH =	    checksum
	  char	 count	 address    type      1 data byte   (2 chars)
	      (2 chars) (4 chars) (2 chars) (up to 32 chars)

     End of File record(type 01)
	----------------------------------------
	\  :   |  00  |   0000	 |   01  |  FF	\
	 ----------------------------------------
	  start  BC	 address   record   checksum
	  char	 = 00	 = 0000     type     = FF

     Extended address record(type 02)
	-----------------------------------------------------
	\  :   |  02  |   0000	 |   02  |    HHHH   |	 CC  \
	 -----------------------------------------------------
	  start  BC	 address   record   2 bytes    checksum
	  char	 = 02	 = 0000     type    (offset)  (2 chars)
					   (4 chars)

     Start Address record(type 03) not used by Data I/O firmware.

     The Checksum is the two's complement of the binary summation
     of the preceding bytes in the record(including the bytecount,
     address, and any data bytes) in hexadecimal notation.

     The extended address record(type 02) defines bits 4 to 19 of the
     20 bit segment base address.  This address will be added to
     subsequent data record addresses to provide the absolute address.
     This record can appear randomly in the file, but for this application
     it will be the initial record.

     NOTE:  Always specify the address offset when using this format,
	    even when the offset is zero.

     The Data I/O firmware will force the record size to 16(decimal)
     if the record size is specified greater than 16.

	* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
			   MOTOROLA EXORmacs
			  File Format Code 87

     Motorola data file may begin with a sign-on record, but for this
     application it will be ignored.  Data records have an 8 or 9
     character prefix and a two character checksum suffix.

     Data record (if address field has 4 chars)
	-------------------------------------------------
	\  S1  |  BC  |   AAAA	 |  HHHHHHHH..HH |   CC  \
	 ---------------------------------------------------------
	  start  byte	 hex	     HH =	    checksum
	  char	 count	 address      1 data byte   (2 chars)
	      (2 chars) (4 chars)   (up to 32 chars)

     Data record (if address field has 6 chars)
	---------------------------------------------------
	\  S2  |  BC  |   AAAAAA   |  HHHHHHHH..HH |   CC  \
	 ----------------------------------------------------
	  start  byte	 hex	     HH =	    checksum
	  char	 count	 address      1 data byte   (2 chars)
	      (2 chars) (6 chars)   (up to 32 chars)

     End-of-file record
	-------------------------------------	  *NOTE:  Start chars
	\  S*  |  03	|   0000   |	 CC  \	   must be S9 if previous
	 --------------------------------------    record began with S1.
	  start  byte	    hex 	checksum   May be S9 or S8 if
	  char	 count	   address	(2 chars)  previous record began
	      (always 03) (always 0000) 	   with S2.

     Byte Count is the number of data bytes in the record plus 3(if
     four hex char address) or plus 4(if 6 hex char address) for
     checksum and address.

     Checksum is one's complement of binary summation of preceding bytes
     in the record (including byte count, address, and data bytes) in
     hexadecimal notation.


	* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
			 TEKTRONIX HEXADECIMAL
			  File Format Code 86

     The Tektronix Hexadecimal format for a data file consists of a
     9-character prefix (start char, address, bytecount, and checksum
     of the prefix) followed by data bytes and ended by a 2-char
     checksum of the data characters.  The end-of-file record consists
     only of control characters used to signal the end of transmission
     and a byte count and sum-check for verification.

     Data record
	----------------------------------------------------------
	\   /  |  AAAA	|   BC	 |   CC   | HHHHHHHH..HH |    CC  \
	 -----------------------------------------------------------
	  start   hex	   byte    prefix    HH =	      data
	  char	address    count  checksum   1 data byte     checksum
	      (4 chars) (2 chars) (2 chars) (up to 32 chars) (2 chars)

     End-Of-File record
	----------------------------------
	\   /  |  AAAA	|   00	 |   CC    \
	 -----------------------------------
	  start  transfer  byte    checksum
	  char	 address   count   (2 chars)
	       (4 chars)   = 00

     The prefix checksum is the eight-bit sum of the four-bit hexadecimal
     value of the six digits that make up the address and byte count.
     The data checksum is the eight-bit sum, modulo 256, of the four-bit
     hexadecimal values of the digits that make up the data bytes.

 *************************************************************************

Tektronix maximum address: 65536 (x10000)
Motorola EXORmacs maximum address: 16777216 (x1000000)
Intel MCS-86 Hexadecimal maximum address: 1048576 (x100000)








Solution 2:





End of Record #476

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Xilinx Expert Journals!

© 1998 Xilinx, Inc. All rights reserved
Trademarks and Patents