The IPROG command can also be sent through
ICAP using the ICAPE3 primitive. After a successful configuration, the user design
determines the start address of the next bitstream, sets the WBSTAR register, and then
issues an IPROG command using ICAP.
The command sequence is:
- Send the Sync word.
- Program the WBSTAR register for the next bitstream start address (see Warm Boot Start Address Register (10000)).
- Send the
IPROGcommand.
The following table shows an example
bitstream for the IPROG command using ICAP.
| Configuration Data (hex) 1 | Explanation |
|---|---|
FFFFFFFF
|
Dummy word |
AA995566
|
Sync word |
20000000
|
Type 1 NOOP |
30020001
|
Type 1 Write 1 words to WBSTAR |
00000000
|
Warm boot start address (Load the desired address) |
30008001
|
Type 1 Write 1 words to CMD |
0000000F
|
IPROG command |
20000000
|
Type 1 NOOP |
After the configuration logic receives the
IPROG command, the FPGA resets everything except the dedicated
reconfiguration logic, and the INIT_B and DONE pins go
Low. After the FPGA clears all configuration memory, INIT_B goes High
again. Then, the value in WBSTAR is used for the bitstream starting address. The
configuration mode determines which pins are controlled by WBSTAR. See the following
table.
| Configuration Mode | Pins Controlled by WBSTAR |
|---|---|
| Master SPI | START_ADDR is sent to the flash device serially. |
| Master BPI | RS[1:0], A[28:00] |
RS[1:0] is controllable by
WBSTAR in BPI mode only. The START_ADDR field is only meaningful for the BPI and SPI
modes.
Notes relevant to the previous figure:
- All BPI pins, except the
CCLK,FCS_B, andD[03:00]pins, are multi-function I/Os. After configuration is finished (the DONE pins goes High), these pins become user I/Os and can be controlled by user logic to access flash for user data storage and programming. - In this example, RS[1:0] is set to
2'b11. During IPROG reconfiguration, theRS[1:0]pins override the external pull-up and pull-down resistors. You can specify anyRS[1:0]value in the WBSTAR register using BITSTREAM.CONFIG.REVISIONSELECT.