The MAKEPRG program makes a .PRG file, which is an Intel extended format file.
The exact format is Intel-86 Hex Obj.
Below are the first few lines of a typical .prg file for an XC7336Q:
The format specification for each record is as follows:
: <# of data bytes in record><data address><data type><data><record checksum>
Description of each record field:
<# of data bytes in record> is a 2-digit field
<data address> is a 4-digit field
<data type> is a 2-digit field:
00 = data
01 = EOF
02 = extended record type
<record checksum> is a 2-digit field
The records in a .prg file may appear in any order because the data address is
contained within each record. Xilinx reserves the device addresses "FFFF"
and "FFFE" to denote the product code and package code respectively. The
programmer relies on these records to ensure that the correct part has been
selected by the user.
The last record marks the end of the file: