UltraScale
architecture-based FPGAs introduce a master SPI x8 configuration width that uses two identical
x4 SPI flash devices connected in a parallel fashion as shown in the following figure. The
clock, CCLK, is common for both flash devices with the select and data pins
being separate, but identically driven when x8 mode is used.
Notes relevant to the previous figure:
- The
DONEpin is by default an open-drain output. See Configuration Pin Definitions for DONE signal details. - The
INIT_Bpin is a bidirectional, open-drain pin. An external pull-up resistor is required. -
CCLKsignal integrity is critical. - Daisy-chaining is not supported for x2, x4, or x8 master SPI configuration modes.
- A series resistor should be considered for the datapath from the flash to the FPGA to minimize overshoot. The proper resistor value can be determined from simulation.
- The FPGA VCCO_0 supply must be compatible with the VCC for the I/O of the flash.
- Data is clocked out of the flash on the
CCLKfalling edge and clocked in on the FPGA on the rising edge, unless negative edge clocking is enabled in the Vivado Configuration Dialog. - The
CCLKfrequency is adjusted by theConfiguration Rateoption if the source is the internal oscillator. Alternatively, theEnable External Configuration Clockoption can switch theCCLKto source from theEMCCLKpin to use an external clock source. - The FPGA
PUDC_Bpin is tied to GND to enable internal pull-ups or it can be tied to VCCO_0 to 3-state the SelectIOpins after power-up and during configuration. See Configuration Pin Definitions forPUDC_Bsignal details.
To generate a bitstream for x8 SPI mode, the
bitstream should be generated with the property CONFIG_MODE to SPIx8. For x8 SPI
configuration, the primary flash must contain the initial portion of a configuration bitstream
that includes the x8 SPI configuration command. When the FPGA reads in this command, it will
issue either Quad Output Fast Read (6Bh) or Quad Output Fast Read, 32-bit
address (6Ch) simultaneously to both the primary and secondary flash
memories. The secondary flash should contain dummy information that is equal in size to the
initial portion of the bitstream in the primary flash. Beginning at the next address after the
initial portion of the bitstream in the primary flash and after the dummy data in the
secondary flash, the configuration bitstream is split evenly between the flash devices
beginning with the first four bits in the primary flash and the next four bits in the
secondary flash. The entire configuration bitstream will then be split between the two flash
devices with the least significant nibble of each byte in the primary flash and the most
significant nibble at the same address in the secondary flash.
The x8 SPI master configuration mode requires that the flash devices be identical and identically configured. For example, some flash devices have programmable latency or dummy cycles via nonvolatile configuration bits that might need to be set to allow high clock rates for the read commands. The latency cycles must be the same between the primary and secondary flash devices to maintain bit alignment.