FPGA Computer


(Return to index)

One of my favorite computers was the Atari 800XL. I miss the relative simplicity and joys of figuring out what makes it tick.

Atari 800XL

In an attempt to recapture some of that, I have for some time been interested in building a single-board computer, perhaps 6502- or Z80- based, on a breadboard. However, I knew that this would be messy, complicated, error-prone, and slow both in terms of development and eventual processing capability. After receiving a CPLD development board from my Hackerboxes subscription, I toyed with the idea of offloading much of the complexity to a CPLD, but this never really went anywhere.


Then I received a Raspberry Pi-based PiDP-8/I kit as a gift. Of course it looks cool, but I wanted to be able to use it, and that meant researching how a PDP-8 actually works. A few things surprised me:

The kit's software come with a copy of DEC's OS8 (among others) and some games that really get the lights going, but included with OS8 is a Fortran compiler. I started to learn Fortran and this really started to scratch the old 800XL itch.

The Hebrew University of Jerusalem

The next thing to happen was a two-part course from the Hebrew University of Jerusalem via Coursera, Build a Modern Computer From First Principles: From Nand to Tetris. This course covers building a very simple computer from basic logic gates in only 6 weeks. Some shortcuts were taken:

Nevertheless, this course got me really excited about building a simple FPGA-based computer. I've never programmed an FPGA before but in hindsight, an edX Cyber-Physical Systems course, which involved programming a virtual iRobot using LabVIEW came pretty close, especially with respect to parallel programming.

I don't have the means to work with raw FPGAs, so I needed a development board. One that seemed particularly attractive was the Logi-Pi from ValentF(x). It mounts on top of a Raspberry Pi on the bottom and can accept Arduino shields on top and Digilent Pmod Modules on the side.

The Raspberry Pi and Logi-Pi are connected via an SPI bus. This not only allows the Raspberry Pi to upload compiled designs to the FPGA, but also allows the Raspberry Pi to communicate with a design running on the Logi-Pi. However, the Xilinx ISE Design Suite necessary to compile designs for the Logi-Pi's Xilinx Spartan-6 lx9 FPGA, while available in free WebPack versions for Windows, Mac, and Linux, does not currently run on the Raspberry Pi.