In my previous two blogs on the PicoBlaze 8-bit soft processor core, I considered things from a relatively high-level point of view. (See: Introducing This 8-Bit Soft Processor Core and Building the Core.) I'll be continuing along that path in some of my future columns.
Having said this, I've come to something of a fork in the road, because some of the other content on All Programmable Planet has really got me thinking. In particular, I'm talking about Adam Taylor's columns on using FPGAs to drive VGA displays and Chris Taylor's recent column on the increasing use of FPGAs in the DIY (do-it-yourself) arena. Of especial interest in Chris's blog was the part where he described how Mike Field (also known as Hamster) has Conway's Game of Life running in full high-definition (HD) with a 60Hz update on a Spartan 6 FPGA.
Editor's Note: The Game of Life (also known as Life or GOL) is a cellular automaton devised by the British mathematician John Horton Conway in 1970. This is not a game in the classical sense; mathematically and/or computationally speaking, the GOL is a zero-player game, which means its evolution is determined by its initial state, requiring no further input. One interacts with the Game of Life by creating an initial configuration and observing how it evolves.
The combination of these two sets of blogs started me pondering about using one or more PicoBlaze cores running in an FPGA to implement my own version of the Game of Life and present the results on a VGA display. It seems I was not alone in my thoughts, because the next thing I knew I had Editor in Chief Max on the phone saying "What do you think about creating a PicoBlaze-based version of the Game of Life?"
Now, if you arenít familiar with Conway's Game of Life, may I suggest that you check out the Wikipedia entry and also this Life Patterns Website. The basic idea is that you have a large grid of cells, each of which may be alive (colored) or dead (empty). The rules, which we will look at in more detail later, say that whether or not a cell lives or dies -- and when new cells come into existence in empty locations -- all depends on what is happening in surrounding cells.
Ever since its publication, Conway's Game of Life has attracted a lot of interest. One of the reasons people find this to be so fascinating is the way in which some combinations of rules and initial conditions end up in cell patterns oscillate, while others manage to "crawl" across the display. More complex cell scenarios like Gosper's Glider Gun end up casting off sub-cell-assemblies as illustrated below:
Gosper's Glider Gun.
As we see, the interactions between the two larger cell structures in the upper left result in the creation of smaller oscillating structures that subsequently work their way across the grid.
Next page >