Presentation is loading. Please wait.

Presentation is loading. Please wait.

Random Number Generator (RNG) for Microcontrollers Tom Dickens The Boeing Company

Similar presentations


Presentation on theme: "Random Number Generator (RNG) for Microcontrollers Tom Dickens The Boeing Company"— Presentation transcript:

1 Random Number Generator (RNG) for Microcontrollers Tom Dickens The Boeing Company

2 Tom Dickens Introduction RNG Wisdom Motivation for an RNG Other RNG Methods Requirements for a Good RNG Approaches Taken Testing Implementation Summary

3 Tom Dickens RNG Wisdom… Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. John von Neumann ( ). The generation of random numbers is too important to be left to chance. Robert R. Coveyou, Oak Ridge National Laboratory in Tennessee.

4 Tom Dickens Motivation For An RNG For Microcontrollers More Interesting Robotic Behavior Avoid Stuck-In-A-Corner Logic Used In AI Techniques –Genetic Algorithms –Neural Networks –Fuzzy Logic

5 Tom Dickens Other RNG Methods Hardware-Based (true) RNGs –White-Noise Source –Transistor Circuits Our desire is to have a pseudo random number generator, as defined by…

6 Tom Dickens Requirements - a Good RNG Key Requirements (detailed list in paper). –N = F(), where… –N is in the range 0 to 255 –Large cycle of Ns before pattern repeats. –All values of N are generated the same number of times in the cycle. –Windows of consecutive Ns in cycle meet… Constraints for Average, Min, and Max values. –Small Code Size

7 Tom Dickens Approaches Taken Table-Based Method –Define a table of 128 values. –Use EXOR to generate 128 other values. –Cycle through these 256 values 64 different ways. –Cycle length of 16,384. –Met the goodness criteria. –62 bytes of code bytes for table = 190 total bytes. 4 bytes of RAM.

8 Tom Dickens Approaches Taken Equation-Based Method –2-byte seed value in RAM –seed = 181 * seed –Return top 8 bits of seed. –Cycle length of 65,536. –Met the goodness criteria. –25 bytes of code, 4 bytes of RAM.

9 Tom Dickens Approaches Taken Notes: 181 and 359 determined by a program searching for values to meet the goodness criteria. Table method also used a program to find right 128 table values.

10 Tom Dickens Generated Numbers First 240 numbers:

11 Tom Dickens Testing The Numbers Met The Defined Goodness Criteria Inspection Graphical Plots –Plot number pairs on 256x256 grid.

12 Tom Dickens Testing 1024 pairs plotted

13 Tom Dickens Testing Half the pairs plotted

14 Tom Dickens Testing All pairs plotted

15 Tom Dickens Testing All pairs with another set of constants

16 Tom Dickens Implementation – 25 Bytes of 68HC11 Code Random: PSHB; (1,3) Remember the current value of B * scratch = seed * multiplier LDAA#MULTIPLIER; (2,2) A = #181 LDABSEED_LOW; (2,3) B = the low byte of the seed MUL; (1,10) D = A x B STDRandomScratch; (1,4) scratch = D LDAA#MULTIPLIER; (2,2) A = #181 LDABSEED_HIGH; (2,3) B = the high byte of the seed MUL; (1,10) D = A x B * low byte of MUL result is added to the high byte of scratch ADDBRandomScratch; (2,3) B = B + scratch_high STABRandomScratch; (2,3) scratch = seed * 181 * LDDRandomScratch; (2,4) D = scratch ADDD#ADDER; (3,4) D = D STDRandomSeed; (2,4) remember new seed value * (A = SEED_HIGH from ADDD instruction) PULB; (1,4) Restore the value of B RTS; (1,5) A holds the new 8-bit random number

17 Tom Dickens Summary RNG Studied RNG Goodness Criteria Developed Two RNG Methods Developed Both Methods Were Critiqued Equation-Based RNG Chosen For Number Coverage and Code Size 68HC11 Code Implemented and Tested


Download ppt "Random Number Generator (RNG) for Microcontrollers Tom Dickens The Boeing Company"

Similar presentations


Ads by Google