Download presentation

Presentation is loading. Please wait.

Published byKatherine Egan Modified over 4 years ago

1
**Random Number Generator (RNG) for Microcontrollers**

Tom Dickens The Boeing Company

2
**Introduction RNG Wisdom Motivation for an RNG Other RNG Methods**

Requirements for a “Good” RNG Approaches Taken Testing Implementation Summary Tom Dickens

3
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. Tom Dickens

4
**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 Tom Dickens

5
**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… Tom Dickens

6
**Requirements - a “Good” RNG**

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

7
**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. Tom Dickens

8
**Approaches Taken Equation-Based Method 2-byte seed value in RAM**

seed = 181 * seed + 359 Return top 8 bits of seed. Cycle length of 65,536. Met the goodness criteria. 25 bytes of code, 4 bytes of RAM. Tom Dickens

9
**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. Tom Dickens

10
**Generated Numbers First 240 numbers:**

Tom Dickens

11
**Testing The Numbers Met The Defined Goodness Criteria Inspection**

Graphical Plots Plot number pairs on 256x256 grid. Tom Dickens

12
Testing 1024 pairs plotted Tom Dickens

13
Testing Half the pairs plotted Tom Dickens

14
Testing All pairs plotted Tom Dickens

15
Testing All pairs with another set of constants Tom Dickens

16
**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 LDAB SEED_LOW ; (2,3) B = the low byte of the seed MUL ; (1,10) D = A x B STD RandomScratch ; (1,4) scratch = D LDAB SEED_HIGH ; (2,3) B = the high byte of the seed * low byte of MUL result is added to the high byte of scratch ADDB RandomScratch ; (2,3) B = B + scratch_high STAB RandomScratch ; (2,3) scratch = seed * 181 * LDD RandomScratch ; (2,4) D = scratch ADDD #ADDER ; (3,4) D = D + 359 STD RandomSeed ; (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 Tom Dickens

17
**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 Tom Dickens

Similar presentations

Presentation is loading. Please wait....

OK

Before Between After.

Before Between After.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google