FPGA-Entwicklung, leicht gemacht

Autor / Redakteur: Klaus Kohl-Schöpe * / Margit Kuther

Meist finden sich Mikrocontroller in Steuerungen. Doch auch FPGAs können manche Anforderung abdecken oder ältere Architekturen von Prozessoren reaktivieren – mit FPGA-Boards für den schnellen Einstieg.

Firmen zum Thema

Low-Cost-FPGA-Modul SMF2000: basiert auf Microsemis SmartFusion2 sowie einem FPGA-Teil.
Low-Cost-FPGA-Modul SMF2000: basiert auf Microsemis SmartFusion2 sowie einem FPGA-Teil.
(Bild: Arrow)

Entwicklungsboards für FPGAs gibt es viele, da Hersteller selbst schon Hardware für ihre Chips und Software benötigen. Jedoch haben diese oft den Nachteil des höheren Preises und dienen nur der Evaluierung, was den industriellen Temperaturbereich und eine Garantie für den Serieneinsatz ausschließt. In einigen Fällen ist auch kein Debugger beziehungsweise Programmer integriert und muss entsprechend dazugekauft werden.

In der FPGA Community gibt es auch viele Boards, die aber meist für bestimmte Anwendungen gedacht sind und deshalb bezüglich Speicher- und Schnittstellenausstattung limitiert sind. Auch diese können normalerweise nicht in industriellen Produkten eingesetzt werden.

Bildergalerie

Günstiger Einstieg in die FPGA-Entwicklung

Deshalb hat sich das Arrow Engineering Team zusammen mit Trenz Electronic überlegt, was für einen günstigen Einstieg in die FPGA-Entwicklung benötigt wird, und wie sich dieses Tool anschließend auch für Projekte in kleinen Serien nutzen lässt. Da Arrow sowohl FPGAs von Altera (jetzt Intel), als auch Lattice und Microsemi (jetzt Microchip) im Portfolio hat, sollte daraus eine Familie von Boards werden. Gewünschte Funktionen waren:

günstiger Preis, integrierter Debugger mit einer seriellen Schnittstelle, kleiner Formfaktor (Nano Arduino), Tasten und LEDs zur Bedienung und Statusanzeige, zusätzlicher Programmspeicher, zusätzliches RAM sowie ein 12-Pin-Pmod-Konnektor

Innerhalb der letzten zwei Jahre haben Arrow und Trenz vier Boards für die FPGA-Entwicklung realisiert, welche bei Preisen unter 50 € die gewünschten Features realisiert haben. Da alle Hersteller für die kleineren FPGA-Derivate kostenlose Software und auch entsprechende IP (Intellectual Property; vorgefertigter Funktionsblock eines Chipdesigns) für die Schnittstellen und sogar für die Prozessoren (NIOS II, LatticeMICO8/32 und jetzt auch RISC V) zur Verfügung stellen, sind keine weiteren Investitionen erforderlich.

Diese FPGA-Boards werden über den Mikro-USB-Anschluss versorgt und programmiert. In dem auf diese Weise verbundenen – auch separat verfügbaren – Arrow USB Programmer 2 ist auch eine USB-UART-Bridge integriert und damit immer eine serielle Schnittstelle für die Prozessor-IP verfügbar. Diese Boards können auch über zwei Taster bedient werden und haben acht LEDs als Anzeige. Die zusätzlich bestückbaren Nano-Arduino- und Pmod-Konnektoren erlauben den Anschluss externer Hardware. Im folgenden lesen Sie im Detail, wie die einzelnen FPGA-Boards Sie bei Ihrer Arbeit unterstützen können. User Guide, Schematics und Beispielprogramme finden Sie auf den Webseiten von Arrow und Trenz Electronic.

FPGA-IoT-Board MAX1000 für End-to-End-Anwendungen

Das FPGA-IoT-Maker-Board MAX1000 (Modell TEI0001 bei Trenz Electronic) ist die kostengünstigste MAX10-Lösung am Markt und eignet sich auch für IoT-Entwickler, die erst mit der FPGA-Programmierung beginnen. Das Plug-&-Play-Kit integriert Arrows USB Programmer2 und enthält eine vorprogrammierte Demo-Anwendung. Darüber hinaus enthält das MAX1000 einen Mikrochip-MEMS-Oszillator, eine Enpirion-DC/DC-Spannungsversorgung über USB und 64-MBit-SDRAM von Winbond. Diese Ein-Chip-Lösung umfasst auch einen integrierten A/D-Wandler für analoge Signale, einen 32-Bit-Soft-Mikrocontroller NIOS2 sowie integrierten, konfigurierbaren Flash-Speicher, desweiteren 8-MByte-Quad-SPI-Flash und 3-Achsen-Beschleunigungssensor.

Das Board MAX1000 gibt es in unterschiedlichen Varianten: Für ca. 26 € erhalten Interessenten die Version mit 8000 Logikelementen (LE). Aber auch größere Versionen, etwa mit 16- oder 32 kLE und 32-MByte-SDRAM sind verfügbar. Die MAX10-Serie hat ein integriertes Flash und einen 1-MHz-12-Bit-A/D-Wandler. Der Chip ist nach dem Start sofort aktiv, kann aber auch das externe SDRAM als Programmspeicher nutzen und dafür auch große Programme aus dem hier verfügbaren QuadSPI Flash laden.

Für kundenspezifische Endprodukte, das FPGA-Board CYC1000

Das FPGA-IoT-Board CYC1000 (TEI0003) ist der Nachfolger des Makerboards MAX1000 und basiert auf Intels neuer FPGA-Familie Cyclone 10 LP mit 25 kLE. Desweiteren verfügt das Board über 2 MByte Flash, 8 MB SDRAM, 2 Taster, 8 LEDs und 3-Achsen-Beschleunigungssensor und Arrows USB Programmer 2 mit USB-UART-Bridge.

Bildergalerie

Das CYC1000 ist mehr als ein Maker-Board, es eignet sich auch für die Entwicklung von Endprodukten in einer kundenspezifisch qualifizierten Version. Der Austausch von Teilen am CYC1000 oder eine komplette kundenspezifische Lösung mit unterschiedlichen Leiterplattenformen kann über Arrow nach Kundenanforderungen bestellt werden.

Ca. 37 € muss investieren, wer die neuere Cyclone-10-LP-Familie testen will. Da mehr Lookup-Tabellen (LUTs) verfügbar sind, können auch größere IPs geladen werden. Ansonsten ist das Board ähnlich dem MAX1000.

FPGA-Modul SMF2000 für das Prototyping

Das FPGA-Modul SMF2000 (TEM0001) eignet sich für die Auswertung und schnelle Prototypherstellung. Mit 42 € ist das Modul SMF2000 schon etwas teuer, allerdings kombiniert es eine Cortex-M3-MCU mit einem FPGA Core. Das SMF2000 basiert auf dem SmartFusion2 von Microsemi (jetzt Microchip). Der Nutzer erhält somit eine schon im Chip integrierte 166-MHz-Cortex-M3-Hard-IP, 256 KB Flash, 80 KB SRAM sowie einen 12-kLUT-FPGA-Teil. Dies wird dann extern um 8-MB-QuadSPI-Flash, 8-MB-SDRAM und den üblichen Tasten und LEDs ergänzt. Mit dem Modul SMF2000 lässt sich eine eigene Prozessor-IP im FPGA durch den Cortex-M3 bedienen und Funktionen wie Programm-Download, Debugging und Singlestep relativ einfach realisieren.

Arduino-kompatibles Low-Cost-Modul LXO2000

Neu im Portfolio von Arrow und Trenz Electronic ist das vierte FPGA-Board, das Low-Cost-FPGA-Modul LXO2000 (TEL0001) mit integriertem Lattice-XO2-4000 und On-Board-USB/JTAG für rund 29 €. Das Modul unterstützt Arrows USB Programmer 2 mit USB-UART-Bridge und ist kompatibel zum Arduino-MKR-Standard. Mit nur 4 kLE ist das FPGA-Modul fast zu klein für eine Prozessor-IP, aber es reicht zum Programmieren von Sequenzern. Dafür kann man auch die bis über 200 kBit internes RAM verteilt auf den Chip nutzen.

Open Cores, eine wichtige Quelle für freie IPs

Neben den diversen Herstellerseiten und FPGA-Communities ist OpenCores, zu finden über http://opencores.org, die wichtigste Quelle für freie IP. Unter anderem werden dort ca. 200 Prozessor-IPs wie 1802, 6502, 6809, 68HC11 oder Z80 gelistet. Da man bei den meisten Entwicklungsumgebungen sowohl die Hardwarebeschreibungssprache VHDL als auch Verilog verwenden kann, gibt es bei allen Cores nur die Limitierungen durch die Anzahl der LE/LUT/Pins des FPGAs oder dem internen oder externen Speicher.

Manche der Implementierungen sind auf Xilinx-FPGA-Boards getestet, aber vermutlich leicht auf Intel-, Lattice- oder Microchip-FPGA übertragbar. Für die Einarbeitung in die wenige 100 MB bis mehrere GB große Entwicklungsumgebung helfen die vielen Einführungen beim Hersteller im Web. Zu den oben erwähnten Boards gibt es jeweils Beispiele, welche die Schnittstellen initialisieren oder sogar schon eine Prozessor-IP implementieren.

In erster Linie wurden die vier, in diesem Beitrag präsentierten FPGA-Boards für die schnelle Einarbeitung in die diversen FPGA-Familien realisiert. Deshalb nutzen wir sie bei Arrow auch für die vielen, meisten kostenlosen Schulungen, nach denen diese Tools auch mitgenommen werden können. Aber auch für Prototyp-Entwicklungen in kleinen bis mittleren Stückzahlen sind diese Boards gut geeignet und bei Bedarf von Trenz auch auf Ihre Bedürfnisse anpassbar.

Alte MCU-Architekturen zum Leben erwecken

Gegebenenfalls ist dieser Artikel auch eine Anregung, um mit möglichst kleiner Investition die alten Mikrocontroller-Architekturen wie 68HC08, 8051, C166/ST10 oder 68000 wieder zum Leben zu erwecken oder selbst nützliche IP zu realisieren. Die 8 bis 25 kLE des MAX10, Cyclone 10 LP oder SmartFusion2 sind dafür ausreichend und bieten wegen des zusätzlichen externen Flashs und dem SDRAM genügend Speicher für die Emulation inzwischen obsoleter Chips oder älterer Personal Computer. Über die vielen Pins sind dazu auch Anbindungen an (PS2-)Tastatur und Displays möglich, falls eine UART über die Debug-Schnittstelle nicht ausreichen sollte.

* Klaus Kohl-Schöpe ist FAE - Technology Embedded & Connectivity bei Arrow Electronics in Eppishausen.

Artikelfiles und Artikellinks

(ID:45685992)