
This project implements a programmable double-scroll chaotic random number generator (RNG) based on a nonlinear chaotic map.
The design consists of three coupled 32-bit state variables:
At every clock cycle, the internal states are updated using arithmetic feedback equations and nonlinear functions. The nonlinear behavior is generated by the func module, which transforms the upper bits of the state variables using programmable control parameters.
The system produces chaotic behavior similar to double-scroll attractor systems commonly used in nonlinear dynamics and hardware random number generation.
The parameters of the chaotic function are partially programmable:
Lx[3:0] and Ux[2:0] are configured using ui_inLy[3:0] and Uy[2:0] are configured using uio_in| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | rng_en[0] | Random bit 0 | Ly[0] |
| 1 | rng_en[1] | Random bit 1 | Ly[1] |
| 2 | rng_en[2] | Random bit 2 | Ly[2] |
| 3 | rng_en[3] | Random bit 3 | Ly[3] |
| 4 | Lx[0] | Random bit 4 | Lz[0] |
| 5 | Lx[1] | Random bit 5 | Lz[1] |
| 6 | Lx[2] | Random bit 6 | Lz[2] |
| 7 | Lx[3] | Random bit 7 | Lz[3] |