A cellular automata (CA) is a discrete model that consists of a grid (1D, 2D, 3D ) with objects called cells. Each cell can be in one of a given set of states (on and off, different colours etc). Each cell has a set of cells in close proximity (neighbours). Given the current internal state of a cell, the states of the neighbour cells and a given set of update rules the next state of a cell can be determined.
The ca_prng IP-core implements a 1D binary cellular automata with wrap around at the edges (i.e. a ring). The default update rule used in the ca_prng is rule30 discovered by Stephen Wolfram. Rule30 is an update rule that when applied to the CA will produce a class III, aperiodic, chaotic behaviour.
The ca_prng core is a fast, compact pattern generator capable of providing user selectable patterns at GByte/s speed. The ca_prng core is suitable for FPGA-accelerated verification, on-chip testing as well as for applications that needs random patterns or specific sets of patterns generated.
NOTE: The ca_prng is NOT a cryptographically strong PRNG and should not be used as a key generator or as a stream cipher.