User guide
134 www.xilinx.com Spartan-6 FPGA Configuration User Guide
UG380 (v2.7) October 29, 2014
Chapter 7: Reconfiguration and MultiBoot
IPROG Reconfiguration
The IPROG (internal PROGRAM_B) command has similar effect as a pulsing
PROGRAM_B pin, except IPROG does not reset the dedicated reconfiguration logic. The
start address set in GENERAL1,2 is used during reconfiguration instead of the default
address (zero). The fallback (golden) bitstream address is set in GENERAL3,4. The IPROG
command can be sent through ICAP_SPARTAN6 or the bitstream.
Reboot Using ICAP_SPARTAN6
The IPROG command can also be sent using the ICAP_SPARTAN6 primitive. After a
successful configuration, the user design determines the start address of the MultiBoot
bitstream, and sets the GENERAL1,2 registers, and then issues an IPROG command using
ICAP.
The sequence of commands is:
1. Send the Sync word.
2. Program the GENERAL1,2 registers for the next bitstream start address and the non-
volatile device opcode for a read operation. Also program the GENERAL3,4 registers
for the fallback (golden) bitstream start address and the opcode for the non-volatile
device for a read operation.
3. Send the IPROG command.
Table 7-1 shows an example bitstream for the IPROG command using ICAP.
Table 7-1: Example Bitstream for IPROG through ICAP
Configuration
Data (hex)
(1)
Explanation
FFFF Dummy Word
AA99 Sync Word
5566 Sync Word
3261 Type 1 Write 1 Words to GENERAL_1
XXXX MultiBoot Start Address [15:0]
3281 Type 1 Write 1 Word to GENERAL2
(2)
XXXX Opcode and MultiBoot Start Address [23:16]
32A1 Type 1 Write 1 Word to GENERAL3
XXXX Fallback Start Address [15:0]
32C1 Type 1 Write 1 Word to GENERAL4
(2)
XXXX Opcode and Fallback Start Address [23:16]
30A1 Type 1 Write 1 Word to CMD
000E IPROG Command
2000 Type 1 NO OP
Notes:
1. SelectMAP 16-bit data ordering applies to the ICAP data bus. See Table 2-5, page 39 for proper bit
ordering.
2. The eight most significant bits of GENERAL2 and GENERAL4 registers represent the opcode for the
read instruction for the non-volatile storage device. Consult the data sheet of the storage device for the
proper opcode. Common codes are 0x0B, 0x3B, and 0x6B for Fast Read, Dual Fast Read, and Quad
Fast Read, respectively.