Kann ein Ingenieur mit Erfahrung in der Hardware-nahen Programmierung mal eben auch ein FPGA programmieren? Ein Selbstversuch soll Aufschluss geben.
Ingenieure sind neugierige Menschen. Redakteure sind auch neugierige Menschen. Wenn ein Ingenieur zum Redakteur wird, dann ist die Neugier schon mehr als eine Berufskrankheit. Wenn dann noch ein sehr bemerkenswertes technisches Konzept in unmittelbare Reichweite kommt, ist die Verlockung gigantisch. Ich gestehe: Als ich vom Quickstart-Kit »phyCore-MPC5200B« von Phytec erfuhr – einer Kombination aus MPC5200 und einem FPGA in einem Komplettpaket, das sich innerhalb einer Stunde in Betrieb nehmen lassen soll, übermannte mich der berühmte Gedanke: »Haben will!«
Neben dieser impulsiven Begehrlichkeit nagte schon seit geraumer Zeit das Interesse an der Programmierung eines FPGAs mittels VHDL. Mal abgesehen von einer recht kurzweiligen Erfahrung in der Programmierung eines »AGA«-Bausteins während des Studiums, lag der Entwicklerschwerpunkt bei mir auf der Hardware-nahen Programmierung – heterogene Mehrprozessorsysteme machten dabei besonders Spaß.
Bei den Programmiersprachen lag der Schwerpunkt auf C – Assembler und Objektorientierte Sprachen wurden aber auch nicht gescheut. Als Softworker tendiert man als erstes dazu, jedes Problem in einen Algorithmus und dann in den Prozessor zu packen; ist die Hardware dabei überfordert, denkt man zuerst an mehr Prozessortakt und Speicher – eine Unsitte aus der allgemeinen IT.
Aber nicht jedes Embedded-Projekt kann sich diesen Luxus leisten: Entweder erlaubt das Power-/Wärme-Budget keine Aufrüstung, oder der Einsatztemperaturbereich schränkt die Auswahl der Bausteine drastisch ein. An die Problematik der Abkündigung von Bauteilen und damit dem »Sterben« von Schnittstellen bzw. der Neuprogrammierung der Ersatzbausteine denkt man eigentlich nicht. Das Thema Sicherheit/Verschlüsselung/Plagiatschutz ist im Embedded-Bereich auch erst in den »Kinderschuhen«.
Für die meisten der genannten Probleme bieten sich FPGAs als Alternative an: Algorithmen können Strom sparend beschleunigt und Schnittstellen »ewig« geliefert werden, zudem lässt sich das eine oder andere an Intellectual Property gut verstecken. Nach nur kurzem Überlegen fallen einem vielfältige Möglichkeiten ein, diese Bausteine zu nutzen. Auch wenn man von der Programmierung eines FPGAs spricht, so meint man doch eigentlich Schaltungsdesign – und das ist ja nicht die Baustelle eines Softworkers.