OpenCores

Project maintainers

Details

Name: ca_prng
Created: Aug 13, 2009
Updated: Dec 20, 2009
SVN Updated: Aug 19, 2009
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star1you like it: star it!

Other project properties

Category:Arithmetic core
Language:Verilog
Development status:Stable
Additional info:Design done, FPGA proven, Specification done
WishBone compliant: No
WishBone version: n/a
License: BSD

Introduction

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.