User:Gorydetails

Game of Life Unit Cell
Unit cell for Conway's Game of Life implemented with redstone logic. Rules for the game are:


 * A live cell with exactly 2 or 3 neighbors survives.
 * A dead cell with exactly 3 neighbors becomes a live cell.

A minecraft implementation can store the current cell state in a flip-flop and update it based on the sum of the states of its 8 neighbors (including diagonals).

I am working on a 8-bit horizontal summer based on clock phase shifting depicted in the following diagram.

/-R-|\ /-R-|\      /-R-|\ CLK-|  | |-|   | |-...-|   | |---COMP---FF \---|/ \---|/      \---|/      |         |       |           |      |        N1       N2          N8    REF


 * CLK - Clock
 * R - Repeater
 * N# - Cell neighbor n
 * Trapezoidal symbol - Piston based mux
 * COMP - Phase comparator
 * REF - Reference pulse
 * FF - Flip flop logic containing the unit cell state

The travel time between CLK and PHASE component is affected by the delay through the 8 muxes along the path. Each mux selects a delayed or non-delayed version of the clock pulse. The number of active neighbors can be determined by the phase shift at the COMP unit. This result selects the new state of the flip flop.

Alternative design
Alternative design may use series of full adders to sum the 1-bit state of each neighbor cell, like in this diagram:

N1  N2   N3        N8   2/3 |   |    |         |    | |   ---  ---       ---  --- |+|--|+|--...--|+|--|=|--FF --- ---       ---  ---

I believe this design may take up more area than phase shift based adder.