UPGRADE YOUR BROWSER

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?

Description

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 DONE_pin (CONFIG_STATUS bit 14 = 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.

Solution

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 Created 06/28/2016
Last Updated 07/13/2016
Status Active
Type General Article
Tools
  • Vivado Design Suite - 2016.1