SystemVerilog CA-based PRNG module
Implementention in SystemVerilog of CA-based PRNG.
Principle of operation of 1D cellular automaton can be found in Mathworld. Programmable CA-based PRNG with:
-
Configurable number of CA array
-
Configurable number of neighbors
-
Configurable CA rule (i.e. 'rule 30', 'rule 150', etc.)
-
Configurable pseudo random number width
-
Conceptual block diagram of a CA-based PRNG module:
The source files are located at the repository root:
- ARRAY_WIDTH : Width of the one-dimensional CA grid
- NEIGHBORHOOD : Number of neuighboring cells
- RULE : Cellular automaton rule
- N : Random number width
- LOCATION : Bit location for random number generation
I will be happy to answer any questions.
Approach me here using GitHub Issues or at tom.urkin@gmail.com