POF (Programmer Object File) Format, Code 14
Creator ID
Device Name
‘The POF (Programmer Object File) format provides a highly compact
data format to enable translation of high bit count logic devices
efficent. This format currently applles to MAX™ devices, such as the
Altera 5032.
‘The information contained in the file is grouped into “packets.” Each,
packet contains a “tag,” identifying what sort of data the package
‘contains plus the data itself. This system of packeting information allows
for future definitions as required.
‘The POF is composed of a header and a list of packets. The packets have
variable lengths and structures, but the first six bytes of every packet,
always adhere to the following structure.
struct PACKET_HEAD
{
short tag: (tag number - type of packet */
Jong length; 7 uumber of bytes in rest of packet */
)
APOF is read by the program examining each packet and ifthe tag value
1s recognized, then the packet is used. Ifa tag value is not recognized, the
packet is ignored.
Any packet except the terminator packet may appear multiple times
‘within a POF. Packets do not need to occur in numerical tag sequence.
‘The POF reader software is responsible for the interpretation and action
taken asa result of any redundant data inthe file, including the detection
of error conditions.
‘The POF format currently uses the following packet types.
[Note In the allowing packet type descriptions, one ofthe terms—Used,
‘Skipped, or Read—will appar after the tag and name
Used: The information In this packet Is used by the programmer.
‘Skipped: This information is not used by the programmer.
‘Read: This information is read by the programmer but has no direct
application,
tag-1 Used
‘This packet contains a version ID string from the program which created.
the POF,
tage2 Used
‘This packet contains the ASCII name of the target device to be
programmed, for example, PM9129.Comment Text
Security_Bit
Logical_Address_
and_Data_16
Electrical Address
-and_Data
Terminator
‘Symbol table
Test Vectors
Electrical_Address_and_
Constant_data
‘Number of programmable
elements
tag-3 Read
‘This packet contains a text string which may consist of comments related
to the POF. This text may be displayed to the operator when the flle is
read. The string may include multiple lines of text, separated by
appropriate new line characters.
tag-4 Skipped
tages Used
‘This packet declares whether security mode should be enabled on the
target device.
tag-6 Read
‘This packet defines a group of logical addresses in the target device and
associates logical data with these addresses. The addresses comprise a
linear region in the logical address space, bounded on the low end by the
starting address and extending upward by the address count specified in
the packet.
tag-7 Used
‘This packet defines a group of electrical addresses in the target device
and associates data values with those addresses, The data fleld is
ordered in column-row order, beginning with the data for the least
columnn-row address, continuing with increasing row addresses until the
first column ls filled, then Incrementing the column address, etc.
tag-8 Used
‘This packet signals the end of the packet list in the POF. This packet must
be the Nth packet, where N is the packet count declared in the POF
header. The CRC field is a 16-bit Cyclic Redundancy Check computed on
all bytes inthe file up to, but not including, the CRC value itself. If this
CRC value is zero, the CRC check should be ignored.
tag-9 Skipped
tag-10 Used
‘This packet allows the POF to contain test vectors for post programming
testing purposes, Each vector is a character string and uses the 20
character codes for vector bits defined in JEDEC standard 3A, section 7.0.
tag-12 Skipped
tag-14 Read
‘This packet defines the number of programmable elements in the target
deviceLogleal_Address_and_
Data 32
tage17 Read
‘This packet defines a group of logical addresses in the target device and,
associates logical data with these addresses, The addresses comprise a
linear region in the logical address space, bounded on the low end by the
starting address and extending upward by the address count specified in
the packet.
‘The starting address and address count are each specified by 4-byte
flelds (32 bits).