Generating Random Numbers in Hardware - PowerPoint PPT Presentation

About This Presentation
Title:

Generating Random Numbers in Hardware

Description:

An Analysis of Random Number Generators for a Hardware Implementation of Genetic Programming using ... matching, MS, Univ. of ... Automata A 1D CA consists of a ... – PowerPoint PPT presentation

Number of Views:87
Avg rating:3.0/5.0
Slides: 19
Provided by: rama127
Learn more at: https://eecs.ceas.uc.edu
Category:

less

Transcript and Presenter's Notes

Title: Generating Random Numbers in Hardware


1
Generating 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

3
Two common methods used to generate pseudorandom
numbers in hardware --LFSR (linear feedback
shift register) --CA (Cellular automata)
4
LFSR (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

6
Need 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)
7
Example 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)
9
Bit 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,
10
How 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
11
  • Serial Test Results

32-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

17
Random 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
Write a Comment
User Comments (0)
About PowerShow.com