We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 67463

Vivado Hardware Manager - What is the DONE status after loading an Indirect programing design bit file?


Because the DONE = KEEP bitstream option is set in the SPI/BPI .cor designs, the internal done signal (CONFIG_STATUS bit 13) does not drive high.

The startup state machine just moves on without asserting the internal DONE (DONE_INTERNAL_SIGNAL_STATUS bit 13 = 0).

If you have an external pull-up on the DONE pin on your board you will see DONE_PIN (CONFIG_STATUS bit 14) high.


Below is an example BOOTSTS and STATUS register read after a .cor file design is loaded into the FPGA via JTAG.

The Indirect Programming .cor bit files are located in a ZIP file at the following location:

<Xilinx install>\Vivado\2016.2\data\xicom\cfgmem

Unzip the bitfile.zip to create the bitfile folder.

INFO: [Labtools 27-2302] Device xcvu190 (JTAG device index = 0) is programmed with a design that has 1 SPI core(s).



report_property [current_hw_device] -regexp REGISTER.BOOT_STATUS.*
Property                                                                                                                                     Type     Read-only          Value
REGISTER.BOOT_STATUS                                                                                                  string        true               00000000000000000000000000000001
REGISTER.BOOT_STATUS.BIT00_0_STATUS_VALID                                                   string        true               1
REGISTER.BOOT_STATUS.BIT01_0_FALLBACK                                                           string         true               0
REGISTER.BOOT_STATUS.BIT02_0_INTERNAL_PROG                                             string         true               0
REGISTER.BOOT_STATUS.BIT03_0_WATCHDOG_TIMEOUT_ERROR                   string         true               0
REGISTER.BOOT_STATUS.BIT04_0_ID_ERROR                                                          string         true               0
REGISTER.BOOT_STATUS.BIT05_0_CRC_ERROR                                                     string         true               0
REGISTER.BOOT_STATUS.BIT06_0_WRAP_ERROR                                                   string        true               0
REGISTER.BOOT_STATUS.BIT07_0_SECURITY_ERROR                                           string        true               0
REGISTER.BOOT_STATUS.BIT08_1_STATUS_VALID                                                   string        true               0
REGISTER.BOOT_STATUS.BIT09_1_FALLBACK                                                           string        true                0
REGISTER.BOOT_STATUS.BIT10_1_INTERNAL_PROG                                             string         true               0
REGISTER.BOOT_STATUS.BIT11_1_WATCHDOG_TIMEOUT_ERROR                   string         true               0
REGISTER.BOOT_STATUS.BIT12_1_ID_ERROR                                                         string          true               0
REGISTER.BOOT_STATUS.BIT13_1_CRC_ERROR                                                    string          true               0
REGISTER.BOOT_STATUS.BIT14_1_WRAP_ERROR                                                  string         true               0
REGISTER.BOOT_STATUS.BIT15_1_SECURITY_ERROR                                         string          true               0
REGISTER.BOOT_STATUS.BIT16_RESERVED                                                             string          true              0000000000000000

report_property [current_hw_device] -regexp REGISTER.CONFIG_STATUS.*
Property                                                                                                                                                        Type        Read-only         Value
REGISTER.CONFIG_STATUS                                                                                                                 string           true                   00000000100100000101100111111100
REGISTER.CONFIG_STATUS.BIT00_CRC_ERROR                                                                         string           true                   0
REGISTER.CONFIG_STATUS.BIT01_DECRYPTOR_ENABLE                                                        string           true                   0
REGISTER.CONFIG_STATUS.BIT02_PLL_LOCK_STATUS                                                            string           true                    1
REGISTER.CONFIG_STATUS.BIT03_DCI_MATCH_STATUS                                                          string           true                   1
REGISTER.CONFIG_STATUS.BIT04_END_OF_STARTUP_(EOS)_STATUS                               string          true                    1
REGISTER.CONFIG_STATUS.BIT05_GTS_CFG_B_STATUS                                                         string           true                    1
REGISTER.CONFIG_STATUS.BIT06_GWE_STATUS                                                                       string            true                    1
REGISTER.CONFIG_STATUS.BIT07_GHIGH_STATUS                                                                   string            true                    1
REGISTER.CONFIG_STATUS.BIT08_MODE_PIN_M[0]                                                                   string            true                     1
REGISTER.CONFIG_STATUS.BIT09_MODE_PIN_M[1]                                                                   string            true                     0
REGISTER.CONFIG_STATUS.BIT10_MODE_PIN_M[2]                                                                   string            true                     0
REGISTER.CONFIG_STATUS.BIT11_INIT_B_INTERNAL_SIGNAL_STATUS                             string            true                    1
REGISTER.CONFIG_STATUS.BIT12_INIT_B_PIN                                                                            string            true                    1
REGISTER.CONFIG_STATUS.BIT13_DONE_INTERNAL_SIGNAL_STATUS                              string            true                    0
REGISTER.CONFIG_STATUS.BIT14_DONE_PIN                                                                             string            true                    1  -> Due to external pullup on board
REGISTER.CONFIG_STATUS.BIT15_IDCODE_ERROR                                                                 string            true                    0
REGISTER.CONFIG_STATUS.BIT16_SECURITY_ERROR                                                             string           true                     0
REGISTER.CONFIG_STATUS.BIT17_SYSTEM_MONITOR_OVER-TEMP_ALARM_STATUS   string            true                    0
REGISTER.CONFIG_STATUS.BIT18_CFG_STARTUP_STATE_MACHINE_PHASE                  string            true                    100
REGISTER.CONFIG_STATUS.BIT21_SECURITY_STATUS                                                            string            true                    100
REGISTER.CONFIG_STATUS.BIT24_RESERVED                                                                            string            true                    0
REGISTER.CONFIG_STATUS.BIT25_CFG_BUS_WIDTH_DETECTION                                      string            true                    00
REGISTER.CONFIG_STATUS.BIT27_SECURITY_AUTH_ERROR                                                string            true                    0
REGISTER.CONFIG_STATUS.BIT28_PUDC_B_PIN                                                                        string            true                    0
REGISTER.CONFIG_STATUS.BIT29_BAD_PACKET_ERROR                                                       string           true                     0
REGISTER.CONFIG_STATUS.BIT30_CFGBVS_PIN                                                                         string           true                     0
REGISTER.CONFIG_STATUS.BIT31_RESERVED                                                                            string           true                     0

Another way to confirm that the COR file design loaded is to use the refresh_hw_device command.

Vivado will report that it detected the BPI or SPI cores as in the following example:

INFO: [Labtools 27-2302] Device xcvu190 (JTAG device index = 0) is programmed with a design that has 1 SPI core(s).
refresh_hw_device [lindex [get_hw_devices] 0]

AR# 67463
Date 09/04/2017
Status Active
Type General Article
  • Vivado Design Suite - 2016.1
Page Bookmarked