TinyFPGA

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 Boards

  TinyFPGA A1 TinyFPGA AX2 TinyFPGA BX TinyFPGA EX
                     
FPGA Chip               XO2-256     XO2-1200 ICE40LP8K LFE5U-25F
Programming Interface JTAG JTAG USB USB
Logic Cells 256 1200 7680 24288
Distributed RAM 2 KBit 10 KBit   194 KBit
Block RAM   64 KBit 128 KBit 1008 KBit
User Flash   64 KBit 6000 KBit 96000 KBit
Phase Lock Loops   1 1 2
Delay Lock Loops       2
User IO Pins (dedicated + shared) 18 + 4 18 + 4 31 + 10 49 + 7

TinyFPGA in the News

Buy with Shipping from USA

Crowd Supply

Buy with Shipping from Europe

Elektor

User Guides

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.

A-Series Guide

BX Guide

FPGA Tutorials

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.

TinyFPGA Discourse Community

A brand new Discourse server has been setup for TinyFPGA. If you are interested in the TinyFPGA boards, join the TinyFPGA Discourse and ask away. Luke is there often to help troubleshoot problems, answer questions, and post news. Over time this will grow into the best place to meet other hobbyists, makers, and professionals interested in FPGAs and the TinyFPGA project.

Digital Design Tools

A-Series

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.

B-Series

The B-series boards use the open source Project IceStorm tools or Lattice iCEcube2 design software for synthesizing digital designs into FPGA bitstreams. Just like Lattice Diamond, iCEcube2 requires a free license file to be downloaded so be sure to follow their directions carefully. The open source IceStore toolchain needs no special license.

To jumpstart development simple iCEcube2 project template and IceStorm project template projects are provided with top-level verilog files that represent the pins on the B-series boards. These projects contain 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.

FPGA Programmer

A-Series

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.

You can also use Lattice-compatible JTAG programmers JTAG Programmer Hardware and the Lattice Programmer Software.

B-Series

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.