Flagge

Ole zeigt die Darstellung von Flaggen mit dem FPGA und VGA/Bildschirm

| Ole Woyciniuk (Screenshot aus Video)
25.03.2022

Flagge(n) zeigen mit FPGA

Wir beschreiben Hardware - auf dem FPGA-Board läuft alles parallel ab.

Kontakt
Anja Rottke

Flagge(n) zeigen - Schülerprojekt mit FPGA-Board

Was könnt ihr mit eurem FPGA-Board eigentlich machen? Ole hat eine tolle Idee umgesetzt und für euch in einem Video kurz dokumentiert: er steuert mit seinem FPGA-Board über die VGA-Schnittstelle die Farben auf einem Bildschirm an. Er kann auch Felder abgrenzen und so beispielsweise Flaggen darstellen. Und damit in der aktuellen Weltlage nach dem 24. Februar 2022 auch ein Statement setzen, das seht ihr hier ganz am Ende des Videos. Ole hatte übrigens im Jahr 2021 die IaC-Challenge erfolgreich abgeschlossen und für seine besondere Leistung ein FPGA-Board samt Videotutorial erhalten. Schon damit seid ihr also bestens gerüstet, erste eigene Projekte anzugehen, wenn ihr Spaß und Interesse daran habt! Infos zu den Siegerprojekten der vergangenen Jahre findet ihr unter: Sieger*innen

FPGA-Boards statt Mikrocontroller

IaC16-Board-Schueler

IaC16- FPGA-Board beim Workshop

| Anja Rottke / VDE

Vielleicht hat die/der ein/e oder andere schon mal programmiert. Dabei läuft alles nacheinander ab. Bei der sogenannten Hardwarebeschreibung ist das anders. Hier finden alle Abläufe parallel statt – und das in einer wahnsinnigen Geschwindigkeit.

Das Herzstück von Anwendungen in der Mikroelektronik ist entweder ein Mikrocontroller oder ein Field Programmable Gate Array (FPGA). Beide lassen sich mit Sensoren und Aktoren wie einem Motor verbinden und können so vielfältige Anwendungen umsetzen. Die bekanntesten Plattformen für den Einsatz von Mikrocontrollern sind Arduino, Raspberry Pi oder BeagleBone. Diese Plattformen sind jedoch deutlich von einem FPGA zu unterscheiden:

Einen Mikrocontroller kann man mit einem Prozessor eines Rechners vergleichen. Je nach Typ hat dieser einen Satz von Befehlen. Diese Befehle kann der Mikrocontroller interpretieren. Er arbeitet sie nacheinander ab. Es wird demnach ein „Programm“ ausgeführt. Die am häufigsten eingesetzte Hochsprache für Mikrocontroller ist C.

Ein FPGA dagegen ist ein integrierter Schaltkreis, mit dem eine logische Schaltung programmiert werden kann – kurz gesagt eine „konfigurierbare Logik“ anstelle eines Programms. Die Konfiguration (Programmierung) eines FPGA wird mit einer Hardwarebeschreibungssprache gemacht, das sind primär VHDL (benutzen wir) oder Verilog. Ähnlich wie Hardware auf einer Platine können Abläufe parallel ausgeführt werden. Wesentliche Elemente eines FPGA sind Felder aus Basisblöcken, die durch spezielle Verbindungsstrukturen miteinander verknüpft sind. Jeder dieser Basisblöcke besteht aus programmierbaren Tabellen, in denen beliebige logische Funktionen (zum Beispiel UND- beziehungsweise ODER-Gatter) abgelegt werden können. Durch das entsprechende Programmieren vieler einzelner Tabellen und Verbindungen lassen sich so sehr komplexe logische Schaltungen auf einem FPGA realisieren.

Und hier wird es spannend: Ein FPGA kann 128 Sensorkanäle gleichzeitig auswerten und in Echtzeit parallel Aktoren wie eine LED oder einen Motor steuern. Ein Mikrocontroller hingegen müsste jeden einzelnen Prozess sequentiell, also nacheinander abarbeiten. Deshalb ist ein FPGA viel flexibler als ein Mikrocontroller. Und man kann ihn jederzeit wieder neu beschreiben und verändern.

Unveränderbar sind die logischen Schaltungen, wenn man sie als echten Mikrochip produziert hat. Das lohnt sich also erst bei großen Stückzahlen und wenn alles tatsächlich fertig ist.

Daher stellen wir keine echten Chips in Silizium her – das ist zu aufwändig und zu teuer. Aber wir machen genau das, was bei echten Chips passiert: die eigenen Ideen mit Hilfe des FPGA-Boards in Hardware und damit in logische Schaltungen umsetzen.

Mit unserem neuen Online-Tool der IaC-Challenge bleiben wir natürlich bei der Hardware und geben euch exklusive Einblicke in die Hardwarebeschreibung. Im IaC-Camp könnt ihr dann eurer Wissen vertiefen und praktisch für eigene Projekte anwenden.