Title: Generating Random Numbers in Hardware
1Generating Random Numbers in Hardware
2- Two types of random numbers used in computing
- --true random numbers
- generated from a physical source
- (e.g., clock)
- sequence cannot be repeated
- may not pass mathematical randomness tests
- --pseudorandom numbers
- generated from a well-defined procedure
- repeatable (good for debugging, e.g.)
- initial value usually chosen by user (seed)
- may not give good random behavior
- Projects we want to use pseudorandom numbers
3Two common methods used to generate pseudorandom
numbers in hardware --LFSR (linear feedback
shift register) --CA (Cellular automata)
4LFSR (Linear feedback shift register) Based on
polynomials over a finite field Simplest field
Z2 elements 0, 1 addition 0 0 0
0 1 1 0 1 1 1 0 multiplication 0
0 0 0 1 1 0 0 1 1 1 (note in
Z4 with elements 0,1,2,3 we have 2 2 0its
NOT a field!!!)
5- Linear Feedback Shift Register (LFSR)
- sequential shift register with combinational
logic - feedback provided by selection of points called
taps
6Need to use specific LFSR configuration to get
full cycle Need to use a primitive
polynomial to generate the entire multiplicative
group (i.e., all 2n 1 nonzero elements of the
field of polynomials of degree n-1 with
coefficients in Z2, whose elements can be
represented by n-bit numbers)
7Example suppose we have 3-bit numbers c3c2c1
representing c3x2 c2x c1 Field elements
000 , 001, 010, 011, 100, 101, 110, 111 Seed
001 taps 3,2 (count bits as 3,2,1) Shift
left, low order bit is xor of taps 001, 010,
101, 011, 111, 110, 100, 001, .
8 Example N 32 Taps 32, 22, 2, 1 For
each n, there is at least one such primitive
polynomial (result from math)
9Bit 8
Bit 1
Example random number generator for n
8 8-bit shift register (shifts left) Load with
SEED which is any nonzero number shift in XOR of
the specified bits (8, 6, 5, 4 for n
8) Generate all 255 (28 1) nonzero numbers in
random order, e.g. SEED10101000 gives
10101000, 01010001, 10100011, 01000110,
10How good are the random numbers
generated? Reference Shruthi Narayanan, M.S.
2005, ATI Technologies Hardware implementation of
genetic algorithm modules for intelligent
systems Conclusion use
multiple shift registers
Random numbers generated by one shift register
Random numbers generated by multiple shift
registers
1132-bit LFSR implemented by martin
Martin, P., An Analysis of Random Number
Generators for a Hardware Implementation of
Genetic Programming using FPGAs and Handel-C,
Technical Report, University of Essex, 2002.
12- Multiple Linear Feedback Shift Registers
- n LFSRs of length m are implemented
- one-bit from each LFSR is taken to form n-bit
random number
Martin, P., An Analysis of Random Number
Generators for a Hardware Implementation of
Genetic Programming using FPGAs and Handel-C,
Technical Report, University of Essex, 2002.
13- Another method use cellular automata to
generate pseudorandom numbers - 1-dimensional example center cell changes
according to the values in its neighbors rule
30, a Wolfram favorite - current pattern 111 110 101 100 011 010
001 000 - new state for center cell 0 0 0 1 1 1 1
0
Source http//en.wikipedia.org/wiki/Rule_30
14- Cellular Automata
- groups of cells, each cells life depends on its
neighbors - state of the cell in each cycle given by a set of
rules
Martin, P., An Analysis of Random Number
Generators for a Hardware Implementation of
Genetic Programming using FPGAs and Handel-C,
Technical Report, University of Essex, 2002 See
also . Harish Ramaswamy, An extended library of
hardware modules for genetic algorithms, with
applications to DNA sequence matching, MS, Univ.
of Cincinnati, 2008
15- LFSR involves global signal routing and hence
causes longer delays - Improvement Cellular Automata require local
routing only
16- Cellular Automata
- A 1D CA consists of a string of cells with 2
neighbors, left (West) and right (East) - At each time step, the value of a cell is given
by a rule. - A simple 1D CA based PRNG is obtained by applying
Rule 30, which is, - C(t1) (West(t) XOR (C(t) OR East(t)))
- A Multiple CA is obtained by combining several 1D
CAs in series
17Random Number Generator Contd.
- Results of Serial test on 1D CA (Single and
Multiple)
- Hybrid CA
- CA which makes use of a combination of rules is
known as Hybrid CA - Combination of Rule 90 and Rule 150 at
appropriate sites can yield maximum length cycles - Rule 90 C(i)(t1) C(i-1)(t) XOR C(i1)(t)
- Rule 150 C(i)(t1) C(i-1)(t) XOR C(i)(t) XOR
C(i1)(t)
Martin, P., An Analysis of Random Number
Generators for a Hardware Implementation of
Genetic Programming using FPGAs and Handel-C,
Technical Report, University of Essex, 2002.
18- Generating pseudorandom numbers on an altera
chip - a. Make your own generator, using n lfsrs or
cas, start each with a different seed - Use code from the altera cookbook
- http//www.altera.com/literature/manual/stx_cookbo
ok.pdf