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 |