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

2015.1 - How does Vivado display the 7 Series/Zynq FUSE_DNA and DNA_PORT values and how do I align these to the DNA_PORT Simulation results?

Description

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:

FUSE_DNA [63:0] = 0x200C340680010A15

    2         0         0         C     3         4         0        6       8        0        0       1          0       A       1       5

 0010 0000 0000 1100 0011 0100 0000 0110 1000 0000 0000 0001 0000 1010 0001 0101

63-----------------------------------------------------------------------------------------------------------------------0

Chopping off the 7 LSB bits: (DNA_PORT [0:56] is subset of FUSE_DNA[63:7])
0010 0000 0000 1100 0011 0100 0000 0110 1000 0000 0000 0001 0000 1010 0    //001 0101

63---------------------------------------------------------------------------------------------------------7      6-----------0

Realigning with the 7 LSB bits chopped off results in: (realignment from LSB:MSB)
0      4      0         1         8       6        8       0         D     0          0       0         2       1        4
0 0100 0000 0001 1000 0110 1000 0000 1101 0000 0000 0000 0010 0001 0100
0-----------------------------------------------------------------------------------------------------------56

DNA_PORT  [0:56] = 0x04018680D000214

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:

parameter [56:0] SIM_DNA_VALUE = 57'h0;


Given that Vivado displays the DNA_PORT value [LSB:MSB] and the simulation model requires [MSB:LSB] you have to swap the binary values and regroup them making the 57th bit the standalone MSB bit.

For Example: (Using same values from above)

LSB:MSB - > 2015.1 Vivado HW manager currently displays:

[0:56]
xxx0 0100 0000 0001 1000 0110 1000 0000 1101 0000 0000 0000 0010 0001 0100
0x04018680D000214


2015.1 DNA_PORT Sim model requires you enter the SIM_DNA_VALUE as MSB:LSB

MSB:LSB translation is:

[56:0]
0010 1000 0100 0000 0000 0000 1011 0000 0001 0110 0001 1000 0000 0010 0xxx


Regrouping binary to make bit 57 the standalone bit you get the following:

xxx0 0101 0000 1000 0000 0000 0001 0110 0000 0010 1100 0011 0000 0000 0100
0x0508001602C3004

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)




Solution

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]

AR# 64847
Date Created 06/24/2015
Last Updated 07/08/2015
Status Active
Type General Article
Devices
  • Artix-7
  • Kintex-7
  • Virtex-7
  • Zynq-7000
Tools
  • Vivado Design Suite - 2015.1