Using the Command Line - 2025.1 English - UG908

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

Document ID
UG908
Release Date
2025-05-29
Version
2025.1 English

To create the chain using the Vivado Tcl mode or the Tcl Console in the Vivado IDE, perform sequential create_hw_device operations on an open STAPL target. For instance, to add an xcvc1902 part followed by an xcvu095 part, perform the following steps:

current_hw_target my_stapl_target
open_hw_target
create_hw_device -part xcvc1902
create_hw_device -part xcvu095 
refresh_hw_target
get_hw_devices

The first two steps can be skipped in this example if the STAPL is already created and opened. The create_hw_device commands in the example define the devices of the JTAG chain, starting with the first device on the chain and onward.

Note: The create_hw_device command only creates devices on an open STAPL hardware target.
Note: Devices can only be appended to an STAPL device chain.
To add user-defined devices to the chain, add the -idcode, -irlength, and -mask values and the part type name using the -part options. For instance, if you have a part called "my_part" with a JTAG idcode of 1234567, an ir length of 8, mask of ffffffff, create the device as follows:
open_hw_target [current_hw_target]
create_hw_device -idcode 01234567 -irlength 8 -mask ffffffff -part my_part
# print IR length for user defined devices
puts [get_property IR_LENGTH [lindex [get_hw_devices -filter {PART == my_part}] 0]]
puts $idcode_hex
close_hw_target
Note: The idcode for the create_hw_device should be a valid device ID code. Silicon vendors typically provide ID code values and IR lengths through device BSDL files.

To see a report of the target and its devices, run the report_hw_targets command. The report shows details for all active targets in the system. Use this report to obtain properties of the server, target, and device as follows:

report_hw_targets
INFO: Server Property Information: localhost:3121
	CLASS: hw_server
	HOST: localhost
	NAME: localhost:3121
	PORT: 3121
	SID: TCP:localhost:3121
INFO: Target Property Information: localhost:3121/xilinx_tcf/Xilinx/my_stapl_target
	CLASS: 	hw_target
	DEVICE_COUNT: 3
	HW_JTAG: 0
	IS_OPENED: 1
	MAX_DEVICE_COUNT: 32
	NAME: localhost:3121/xilinx_tcf/Xilinx/my_stapl_target
	FREQUENCY: 10000000
	TYPE: xilinx_tcf
	TID: jsn-XNC-my_stapl_target
	UID: Xilinx/my_stapl_target
	SVF: 0
	STAPL: 1
	Device: arm_dap_0
	Device: xcvc1902_1
	Device: xcvu095_2
INFO: Device Property Information: arm_dap_0
	CLASS: hw_device
	PART: arm_dap
	ID CODE: 01101011101000000000010001110111
	IR LENGTH: 4
	MASK: 0
	USER_CHAIN_COUNT: 0
	PROGRAMMING FILE: 
	PROBES FILE: 
	PROGRAMMING STATUS: 0
INFO: Device Property Information: xcvc1902_1
	CLASS: hw_device
	PART: xcvc1902
	ID CODE: 00010100110010101000000010010011
	IR LENGTH: 6
	MASK: 0
	USER_CHAIN_COUNT: 4
	PROGRAMMING FILE: 
	PROBES FILE: 
	PROGRAMMING STATUS: 0
INFO: Device Property Information: xcvu095_2
	CLASS: hw_device
	PART: xcvu095
	ID CODE: 01110011100001000010000010010011
	IR LENGTH: 6
	MASK: 0
	USER_CHAIN_COUNT: 4
	PROGRAMMING FILE: 
	PROBES FILE: 
	PROGRAMMING STATUS: 0
Note: Adding configuration memory part to devices is not supported in the STAPL chain.