Game of life (GOL) is a popular cellular automata designed by British mathematician John Conway. Cellular automata in general are effective at computing more natural phenomena like fluid flow or biological interactions. GOL, in particular, is a Turing complete automata that allows any computational structure to be built with its basic set of rules.

Taking this idea, I worked on implementing a basic component of a CPU, an Adder, in the Game of Life environment.

Building Blocks

In order to replicate an Adder, I needed a few logic gates as well as wires to connect the logic gates together. In the Game of Life, our team replicated a wire as a stream of gliders where the presence or absence of a gliders would indicate a high or low voltage respectively.

Routing

In order to guide and turn the gliders we needed the following structures:

Turn

Bifurcation

A bifurcation splits a single wire into two traces. This allows multiple gates to draw information from a single wire.

Delay

When two traces need to cross, they have to be out of phase. This system shifts the position of the stream prevent the streams from touching as well as aligning a stream to a given input.

Logic Gates

We used the following gates to construct our adder.

AND

OR

XOR

Finished Adder

The following image is our complete adder:

Each binary number is entered in either the A or B slots. The sum of the two binary numbers is represented in the sum outputs. If the adder overflows, the C-Out becomes true.