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

How can I read the device-DNA from my FPGA using Vivado?

Description

How can I read the device-DNA from my FPGA using Vivado?

Solution

Note: Use of Vivado 2015.3 or newer is recommended.

Vivado:

Open the Vivado hardware manager.

Click on the device.

Open the properties window -> properties tab, and expand the EFUSE property.

FUSE_DNA is the device-DNA of the FPGA:


 

Batch Mode:

For batch mode, the following Tcl commands can be used:

# set default hw_server connection
set HW_SERVER <server name>:<port number>

open_hw
if {[llength [get_hw_servers]] == 0 } then {
  connect_hw_server -quiet -url $HW_SERVER
  set disconnect_en 1
}

# update list of targets
refresh_hw_server -quiet

# close open targets
foreach TARGET [get_hw_targets] {
  if { [get_property IS_OPENED $TARGET] } then {
    close_hw_target -quiet $TARGET
  }
}

# loop for all open targets and get DNA values for all programmable FPGAs
foreach TARGET [get_hw_targets] {
  open_hw_target -quiet $TARGET
  refresh_hw_target -quiet $TARGET
  foreach DEVICE [get_hw_devices] {
    refresh_hw_device -quiet $DEVICE
    if { [get_property PROGRAM.IS_SUPPORTED $DEVICE] } then {
      set DNA_HEX [get_property REGISTER.EFUSE.FUSE_DNA $DEVICE]
      puts "FPGA DNA: $TARGET=>$DEVICE = DNA(hex)=$DNA_HEX"
    }
  }
  close_hw_target -quiet $TARGET
}

if {$disconnect_en == 1 } {
  disconnect_hw_server -quiet
}

AR# 64178
Date Created 04/07/2015
Last Updated 07/01/2016
Status Active
Type General Article
Tools
  • Vivado Design Suite