Fuse_DNA is a 64 bit unique identifier in 7 Series and Zynq devices.
The DNA_PORT is a 57 bit value that can be shared with up to 32 devices.
The DNA_PORT is a sub-set of the FUSE_DNA value.
DNA_PORT [0:56] aligns to FUSE_DNA [63:7].
This means that bits 63,62,61...8,7 of FUSE_DNA aligns to bits 0,1, 2...55, 56 of the DNA_PORT.
Below is a visual example of how they align:
The 2015.1 Vivado Device Programmer displays these values with the following bit indices:
FUSE_DNA [63:0] -> [MSB:LSB]
DNA_PORT [0:56] -> [LSB:MSB]
Vivado GUI display
How do these values align with the DNA_PORT simulation model?
The DNA_PORT simulation model requires the SIM_DNA_VALUE to be defined MSB:LSB [56:0]
The following is from the DNA_PORT.v model:
LSB:MSB - > 2015.1 Vivado HW manager currently displays:
Enter in the regrouped MSB:LSB value of 0x0508001602C3004 as the SIM_DNA_VALUE and then run your DNA_PORT simulation.
You will get the following waveform, where DOUT matches the hex value (0x0508001602C3004)
Beginning in Vivado 2015.3, no manual manipulation of the Vivado displayed value will be required.
Vivado Device Programmer will display the regrouped MSB:LSB value that the Simulation model returns on the DOUT pin.
This displayed value will be the value needed for the SIM_DNA_VALUE parameter, which also matches the DNA_PORT value read via fabric through the use of the DNA_PORT primitive.
Please refer to the 7 series Configuration User Guide for additional details on DNA_PORT and FUSE DNA.
Vivado Device Programmer will also show the following bit indices when you hover over the value in the Device HW Properties window.
FUSE_DNA -> [63:0] [MSB:LSB]
DNA_PORT -> 56, [55:0] [MSB:LSB]