Configuration Memory Read Procedure (SelectMAP) - Configuration Memory Read Procedure (SelectMAP) - UG570

UltraScale Architecture Configuration User Guide (UG570)

Document ID
UG570
Release Date
2025-03-04
Revision
1.20.1 English

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.

  1. Write the bus width detection sequence and synchronization word to the device.
  2. Write at least one NOOP command.
  3. Write the Shutdown command, and write one NOOP command.
  4. Write the RCRC command to the CMD register, and write one NOOP command.
  5. Write five NOOP instructions to ensure the shutdown sequence has completed. DONE goes Low during the shutdown sequence.
  6. Write the RCFG command to the CMD register, and write one NOOP command.
  7. Write the starting frame address to the FAR (typically 0x00000000).
  8. Write the read FDRO register packet header to the device. The FDRO read length is:
    Kintex UltraScale and Virtex UltraScale
    FDRO read length = (words per frame) x (frames to read +1) + 10
    Artix UltraScale+, Kintex UltraScale+, and Virtex UltraScale+
    FDRO read length = (words per frame) x (frames to read + 1) + 25

    One extra frame is read to account for the frame buffer. The frame buffer produces one dummy frame at the beginning of the read. 10 or 25 extra words are read to account for pipelining.

  9. Write 64 dummy words to the device to flush the packet buffer.
  10. Read the FDRO register from the SelectMAP interface. The FDRO read length is the same as in step 8. Readback data is valid deterministically three clock cycles after the CSI_B pin is asserted during readback.
  11. Write one NOOP instruction.
  12. Write the START command and write one NOOP command.
  13. Write the RCRC command and write one NOOP command.
  14. Write the DESYNC command.
  15. Write at least 64 bits of NOOP commands to flush the packet buffer. Continue sending CCLK pulses until DONE goes High.

The following table shows the readback command sequence.

Table 1. Shutdown Readback Command Sequence (SelectMAP)
Step SelectMAP Port Direction Configuration Data Explanation
1 Write FFFFFFFF Dummy word
000000BB Bus width sync word
11220044 Bus width detect
FFFFFFFF Dummy word
AA995566 Sync word
2 Write 02000000 Type 1 NOOP word 0
3 Write 30008001 Type 1 write 1 word to CMD
0000000B SHUTDOWN command
02000000 Type 1 NOOP word 0
4 Write 30008001 Type 1 write 1 word to CMD
00000007 RCRC command
20000000 Type 1 NOOP word 0
5 Write 20000000 Type 1 NOOP word 0
20000000 Type 1 NOOP word 0
20000000 Type 1 NOOP word 0
20000000 Type 1 NOOP word 0
20000000 Type 1 NOOP word 0
6 Write 30008001 Type 1 write 1 word to CMD
00000004 RCFG command
20000000 Type 1 NOOP word 0
7 Write 30002001 Type 1 write 1 word to FAR
00000000 FAR Address = 00000000
8 Write 28006000 Type 1 read 0 words from FDRO
483D0E2B Type 2 read 4,001,323 words from FDRO (for KU040)
9 Write 20000000 Type 1 NOOP word 0
... Type 1 63 more NOOPs word 0
10 Read 00000000 Packet data read FDRO word 0
...  
00000000 Packet data read FDRO word 4,001,322
11 Write 20000000 Type 1 NOOP word 0
12 Write 30008001 Type 1 write 1 word to CMD
00000005 START command
20000000 Type 1 NOOP word 0
13 Write 30008001 Type 1 write 1 word to CMD
00000007 RCRC command
20000000 Type 1 NOOP word 0
14 Write 30008001 Type 1 write 1 word to CMD
0000000D DESYNC command
15 Write 20000000 Type 1 NOOP word 0
20000000 Type 1 NOOP word 0