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# 61312

Vivado Hardware Manager 2016.2 and older tool versions - All 3rd party devices are not recognized in the JTAG chain

Description

If I have third party devices in the JTAG chain. 

How do I add the IDCODE, IR length, and name for the unknown devices in Vivado 2016.2 and older versions?

Solution

You will need to create a .csv file containing device properties, for example devices.csv.

The format is comma separated with two header rows, the first containing the name of each column and the second containing the type of each column.

For example:

idcode,mask,irlen,name
iiis
0x578315710x0FFFFFFF63rdparty_device

To load the custom device properties, copy the devices.csv file into your ..Xilinx/Vivado/2016.2/bin directory, and start hw_server in a separate CMD Prompt (Not using Vivado Tcl shell or from the Vivado Tcl console) using the following Tcl command:

hw_server -e "set device-info-file <file>.csv"

The order of entries in the .csv file does not correspond to the order of devices in the scan chain. 

You do not need to include the Xilinx devices in the CSV file. Just the non-Xilinx devices.

The .csv file adds entries into a table which maps the IDCODE to device properties.

The order of devices in a scan chain is determined by reading the IDCODE from the scan chain and then looking up the IDCODEs in the table to find the device properties, like IR length, etc.

Currently, we do not have a way to manually enumerate devices on a scan chain.

The main use case for this would be for devices that do not have an IDCODE.

The mask field specifies which bits of the IDCODE are significant for the table lookup.

The 4 most significant bits of the IDCODE are a version number and it is usually not needed for the table lookup, so the mask is typically 0x0fffffff, i.e. 268435455 decimal.

If all bits are significant then the mask should be 0xffffffff.

A working example .csv file is attached to this answer record.


Notes:
  • You MUST use Vivado 2014.2 and newer, previous versions will not accept the "-e" switch in the hw_server command.
  • In Vivado 2016.3 the .csv file is no longer needed
  • The .csv file preprocessor accepts comment characters like "#".
  • The .csv file is space sensitive, so any spaces between the commas will cause issues.
  • The IDCODE and MASK value have to be specified in hex, so 0x has to be included.
  • When opening in Microsoft Excel, also open in a Text Editor to make sure no quotes or spaces were mistakenly added to the file.
  • Devices that are not in your actual JTAG chain will not show up, the Hardware has to exist.
  • Non-Xilinx 3rd party devices will not show up in the JTAG chain without the use of the CSV file.

Attachments

Associated Attachments

Name File Size File Type
devices.csv 2 KB CSV
AR# 61312
Date Created 06/27/2014
Last Updated 11/02/2016
Status Active
Type General Article
Devices
  • Artix-7
  • Kintex-7
  • Virtex-7
Tools
  • Vivado Design Suite - 2014.2
  • Vivado Design Suite - 2014.3
  • Vivado Design Suite - 2014.4