Skip to content

Instantly share code, notes, and snippets.

@kylemanna
Last active May 10, 2023 13:59
Show Gist options
  • Save kylemanna/d177fd0d562f23d419553689252ceab7 to your computer and use it in GitHub Desktop.
Save kylemanna/d177fd0d562f23d419553689252ceab7 to your computer and use it in GitHub Desktop.
Xilinx Get EFUSE DNA Device ID: vivado -mode batch -source get_dna.tcl

Vivado UI

Vivado UI

Command Line

From command line: vivado -mode batch -source get_dna.tcl

Verilog Primitive

Verilog primitive:

0x006845824BD10854

# set default hw_server connection
set HW_SERVER localhost:3121
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
}
****** Vivado v2016.4 (64-bit)
**** SW Build 1756540 on Mon Jan 23 19:11:19 MST 2017
**** IP Build 1755317 on Mon Jan 23 20:30:07 MST 2017
** Copyright 1986-2016 Xilinx, Inc. All Rights Reserved.
source get_dna.tcl
# set HW_SERVER localhost:3121
# open_hw
# if {[llength [get_hw_servers]] == 0 } then {
# connect_hw_server -quiet -url $HW_SERVER
# set disconnect_en 1
# }
WARNING: [Labtoolstcl 44-132] No matching hw_servers were found.
# refresh_hw_server -quiet
# foreach TARGET [get_hw_targets] {
# if { [get_property IS_OPENED $TARGET] } then {
# close_hw_target -quiet $TARGET
# }
# }
# 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
# }
FPGA DNA: localhost:3121/xilinx_tcf/Xilinx/00001865ea7201=>xc7z020_1 = DNA(hex)=3A108BD241B94027
# if {$disconnect_en == 1 } {
# disconnect_hw_server -quiet
# }
INFO: [Common 17-206] Exiting Vivado at Wed Jun 21 19:11:10 2017...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment