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.