The TinyFPGA boards are a new series of low-cost, open-source FPGA boards in a tiny form factor. Solder on pins for use in a breadboard or PCB socket; or solder connectors, wires, and components directly onto the board.
|TinyFPGA A1||TinyFPGA A2||TinyFPGA B2|
|Distributed RAM||2 KBits||10 KBit|
|Block RAM||64 KBit||128 KBit|
|User Flash||64 KBit||2000 KBit|
|Phase Lock Loops||1||1|
|User IO Pins||21||21||23|
Buy with Shipping from USA
Buy with Shipping from Europe
The A- and B-Series boards use different FPGA families and their toolchains are different. See the below guides to learn how to get started.
I am developing a regular series of tutorials, articles, and hands-on labs utilizing the TinyFPGA boards. They can be found on hackaday.io: The Hobbyist’s Guide to FPGAs. If you are new to FPGAs and want to give them a try, this guide is for you. If you haven’t already, sign up for hackaday.io and follow the project to be notified when there are updates.
Digital Design Tools
The A-series boards use the Lattice Diamond design software for synthesizing digital designs into FPGA bitstreams. It can be downloaded for free from Lattice Semiconductor’s website. Follow their instructions carefully to get a free license file.
The B-series boards use the Lattice iCEcube2 design software for synthesizing digital designs into FPGA bitstreams. It can also be downloaded for free from Lattice Semiconductor’s website. Just like Lattice Diamond, iCEcube2 requires a free license file to be downloaded so be sure to follow their directions carefully.
There is an opensource alternative available for the B-series boards called Project IceStorm however this has not yet been tested with the TinyFPGA boards.
To jumpstart development a simple iCEcube2 project template is provided with a top-level verilog file that represents the pins on the B-series boards. This project contains a timing constraint for the 16MHz clock and pin constraints for each of the pins. You can download the template as part of the TinyFPGA B-Series Repository ZIP.
The A-series boards are programmed via JTAG. There is a dedicated TinyFPGA Programmer available to purchase. It is the most cost-effective and convenient programmer for the A-series boards. It can be used with the TinyFPGA Programmer Application.
The B-series boards have a built-in USB bootloader. To program a bitstream use the TinyFPGA B-Series Programmer and select the serial port of the device and bitstream file. If you are using Linux or OSX you can run the programmer application as a Python script. It is available in the TinyFPGA B-Series GitHub Repo. You can download the programmer python scripts as part of the TinyFPGA B-Series Repository ZIP.