InformAsic AB Utveckling av hårdvara och säkerhet för inbyggda system
  • Swedish
  • English
Home          Consulting          Products          Links          Press          About us          Contact
 
Products
Rule 30 Random Number Generator as Open Core Print

IP Core Rule 30 from Informasic is a high performance PRNG (pseudo random number generator) that is suitible for generating test data for FPGA accelerated verification, testing structures on chip, or to generate controlled random traffic. In addition the Core is requiring minimal resources from the hardware.


Cellular automaton
A cellular automaton is a discrete model consisting of a regular grid of cells, each in one of a finite number of states. Every cell has the same rule for updating, based on the values in this neighbourhood. Each time the rules are applied to the whole grid a new generation is created.

One such set of rules is Rule 30, published by Stephen Wolfram . These rules generate apparent randomness despite the lack of anything that could reasonably be considered random input. Expressed in a more mathematically manner; the rules create a chaotic, aperiodic behaviour of the cellular automaton. The cellular automaton could therefore be used as a random number generator.

Note. Even if Rule 30 is generating a good, rectangular random sequence it is however not a secure cryptograhic PRNG. Rule 30 should hence not be used for streaming crypto or key generation.

Implementation
Informasic's IP Core Rule 30 implements a one dimensional  cellular automaton where the ends are joined to a ring. The cellular automoton consists of 32 one bit cells that let the automoton generate a 32 bit word each cycle.

The design has been implemented in an Altera Cyclone II FPGA. The design requires 32 registers and 64 LE:s. The maximal internal clock frequency is slightly above 400 MHz and provides a PRNG bandwith of 1.6 GByte/s.

The Rule 30 Core includes RTL code in Verilog 2001, documentation, test bench, and a script file to simulate the design using the open source Verilog simulator, Icarus Verilog.

License
The License for using the Rule 30 core is the Two Clause BSD Licence found below.

Click HERE to download the Rule 30 Core


File information
Release: 2008-10-17
Name: Rule 30_2008-10-17.tgz
Size: 10612 Bytes
SHA1(Rule 30_2008-10-17.tgz)= dba4425c96107a71f0933d2b389e5f01801c5c7f

Two Clause BSD License

<quote>
// Copyright (c) 2008, InformAsic AB
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//
//     * Redistributions in binary form must reproduce the above
//       copyright notice, this list of conditions and the following
//       disclaimer in the documentation and/or other materials
//       provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY InformAsic AB ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INFORMASIC AB BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</quote> 
 
© InformAsic AB    ·    Hugo Grauers Gata 3B    ·    SE-411 33 Göteborg    ·    Sweden    ·    +46 31 685490    ·    info@informasic.se