Obwohl es feldprogrammierbare Gate-Arrays – besser bekannt als FPGAs – schon seit etwa 30 Jahren gibt, sind sie doch noch nicht zum Mainstream geworden. Man käme kaum auf die Idee, eine LED mit Hilfe eines FPGAs blinken zu lassen. Die wichtigsten Gegenargumente wären hier Komplexität und Kosten. Die Entwicklung mit FPGAs ist schwierig und erfordert teure und komplizierte Tools. Auch die Chips selbst sind teuer, insbesondere im Vergleich zu aktuellen 32-bit-ARM-MCUs, die für weniger als einen Euro pro Stück zu haben sind.

 
Aus einem bestimmten Grund als winzig bezeichnet.....

TinyFPGA ist preiswert

TinyFPGA versucht dies zu beheben, indem es kostengünstige und einfach zu nutzende kleine FPGA-Breakout-Boards anbietet. Da sie keine eigenen FPGAs herstellen, kann der Preis natürlich nicht niedriger sein als der Preis der Chips, aber sie schaffen es trotzdem, das Ganze in vernünftigen Grenzen zu halten. Und wem das immer noch zu viel ist: TinyFPGA ist ein offenes Hardware-Projekt mit detaillierten Anleitungen, die auf dieser GitHub-Seite verfügbar sind, so dass Sie Ihre eigenen Lösungen bauen können.

Neben dem Angebot erschwinglicher Hardware fördert TinyFPGA auch kostenlose Open-Source-Software für die Entwicklung von FPGA-Anwendungen. Natürlich ist es möglich, die Tools des FPGA-Herstellers zu verwenden – oft sind kostenlose Versionen verfügbar – aber diese sind in der Regel enorm umfangreich oder an einen Account oder was auch immer gebunden. Soviel zur Ausgangslage.

TinyFPGA verwendet Lattice-Chips

Die von TinyFPGA verwendeten FPGAs stammen alle von Lattice Semiconductor. Derzeit werden auf vier Boards präsentiert: A1, AX2, BX und EX. Die Boards sind jeweils mit Chips des Typs XO2-256, XO2-1200, ICE40LP8K und LFE5U-25F ausgestattet. In diesem Beitrag geht es um den Typ BX.

Das winzige, nur 4 x 4 mm messende FPGA auf dem TinyFPGA-BX-Board ist das leistungsfähigste Mitglied der Lattice iCE40 LP (low-power) Familie mit 7680 Logikzellen oder Look-up-Tables (LUTs), 128 Kbit RAM und einer PLL (größere Gehäuse haben zwei PLLs). Die Konfiguration kann in einem nichtflüchtigen Konfigurationsspeicher (NVCM) gespeichert werden, der einmalig programmierbar (OTP) ist. TinyFPGA verwendet jedoch stattdessen einen externen reprogrammierbaren SPI-Flash-Speicher.