Stolpert ein Softie aber mal über VHDL-Code, so fühlt man sich angespornt, den Code lesen zu wollen – und über weite Strecken »versteht« man ihn auch bzw. erschließt, wofür er gut ist. In Summe: Es ist Zeit, Erfahrungen am eigenen Leib zu machen. Eine Redaktion ist aber nicht für Schaltungsdesign eingerichtet – zumindest solange nicht, bis eine gerade mal 30 cm x 50 cm x 11 cm große Schachtel von Phytec eintrifft. Den Mainzern ist es gelungen, alles hineinzupacken, was man für eine ordentliche Evaluierung braucht: ein serientaugliches CPU-Modul mit integriertem FPGA, ein passendes Eval-Board, ein Expansion-Board (Lochrasterplatine), Software sowie die notwendige Dokumentation und Quickstart-Instructions (Handbuch). Aber auch an einen JTAG-Programmieradapter und die notwendigen Kabel und Netzteile hat Phytec gedacht.
Man braucht also nur einen PC mit Windows, alles andere liefern die Mainzer mustergültig – Kompliment, das ist wirklich ein Komplettpaket! Für die Inbetriebnahme der Soft- und Hardware veranschlagt das Unternehmen weniger als eine Stunde. Wenn es bis dahin nicht klappt, steht der Support mit Rat und Tat bereit. Innerhalb der Stunde gelang es mir allerdings nicht, die im Handbuch beschriebenen Schritte durchzuführen. Das lag aber nur daran, dass ein Lizenzschlüssel für die Altera-Entwicklungssoftware nicht rechtzeitig zugemailt wurde – welcher Mail-Server bummelte, war nicht klar. Rechnet man die Wartezeit raus, kann man in deutlich weniger als einer Stunde zum »Hello world«-Äquivalent eines FPGAs kommen: eine blinkende LED.
Angespornt von diesem ersten Erfolgserlebnis hält das gelungene Handbuch weiterführende Kapitel für die Einführung in die Software- Tools, das FPGA und die Linux-Anbindung zum Modul-Prozessor bereit. Das Handbuch zeigt die ersten Schritte und das Potenzial des Paketes auf. Es ist aber kein Lehrbuch für VHDL oder eine Benutzerreferenz für Alteras »Quartus-II«- Software – darum soll sich der Neugierige schon selber kümmern.
Was Phytec liefert, ist eine sehr solide Ausgangsbasis zur Evaluation des serientauglichen Moduls und dem darin schlummernden gehörigen Potenzial; als Ausbildungsobjekt ist es nicht gedacht – lehrreich ist es aber trotzdem. Das Rüstzeug ist also vorhanden und der Eindruck gewonnen, dass für einen Softie eine FPGA-Programmierung durchaus möglich sein könnte – weitere Experimente sind allerdings erforderlich. Denn will man mehr, als an den vorhandenen Beispielen herumzubasteln, muss man ganz klar VHDL lernen. Der Aufwand für die Syntax entspricht dem einer üblichen Programmiersprache: Kennt man C, kommt einem vieles bekannt vor. Länger dauert es allerdings, sich von den gewohnten Denkprozessen zu lösen: Man hat halt keinen Prozessor vor sich, aber auch keinen simplen I/O-Baustein. Um das volle Potenzial erkennen und nutzen zu können, braucht man vermutlich mehrere Projekte. Allerdings kommt man recht schnell auf das Niveau, um Open-Source- VHDL-Code einzubinden und kleinere Änderungen, z.B. I/O-Zuweisungen, durchzuführen.
Um lahmende Software- Algorithmen in schnelle FPGA-Schaltungen überzuführen, braucht es Erfahrung und damit viel Zeit. Die Grundlagen für den Entwurf von Digitalschaltungen muss man aber schon haben – Elektro-/ Elektronikingenieure sollten zurecht kommen, reine Informatiker werden aber kein einfaches Los haben. Kann also ein Softworker hart werden? Ja – aber wie bei der Echtzeit ist die Frage, was »hart« ist, eine Sache der Definition.
Nutzt man vorgefertigten VHDL-Code, um ihn für sein Projekt anzupassen, ist der Einarbeitungsaufwand recht überschaubar, und man kann sein neues Wissen durchaus produktiv nutzen: Der Arbeitsaufwand, schlecht dokumentierte Interfacekarten/-module mit mäßigen Treibern in ein System zu integrieren und die Software darauf anzupassen – und zu debuggen –, kann schnell größer sein, als VHDL-Code anzupassen, in den man schließlich reinschauen kann. Aber so ist man noch lange kein Schaltungsentwickler – man hat sich »nur« eine neue Art von Funktionsbibliothek erschlossen.
Mein persönliches Fazit deshalb: Ausprobieren schadet nicht – ein Ingenieur kann nie zu viele Tricks kennen, sollte aber auch immer wissen, wo seine Grenzen liegen.