Chaos Automaton: An array of 'Chaos Cells' that pass data onto one another in a loop, allowing for modifications to the data based on inputs, while the entire snake of data can be read at once.

Clone this repo:


  1. 9a87fb9 final gds oasis by Jeff DiCorpo · 6 months ago main
  2. 1a71f77 Delete ChaosAutomatonPictures by Alex Goldstein · 7 months ago
  3. 4582df9 V2 wrapper made, 30x30 size by Alex Goldstein · 9 months ago
  4. ce3f76d Merge pull request #2 from AlexanderJGoldstein/simulations by Alex Goldstein · 9 months ago
  5. c4c82e6 Rewrote the top level verilog for a 30x30 array; moved the original by Tim Edwards · 9 months ago

Chaos Automaton (Caravel User Project)

License UPRJ_CI Caravel Build

:exclamation: Important Note

Please fill in your project documentation in this file

Refer to README for this sample project documentation.

The Chaos automaton

Digital design for Caravel (user_project_wrapper)

This chip is a pure asynchronous cellular automaton. Each cell has four inputs from N, S, E, W and generates four outputs to N, S, E, W. Each cell can be configured for any boolean function of the four inputs.

Outputs on the periphery (or some selection thereof) are passed to the chip GPIO. Inputs may also come from the chip periphery; choice of input or output is programmable like the cell boolean function.

All inputs and outputs may be channeled through the logic analyzer to set or grab the entire state of the system.

The logic analyzer may also be used to program the cell functions.

This can be used in a loop with an evolutionary algorithm to tune the chip functions to achieve a specific behavior.

Most of the core circuitry is straightforward. The total number of cells is parameterized, so that the largest number of cells that will fit in the caravel user project space can be determined.