Field-programmable gate arrays (FPGAs) are a very different to a regular microcontroller board. With a microcontroller you have control over is the software, the code that runs on the chip, but with an FPGA you start with a blank slate and design the circuit rather than write the code that runs on it. There is no processor to run software, at least not until you design it.
It might sound like a very different way to build a project, but using an FPGA provides hardware-level flexibility, allowing you to adapt your hardware rather than replace it as your project evolves — something maker projects have a tendency to do over time.
The age of the maker FPGA has arrived without much real fanfare, and that renaissance in the FPGA market is mostly being driven by the availability of an open source toolchain for the Lattice FPGA chips.
The new TinyFPGA boards use a range of the Lattice processors, with the smaller A-Series using either a Lattice XO2–256 or XO2–1200 FPGA along with the Lattice Diamond development environment, available for Windows and Linux, but unfortunately—at least not right now—for macOS.
The TinyFPGA A-Series boards are tiny bare-bones FPGA boards with a low cost per logic element. They are programmed via their built-in JTAG interface and only contain the bare-minimum of components for the FPGA to function. They measure 18mm x 30.5mm and fit well in breadboards.
But the real problem with FPGA boards is getting started with the them. Reaching the ‘blink an LED’ stage is a lot harder with an FPGA than it is with a microcontroller. However while it’s much harder to get started, it’s not necessarily that much harder to do the difficult things with them than easy things.
While a normal microcontroller performs logic by executing instructions, an FPGA performs logic because its hardware gates are wired that way. That means it can do things much faster, and in parallel. FPGA are there for when extra speed, and low latency, are needed.
The TinyFPGA B-Series boards continue the philosophy of the A1 and A2 boards but with more FPGA resources and integrated functions on the board. Unlike the A-Series, the B-Series includes a 16MHz clock, voltage regulators, 4MBit SPI flash, and programming over USB.