Der Autor
Ich habe Elektrotechnik an der Friedrich-Alexander-Universität in Erlangen studiert. Da ich mich in dieser Zeit schon selbständig gemacht habe war diese Epoche von 1982 bis 1990 recht lang. Dafür habe ich schon vor Ende des Studiums Geld mit der Entwicklung von ASICs und FPGAs verdient.
Des weiteren bin ich auch Software-Entwickler, sowohl im Embedded Bereich als auch Applikationen inklusive GUI, Datenbanken und Client/Server.
Als Freiberufler habe ich über die Jahre in unterschiedlichsten Projekten mitarbeiten können und so viele Erfahrungen in den unterschiedlichsten Technologien und Firmen sammeln können.
In letzter Zeit ist der Fokus immer mehr auf FPGAs gerichtet, weil es zum einen immer mehr Problemstellungen gibt, die sich mit FPGAs optimal lösen lassen und zum anderen, weil es einfach zu wenige FPGA-Entwickler gibt.
Letzteres zu ändern ist mir ein besonderes Anliegen.
Der Fokus
Der Fokus dieses Kurses ist ganz klar die Vermittlung der handwerklichen Fähigkeiten wie man FPGAs entwickelt. Dazu gehört das Beherrschen der Sprache VHDL (Verilog ist natürlich genauso gut, darauf werde ich in diesem Kurs aber nicht eingehen), die Verifikation eines VHDL-Moduls, die Dokumentation des Codes, sowie die Versionierung. Es sollen auch die do's und don'ts vermittelt werden.
Es handelt sich bei diesem Kurs also weder um ein weitere VHDL-Referenz noch einen systematischen VHDL-Kurs, sondern um eine Einführung in die Problematik der FPGA Entwicklung. Es soll gezeigt werden, wie man ein vorhandenes Problem mit Hilfe von VHDL und der Entwicklungsumgebung lösen kann. VHDL wird hier mittels „learning by doing“ vermittelt. Der Kurs richtet sich aber auch an Entwickler, die bereits mit VHDL vertraut sind und die ingenieurmäßige FPGA-Entwicklung vertiefen möchten.
Auf die Bedienung der zahlreichen Entwicklungsumgebungen wird dabei kein besonderer Fokus gelegt. In diesem Buch werden die Beispiele hauptsächlich auf Xilinx-FPGAs und der kostenlosen Entwicklungsumgebung ISE Webpack basieren. Wer einmal FPGAs entwickeln kann, wird mit jeder Entwicklungsumgebung zurecht kommen.
Die Voraussetzungen
Um FPGAs entwickeln zu können bedarf es eigentlich nur logischen und analytischen Denkens, und natürlich einer Affinität zur Technik. Für diesen Kurs gehe ich aber davon aus, dass schon irgendwelche Programmiererfahrungen vorhanden sind. Wie schon zuvor erwähnt wird hier VHDL nicht systematisch gelehrt. Es werden aber die Besonderheiten von VHDL im Gegensatz zu anderen Programmiersprachen behandelt.
Diplome sind bestimmt keine Voraussetzung für dieses Handwerk, sind aber für Freiberufler normalerweise notwendig um an Aufträge zu kommen.
Um mit diesem Kurs arbeiten zu können ist ein Internet-Zugang zwingend erforderlich, da der Code zu den einzelnen Lektionen, sowie bestimmte Ressourcen, wie z.B. die Xilinx Vivado Design Suite aus dem Internet heruntergeladen werden.
Das Handwerkszeug
Das primäre Tool für diesen Kurs ist das Vivado Webpack von Xilinx. Dieses ist frei erhältlich, man muss sich jedoch bei Xilinx registrieren.
Alle Beispiele in diesem Kurs können anhand von Testbenches logisch verifiziert werden. Die Beispiele sind aber in erster Linie für das ZYBO Board entwickelt worden.
Es gibt auch alternative Entwicklungskits auf dem Markt. Diese können natürlich auch verwendet werden, wenn die Beispiele entsprechend angepasst werden.
Die Vorgehensweise
Der Kurs ist in einzelne Kapitel gegliedert. Jedes Kapitel enthält ein in sich abgeschlossenes Projekt, kann aber auf vorhergehende Projekte aufbauen. Die Intention der einzelnen Kapitel ist es, möglichst schnell zu Ergebnissen zu kommen und diese dann oft erst im Nachhinein im Detail zu erklären. Normalerweise ist ein Kapitel wie folgt aus:
- Vorstellung des Ziels des Kapitels und Einführung in die Problematik
- Verwendung/Erstellung eines einfachen Projektes
- Erklärung der neuen Elemente dieses Projektes
- Erweiterung des Projektes um die angestrebte Aufgabe dieses Kapitels zu erfüllen
- Eventuell zusätzliche Übungen, oder Anregungen dazu
- Eine abschließende Betrachtung