User guide

118 www.xilinx.com Spartan-6 FPGA Configuration User Guide
UG380 (v2.7) October 29, 2014
Chapter 6: Readback and Configuration Verification
To read registers other than STAT, the address specified in the Type-1 packet header in
step 2 of Table 6-1 should be modified and the word count changed if necessary. Reading
from the FDRO register is a special case that is described in Configuration Memory Read
Procedure (SelectMAP).
Configuration Memory Read Procedure (SelectMAP)
The process for reading configuration memory from the FDRO register is similar to the
process for reading from other registers. Additional steps are needed to accommodate the
configuration logic. Configuration data coming from the FDRO register passes through the
frame buffer. The first frame of readback data should be discarded. After changing the FAR
or beginning to read a different frame type, it is necessary to send the DESYNC command
and a new synchronization word prior to starting another read operation.
1. Write the dummy and synchronization words to the device.
2. Write one NOOP command.
3. Write the Shutdown command, and write NOOP commands.
4. Write the RCRC command, and write one NOOP command.
5. Write the AGHIGH command to disable the interconnect, and write one NOOP
command.
6. Set the frame length register.
7. Write the Starting Frame Address to the FAR (typically 0x00000000).
8. Write the RCFG command to the CMD register.
9. Write the read FDRO register packet header to the device. The FDRO read length is
given by:
FDRO Read Length = (words per frame) x (frames to read + 1) + 1
One extra frame is read to account for the frame buffer. Users should strobe readback
data while DOUT_BUSY is Low. The frame buffer produces one dummy frame at the
beginning of the read. Also, one extra word is read in SelectMap8 mode.
10. Write to the device to flush the packet buffer.
11. Read the FDRO register from the SelectMAP interface. The FDRO read length is the
same as in step 9 above.
12. Write the LFRM command to enable the interconnect, and write one NOOP command.
13. Write the START command, and write NOOP commands.
14. Write the RCRC command, and write one NOOP command.
15. Write the DESYNC command.
16. Write at least 64 bits of NOOP commands to flush the packet buffer. Continue sending
CCLK pulses until DONE goes High.