cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
dagucas
Visitor
Visitor
4,162 Views
Registered: ‎08-26-2014

Device DNA uniqueness

Jump to solution

Hello all,

I've read in the ug470_7Series_Config document the following paragraph:

The 7 series FPGA contains an embedded, device identifier (device DNA). The identifier is nonvolatile, permanently programmed by Xilinx into the FPGA, and is unchangeable making it tamper resistant. Each device is programmed with a DNA value that is most often unique. However, up to 32 devices within the family can contain the same DNA value.

 

Does it means that this number maybe unique within a family but Xilinx doesn't guarantee it o are they really unique? In case DNAs are not unique, is it possible to have a track of them when you buy Zynq devices so that you can be sure that there are not two devices in our products sharing this DNA?

 

Thanks in advance!

 

0 Kudos
1 Solution

Accepted Solutions
austin
Scholar
Scholar
4,922 Views
Registered: ‎02-27-2008

d,

 

Contact your local Xilinx distributor or sales office to discuss custom screen requests.  If the volume is there, then that may be considered.


There is also a customer use, unprogrammed set of efuses that you could use to uniquefy the DNA (use an addition set of efuses programmed at a hash+n of the part -- read the dna, calculate a has, and a rolling value incremented for each part, regardless of the DNA value...)

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose

View solution in original post

0 Kudos
12 Replies
austin
Scholar
Scholar
4,923 Views
Registered: ‎02-27-2008

d,

 

Contact your local Xilinx distributor or sales office to discuss custom screen requests.  If the volume is there, then that may be considered.


There is also a customer use, unprogrammed set of efuses that you could use to uniquefy the DNA (use an addition set of efuses programmed at a hash+n of the part -- read the dna, calculate a has, and a rolling value incremented for each part, regardless of the DNA value...)

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose

View solution in original post

0 Kudos
tim_severance
Scholar
Scholar
1,857 Views
Registered: ‎03-03-2017

Wow, I just got a batch of Kintex 7 xc7k160tffg676-1 devices and have found 2 so far with the same device DNA value.   I didn't think this was possible.   I could use some help in another way to uniquely identify these fpgas.

 

Thanks.

Tim

0 Kudos
lowearthorbit
Scholar
Scholar
1,846 Views
Registered: ‎09-17-2018

Well,

Untill you use the other user efuses as suggested, you could just not use the part with the duplicate DNA.  Not an elegant solution, and not free (as you lose the use of a device), but certainly quick to implement, and simple.

Out of curiousity, how many devices were delivered that resulted in two identical DNA codes?  The whole problem with anything like this is what I refer to as the tyrany of small numbers - too few samples and the statistics are meanigless.  But even one datapoint is useful to establish a bound.

l.e.o.

0 Kudos
tim_severance
Scholar
Scholar
1,842 Views
Registered: ‎03-03-2017

I am in the process of getting them programmed now and I have found 2 so far. 

I wasn’t aware of the user efuse bits.   I like the idea of using these.   What I can’t seem to find through google is how to access these fuse bits in RTL so I can read it back when the fpga is configured and in the field.  

Do you know how to do this?

Thanks

Tim

0 Kudos
tim_severance
Scholar
Scholar
1,835 Views
Registered: ‎03-03-2017

Oh wait, I see that there are 8 LSB bits that are different between the FPGAs, but in my RTL where I use a DNA_PORT instance to read the device DNA I don't seem to have access to those bits.   I think I remember reading about this issue when I first developed a way to read the device DNA values.

0 Kudos
lowearthorbit
Scholar
Scholar
1,832 Views
Registered: ‎09-17-2018

ug470 and,

Fuse_user, page 311 of ug953

l.e.o.

0 Kudos
tim_severance
Scholar
Scholar
1,828 Views
Registered: ‎03-03-2017

@lowearthorbit ,

   Thanks, I see.

   Out of curiosity have you ever found a way to read the last 7 LSBs of the device DNA during run-time (i.e. without using JTAG)?   Or is this not allowed?

Thanks.

Tim

0 Kudos
lowearthorbit
Scholar
Scholar
1,826 Views
Registered: ‎09-17-2018

Not supported is more accurate,

So basically, no, I have not.

l.e.o.

 

0 Kudos
tim_severance
Scholar
Scholar
1,813 Views
Registered: ‎03-03-2017

I see thanks.

Just to let you know, 8 out of 12 FPGAs are not unique for these 57 bits.   Seems like this should not have happened.

Tim

0 Kudos
lowearthorbit
Scholar
Scholar
1,810 Views
Registered: ‎09-17-2018

I think you should file a service request,

Sounds like a failure to process these devices properly.  Of course, Xilinx has an out, based on their official response (it is not guaranteed to be unique), but the code is supposed to identify the lot, wafer, xy die, as well as other information.  Looks like these devices would not be traceable, and that should bother Xilinx.

(as a customer, it sure bothers me)

l.e.o.

 

0 Kudos
tim_severance
Scholar
Scholar
1,333 Views
Registered: ‎03-03-2017

Interestingly we just got in a batch of 25 boards that each have a XC7A75TFGG676 device on them, and I am seeing full on all 64 bits being the same between various FPGAs.   I thought this for sure wasn't supposed to be possible.

0 Kudos
tim_severance
Scholar
Scholar
1,331 Views
Registered: ‎03-03-2017

Disregard that, I was looking at DNA_PORT, not FUSE_DNA.

0 Kudos