AR# 61067


2014.2 - Vivado Device Programmer - SPI Quad Enable bit not being set properly for SPIx4/x8


All non-Micron SPI flash devices capable of x4/x8 operation fail to correctly configure 7 Series and UltraScale FPGAs if using the 2014.1/2014.2 versions of Vivado Device Programmer.


This is due to a Software issue, the Quad Enable bit is not being set properly.

Note: This only affects bitstreams made specifically for SPIx4 or SPIx8 programming.

A bitstream for SPIx1 or SPIx2 will boot the FPGA properly.

SPI Flashes Affected:


  • S25FL032
  • S25FL064
  • S25FL064K
  • S25FL164K
  • S25FL128SXXX0
  • S25FL128SXXX1
  • S25FL256SXXX0
  • S25FL256SXXX1
  • S25FL512S


Please follow these steps:
  1. Perform the SPI x4/x8 Indirect programming sequence as you normally would.

  2. Run the attached prog_spi_quad_enable.tcl script, following these steps:

    1. In the Vivado Tcl console, type "refresh_hw_device [lindex [get_hw_devices] 0]"
    2. Run "current_hw_core [lindex [get_hw_core] 0]"
    3. Source the script
    4. Run "xspi_set_spi_clk"
    5. Run "xspi_read_id" to read the device ID (To verify connections between the FPGA and SPI device)
    6. Run "xspi_read_statregs" to read status and configuration registers
    7. Run "xspi_prog_quad_enable 1" to program the config register quad enable bit.  (Run "xspi_prog_quad_enable 0" to clear quad enable bit)
    8. Run "xspi_read_statregs" to read the status and updated configuration register values.


  3. Boot the Device by selecting Boot Device (boot_hw_device [lindex [get_hw_devices] 0]) or by pulsing the PROG pin.


This issue is addressed and fixed in the 2015.1 version of the tools.


Associated Attachments

Name File Size File Type
prog_spi_quad_enable.tcl 23 KB TCL
AR# 61067
Date 12/07/2015
Status Active
Type General Article
Devices More Less
People Also Viewed