Even though the field-programmable gate array — better known as FPGA — has been around for some 30 years now it has not yet become the mainstream device that designers grab when they need to blink an LED. The two main reasons for this are complexity and cost. Designing for FPGAs is difficult and requires costly and complicated tools, while the chips are expensive, especially compared to current 32-bit ARM-based processors that retail for less than one euro a piece.
 
TinyFPGA BX
It is called tiny for a reason...

TinyFPGA is low-cost

TinyFPGA tries to remedy this by providing low-cost and easy to use small FPGA break-out boards. Of course, since they do not make their own FPGAs the price cannot be lower than the price of the chip, but they manage to keep it within reasonable limits. And for those who think it is still too much, TinyFPGA is an open hardware project with detailed assembly instructions available at its GitHub page, and so you can build your own.

Besides trying to provide affordable hardware, TinyFPGA also promotes free open-source software for FPGA application development. Of course, being based on off-the-shelf parts it is possible to use the tools provided by the FPGA manufacturer as well — free versions are often available — but these tend to be enormous or locked to an account or whatever; you know how these things work.

TinyFPGA uses Lattice devices

The FPGAs used by TinyFPGA are all from Lattice Semiconductor. Currently four boards are presented at their website — A1, AX2, BX, and EX —, equipped with respectively XO2-256, XO2-1200, ICE40LP8K, and LFE5U-25F devices. In this article we will look in more detail at the BX.

The tiny 4 x 4 mm FPGA mounted on the TinyFPGA BX board is the most powerful member of the Lattice iCE40 LP (low-power) family with its 7680 logic cells or look-up tables (LUTs), 128 Kbit RAM and one PLL (because of the package, larger packages have two PLLs). Its configuration can be stored in on-chip one-time-programmable (OTP) non-volatile configuration memory (NVCM). TinyFPGA however uses an external reprogrammable SPI flash memory instead.