cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Participant
Participant
8,128 Views
Registered: ‎02-08-2016

True random number generator logic problem on Kintex - 7

I am trying to generate TRUE RANDOM numbers on Kintex-7. I am following the paper published by Xilinx, where a ring oscillator is used for random number generation and LHCA has been used as a scrambler.

 

BUT, whenever I capture 11 Mega bytes of data (True Random Numbers) and pass them through the DIE HARD TESTING software, then every time the following 3 tests fail :

1. THE BITSTREAM TEST

2. OPSO (Overlapping-Pairs-Sparse-Occupancy)

3. COUNT-THE-1's TEST on a stream of bytes

 

What am I doing wrong. Xilinx suggested that by sampling the data on 125Mhz, All 15 DIE HARD tests got passed.

I am sampling the data on 100 Mhz with 8-bit LHCA.

Attached is the paper by Xilinx that I am following.

0 Kudos
3 Replies
Highlighted
Teacher
Teacher
8,089 Views
Registered: ‎03-31-2012

The original test was done on a XC2VP7-6 Virtex2Pro chip. You need to understand why the first test at 500 MHz failed to pass 3 and why sampling it at 125 MHz made it pass all. These values are most probably related to the process of the chip. Kintex-7 chips are significantly faster. Try different sampling frequencies and a wider LHCA.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Highlighted
Scholar
Scholar
8,057 Views
Registered: ‎02-27-2008

gt,

 

As noted, the speed of the sampling must be (much) less than the intrinsic speed of the cross-coupled XOR's.  At the time, in this now ancient product, 125 MHz was pretty fast.

 

The interconnect delay dominates, so even with the latest devices, I believe the speed of operation may only be doubled.

 

If you need more random bits per second, I would create ten, or even 100 generators, all running at 100 MHz sampling.  In this fashion, the random bits per second are nearly unlimited.

 

Also, 'failing' a test may not be a bad thing.  True random numbers are just that:  truly random.  Any sample set may fail one or more tests, but on a new sample it should not always fail that test.

 

Adding the LFSR to the generator as described in the paper does create a more perfect 1's vs. 0's ratio.

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Highlighted
1,323 Views
Registered: ‎05-18-2018

I've implemented this TRNG on Zedboard as 32-bit generator without scrambler and despite of 100MHz sampling got much worse results: 88 tests failed, 2 weak and 24 passed.

What can be a reason of such a poor performance?

0 Kudos