This website was originally written in Ruby and hosted on the Raspberry Pi. It's now archived at GitHub for posterity!

Field Programmable Gate Arrays

Another one of the many, many things that the Pi has spurred me into learning is digital logic. This involves things such as binary, logic gates and many other wonderous, low-level things that are now obscured deep, deep down within the incomprehensible complexity of modern computers.

One of the problems I've found when tinkering with digital logic is that I couldn't fit enough breadboards in my house to experiment with low-level logic physically. But fortunately there's been a solution to this problem floating around for a few decades: the programmable gate array.

The programmable gate array, or PGA, more recently known as FPGA ( most are field-programmable, meaning the consumer or manufacturer using the chip can configure it as needed ), is basically a large box of logic lego. It's an enthusiasts dream, and integrates the equivient of several square meters of breadboard covered in logic ICs into something the size of a postage stamp.

By "programming" the FPGA you are simply making connections between these logic ICs, as you would with jump leads on a breadboard. It's a lot less magic than it sounds, and effectively just involves lots of tiny little switches that interconnect the logic blocks in the pattern that, ideally, best implements your design.

Deciding exactly how to configure the FPGA is, alas, not the role of the chip itself, but rather a monolithic (8GB download and 15GB installed) software package from Xilinx which contains detailed information about the logic blocks in every FPGA they produce. Your design is written in HDL or Verilog and several processing steps distil your code into a place-and-route plan that maps it out onto the actual "fabric" of the FPGA.

It's not until recently, with the Papilio entering the scene, that FPGAs, and the resources to learn with them, have really been available to hobbyists. Yes, there have been plenty of educational units around, but the Papilio delivers a much more Arduino-like ( in fact, it can even run Arduino sketches! ) solution that's more paletable and approachable for the amateur.

The Papilio is much like the Pi in this respect. It's not so much a product, as a nucleas for a community learning a specific topic and it has already succeeded greatly in bringing FPGA tinkerers together. Gadget Factory have also shown they're committed to making the Papilio fun and interesting, and I need point no further than the RetroCade Synth to prove this.

The Papilio implements a Xilinx FPGA, and Xilinx, eager to get young minds engaged with their products, make a free version of their software available.

I'm hoping to pick up a Papilio Pro when they become a little easier to obtain in the UK. And will likely grab the LogicStart MegaWing, as I've already started reading through Mike Field's free PDF ebook and feel confident that I can get the examples up and running, and go from there. You can grab this book here Intro To Spartan FPGA.

« Back to index Posted on 2013-03-15 by