Answers Database


Virtex Configuration: How do you know a device is synchronized (sync word is loaded)?


Record #7891

Product Family: Hardware

Product Line: Virtex

Product Part: Virtex General Hardware

Problem Title:
Virtex Configuration: How do you know a device is synchronized (sync word is loaded)?


Problem Description:
Urgency: Standard

General Description: Virtex requires a 32 bit synchronization word (0xAA995566) before it recognize s configuration data. How do you tell if the device has been synchronized?



Solution 1:

   There is no immediate way to tell if a device has been synchronized. The bitstream produced by
bitgen is padded with dummy words at the beginning, so there is ample opportunity to get the synchronization word loaded. However, if it is suspected that the device isn't properly synchronized,
creative use of the LOUT register can indicate proper synchronization.

Note: Writing to the LOUT register is only valid in serial modes

   The LOUT register is a pipeline register that transfers data to the DOUT pin. Inserting a small
LOUT write immediately after the synchronization word is loaded will tell the user if the sync word
was loaded properly. If so, the device will recognize the LOUT write packet, and data will be seen
on the LOUT pin. There is a latency of 40 clock cycles between data being written to LOUT and data appearing on DOUT.
   If the sync word isn't loaded properly, no packets will be recognized, and the DOUT pin will remain
high.

Bitstream as produced by bitgen (separated by DWORDS for clarity):

FFFFFFFF
AA995566
30008001 (CMD Write)
...
...

What we can do is insert (using a hex editor) a packet for an LOUT write before the first CMD Write:


FFFFFFFF
AA995566
30010001 (Packet header for an LOUT write with Word Count = 1)
00000000 (32 bits of data)
30008001 (1st CMD Write)
...
...

This example will produce 32 0's on DOUT. While this Answer uses LOUT Writes to indicate if the sync word is loaded, other LOUT Writes can be embedded in the bitstream for any reason, and at any point during configuration.

For more in-depth discussion of the Virtex configuration format, and explanation of configuration registers and packets please refer to (Xilinx XAPP138).



Solution 2:

   In SelectMAP mode, you cannot use the LOUT write, because that pin is used as the BUSY signal.
However, you do have access to readback with the SelectMAP interface, and it can be used to gather the same information in a different way. It involves issuing an ABORT.

   When an ABORT is issued, the FPGA will drive out a status word onto the data lines. This status
word contains information on synchronization. For details on the ABORT process, please refer to (Xilinx Solution 8520).




End of Record #7891 - Last Modified: 02/09/00 15:31

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