Inspiration

Inspired by Peter H. Fröhlich. In his Computer System Fundamentals class one "extra credit" item is to create the game of life in 6502 assembly, which I did, however the program ran extremely slow albait that program is ran on an online simulator written in javascript. As an EE learning about FPGA, I realized that it is very feasable to create the game of life efficiently using FPGA, and so I did.

What it does

8 x 8 Toridal Conway's Game of Life displayed in an LED matrix. A button can cycle through eight different initial patterns.

How I built it

I used an FPGA prototyping board called Mercury. The IO pins are connected to an LED matrix. By writing the VHDL code for the Spartan 3A FPGA chip I was able to design the logic driving the matrix.

A buffer is created and updated per Game of Life rules one clock edge, and the data of the buffer is sampled a column at a time selected by a counter which also is the multiplexing driver for the display.

Challenges I ran into

Timing is crucial in FPGA because of the concurrency nature. Designing the system from scratch requres a lot of attention to details.

Accomplishments that I'm proud of

IT WORKS!!!

What I learned

Patience is important, and always make simulations before implementing on hardware.

What's next for The Spartan Game of Life

There are some design of the logic that could be made more efficient. Maybe an option to generate a random initial condition can be added.

Built With

  • fpga
  • vhdl
Share this project:

Updates