Can’t find the digital chip you need on Mouser or just wish you could make it yourself? With the FleaFPGA board, you can! As a college freshman, we heard rumors of a custom Integrated Circuit (IC) class. Surely what had to be a senior level class, I couldn’t wait until I understood electrical engineering enough that I got to make my own IC!
Two years passed, I was learning Verilog and VHDL in a class titled “Complex Programmable Logic Devices.” In short, CPLD. Those devices were the precursors to today’s modern FPGA devices.
In short, FPGAs, allow you to create your own IC with “software.” The best part? You can quickly reprogram that to fix bugs, add features, or operate completely differently just as fast as you can flash a new sketch into an Arduino Uno.
Introducing the FleaFPGA, a fully functional FPGA board perfect for beginners or veteran chip designers ready to create “chips” on their own.
The FleaFPGA is designed and sold by Valentin Angelovski of Flea Systems. He is a legend in the embedded 8051 community. He created a system that simulates an x86 computer, using the 8051 microcontrollers! The Flea86 is no longer for sale, but the Flea86 Project Page archives this amazing project.
You can buy the FleaFPGA from fleasystems.com.
Introduction to FPGAs
Before we dive deeper in the pros and cons of the FleaFPGA, let’s review quickly what an FPGA is.
FPGA stands for Field Programmable Gate Array. What does that mean? A “gate array” is a fundamental building block for digital logic. They are, usually, made up of a couple of transistors. By reconfiguring how the gates operate and their connections to each other, it is possible to change how the chip operates.
The “field programmable” part of the name is because they can be “reprogrammed” on the fly.
FPGA compared to a shift register (74LS595)
Okay, so an FPGA and Shift Register are both integrated circuits (ICs). How different can they be?
In the case of the shift register, like the 74LS595, the transistors are fixed for one purpose: to shift bits from input to output. Each pin has a defined function and depending on the signals on each input pin; the output pins will function in a well-defined manner.
An FPGA, on the other hand, isn’t the same. While it does have some fixed pins like VCC and Ground, most of the I/O pins are free for the designer to choose as input, output, clock, enable, or whatever unique function their design needs.
The contents, in theory, can be reconfigured on the fly. Some manufacturers will use an FPGA’s re-programmability to fix bugs or add features in a released design.
You might be thinking, isn’t that how the microcontroller in a Launchpad or Arduino works?
How is FleaFPGA different from an Arduino?
A microcontroller, like the ATmega328P or TI’s MSP430, is also a fixed chip. The transistors are configured to perform certain functions. Unlike a shift register, a microcontroller is significantly more complex. So complex, that it can run your software. However, that software’s capabilities is limited to that microcontroller’s design.
FPGAs aren’t running software; they are re-configured hardware.
For some perspective: you can embed a microcontroller inside of most FPGAs. Say you embed an 8051 “core” but later decide you want to use a different processor type, no problem. Change the VHDL code and you have a new processor, no silicon surgery required.
Most large FPGA designs include a “processor core” to run embedded software. Instead of designing a PCB with an AVR chip in the middle and other ICs surrounding it, you can design a single FPGA to include all of that digital hardware!
FPGAs can be configured to be almost any piece of digital hardware.
Getting started with the FleaFPGA
When you look at a FleaFPGA board, it may look like any other microprocessor board. In fact, you might even mistake the big chip in the middle as a microcontroller or microprocessor.
That big chip is a Lattice MachXO2. Surrounding it are some other connections, which is what makes this board so fun to use.
There are analog ports for video such as composite and VGA, through the DB15 connector. There is also an Audio Port, which is somewhat rare on general purpose FPGA boards available today.
This board is really flexible since it includes a USB Host Port, SD Card Slot, PS/2 (keyboard, not game system) port, and GPIO pins.
Additionally, there are two user-configurable pushbuttons and 4 LEDs available to your design.
Based on a Lattice FPGA, it is no surprise you’ll be using the Lattice tools. It is a hefty download, and you’ll need a license. Fortunately, there is a free license available, and it isn’t too complicated to get.
FPGA development is very complex with several step in the design process. It isn’t quite as simple as compiling C++ code into machine language. So when you run Lattice’s Diamond (or any FPGA IDE for that matter), it can be overwhelming.
Guiding a new FPGA user or a new user to Lattice’s tools is an area where Flea Systems shines. Their quick start guide, humbly versioned at 0.14 at the time of this writing, takes you step-by-step through the Lattice Diamond Interface and the FPGA development process.
A file called a “bitstream” is created once an FPGA design has been synthesized, routed, and configured. Flea has a tool that programs the FPGA board with this bitstream over the on-board JTAG implementation. This process is similar to what AVRDUDE does in the AVR/Arduino world.
One catch: Flea FPGA JTAG Programmer
The quick-start guide refers to a download link for this programming utility.
The catch? The link doesn’t work. However, you do receive the software via email when you buy a board, so don’t miss that. (I did.)
From the time I plugged my FleaFPGA in until I could modify the example blinking LED behavior, this was my only hiccup! Not bad considering the total disaster I had with the ARTY FPGA board, but that is a topic for another post.
If you’re looking to explore the world of FPGAs, the FleaFPGA is a clear winner.
The Lattice toolchain is straightforward to setup and run. The Quick Start Guide is outstanding. And the onboard devices make it useful and interesting for a variety of projects.
There are other FPGA board options out there. I may even write about them over time. For now, if you want to create hardware chips, without picking up a soldering iron, grab a FleaFPGA from Flea Systems.
- VHDL eBook: Free Range VHDL
- FleaFPGA Project Forum:
Thankyou James for your concise and well-written article. Keep up the Good work! 🙂
Just a quick update to inform that I have since revised the FleaFPGA Quickstart doc to correctly describe the procedure for installation of the JTAG Utility. Thanks again.
Valentin Angelovski (www.fleasystems.com)