analyze-hw Example - 2025.2 English - UG908

Vivado Design Suite User Guide: Programming and Debugging (UG908)

Document ID
UG908
Release Date
2025-11-20
Version
2025.2 English

In this example, pdi_dbg_util connects to host "myhost" to analyze a Versal device in situ. Before running the subcommand analyze-hw, the target index must be determined. To determine the target index, we first run the following command:

pdi_dbg_util list-targets -u TCP:myhost:3121

Running this command shows all the targets on the system. The output is similar to the following:

Targets available on hardware server TCP:myhost:3121 :
 
 Index    Device                   JTAG Target
-------  --------  -------------------------------------------
   0     xcvm1802  jsn-VMK180 FT4232H-421952113768A-04caa093-0

The output indicates that the xcvm1802 device is located at target index 0. In the case of longer JTAG scan chains, all detected devices on the chain are displayed. This information passes in the target index of the analyze-hw subcommand.

Below is an example of the analyze-hw subcommand. For this example, the design has been configured with a PDI intended for the xcvc1902 device. However, in this example, it is anticipated to fail as the part on the board is xcvm1802. In this scenario, the "-t" flag is set with a value of 0.

It is noteworthy that for this specific JTAG chain, the "-t" option can be omitted because the default target index value is 0. Nevertheless, it was incorporated to showcase the use of the target index option.

pdi_dbg_util analyze-hw -p design_top.pdi -t 0 -u TCP:myhost:3121

This command produces output similar to the following:

Analyzing Error Status....
 
No Errors found for rom
PLM Major Error: 0x0326
--------------------------------------------------
Name: XLOADER_ERR_GEN_IDCODE
Description: Error if Vivado configured part (IDCODE) mismatches with the actual part
 
PLM Minor Error: 0x0014
--------------------------------------------------
Name: XLOADER_ERR_IDCODE
Description: IDCODE mismatch

As shown, the analyze-hw subcommand requires no details about the target device. This is because the analyze-hw subcommand automatically detects the device details based on the selected target index. Additionally, the subcommand takes care of reading the log and providing additional status information, so you do not need to supply a log directly. If more details were required to analyze this type of error, the command displays additional register information related to the issue.