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.