Rippel | FPGAs | E-Book | sack.de
E-Book

E-Book, Deutsch, 543 Seiten

Reihe: Rheinwerk Computing

Rippel FPGAs

Einstieg, Schaltungen, Projekte
1. Auflage 2024
ISBN: 978-3-367-10150-4
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Einstieg, Schaltungen, Projekte

E-Book, Deutsch, 543 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-10150-4
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Field Programmable Gate Arrays - kurz FPGAs - sind die ideale Basis für anspruchsvolle Maker-Projekte. Dank effizienter Parallelverarbeitung und hoher Flexibilität lassen sich mit diesen frei programmierbaren Logikbausteinen komplexe digitale Schaltungen mühelos realisieren.
In diesem Praxisbuch zeigt Ihnen Jörg Rippel anhand kreativer Beispielprojekte mit den benutzerfreundlichen FPGAs von Lattice und Gowin Semiconductor, wie Sie Ideen schnell umsetzen. Durch den Einsatz einer Chat-KI generieren Sie ohne Vorkenntnisse die benötigten Verilog-Codes. Im Handumdrehen basteln Sie Lichteffekte, Animationsanzeigen, verarbeiten Sensordaten und realisieren Ihr persönliches Traumprojekt.

Aus dem Inhalt:

  • Grundlagen der FPGAs und hardwarenahen Programmierung
  • Effizientes Pairprogramming mit künstlicher Intelligenz wie ChatGPT
  • Praxisnaher Einstieg: FPGAs programmieren und die Toolchain beherrschen
  • Anbindung und Verarbeitung von Sensordaten über gängige Schnittstellen
  • Interaktive Steuerung und Kommunikation über serielle Verbindungen
  • Steuern von Displays, RGB-LEDs und vielfältigen Ausgaben
  • Testbenchsysteme entwickeln zum Simulieren und Debuggen
  • Einrichten der Open-Source-Entwicklungsumgebung auf dem Raspberry Pi


Jörg Rippel ist begeistert davon, wie einfach es geworden ist, selbst den eigenen Strom zu produzieren. Das Basteln mit elektronischen Geräten gehörte schon immer zu Jörgs Hobbys. Privat repariert er gerne alte Radios, beruflich hat er mehr als 20 Jahre in verschiedenen IT-Unternehmen und in der Luft- und Raumfahrtindustrie gearbeitet. Als Systemingenieur lag sein Schwerpunkt auf der Zusammenführung und Pflege komplexer Systeme, die aus vielen verschiedenen technischen Bereichen bestehen. Heute lebt er mit seiner Frau im Grünen und schraubt gerne an kreativen Projekten, wobei es auch immer mal wieder Probleme gibt und nicht immer alles beim ersten Versuch funktioniert. Trotzdem - oder gerade deswegen - macht ihm die Arbeit mit Elektronik immer Spaß. Sein Wissen teilt er in Fachbüchern und Beiträgen. Ausbildungen und Studiengänge in Elektronik, Funktechnik und Informatik haben dafür gesorgt, dass er ein breites Wissen zu allerlei elektrischen Geräten hat. Dazu gehören die Erstellung von analogen und digitalen Robotern, der Bau von Computern, das Betreiben von Amateurfunk und Satellitenfunk, das Design von Schaltungen und Platinenlayouts, die Arbeit mit 8- und 32-Bit-Mikrocontrollern und die Programmierung in verschiedenen Sprachen.
Rippel FPGAs jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


Materialien zum Buch ... 13  1.  Los geht's: FPGAs für Maker und Kreative ... 15  1.1 ... Über dieses Buch: Was Sie lernen werden und was Sie schon können sollten ... 15  1.2 ... Ihr Weg durch dieses Buch ... 18  1.3 ... Was sind FPGAs? ... 20  1.4 ... Sprachen, Tools und Konzepte ... 23

TEIL I.  Einstieg in die FPGAProgrammierung ... 27  2.  FPGAs verstehen ... 29  2.1 ... Grundlagen und Überblick: Die FPGA-Technologie verstehen ... 30  2.2 ... Die FPGAs, die in diesem Buch verwendet werden ... 59  2.3 ... Was ist der richtige FPGA für Ihr Projekt? ... 68  2.4 ... Andere FPGAs und Regulatorien ... 73  2.5 ... Open-Hardware- und EDU-Boards ... 75  3.  Offener Quellcode, offene Hardware ... 85  3.1 ... Kein Ablaufdatum und zeitlos gültig: Open-Source-Software und -Hardware ... 85  3.2 ... Die Open-Source-Toolchain und die Freiheit der Entwicklung ... 87  3.3 ... Das IceZero-Board für den Raspberry Pi ... 88  3.4 ... Der Tang Nano 9K ... 91  3.5 ... Die Vor- und Nachteile der Anschlüsse beider FPGA-Boards ... 92  3.6 ... Die Open-Source-Toolchain für das IceZero- und das Tang-Nano-Board ... 95  3.7 ... Die Hersteller-IDE für den Tang Nano 9K ... 95  3.8 ... Beide FPGAs gleichzeitig am Raspberry Pi nutzen ... 96  4.  Software-Entwicklung leicht gemacht ... 99  4.1 ... Die Hardware-Beschreibung mit Verilog ... 100  4.2 ... Hardware-Beschreibung vs. Programmierung ... 101  4.3 ... Die Idee und die FPGAs im Rampenlicht, KI im Support ... 102  4.4 ... Einen FPGA mit Prompts designen ... 111  4.5 ... Tipps und Tricks beim Prompten ... 115  5.  Offene Tools und Setup ... 119  5.1 ... Unsere Steuerzentrale: Der Raspberry Pi ... 120  5.2 ... Die Entwicklungsumgebung einrichten ... 125  6.  Erste Schritte mit FPGAs und dem Raspberry Pi ... 143  6.1 ... Der iCE40HX auf dem IceZero-Board ... 147  6.2 ... Der Tang Nano 9K ... 158  6.3 ... Sind die Toolchain-Komponenten austauschbar? ... 171  6.4 ... Quellcode-Editoren für Verilog ... 172  6.5 ... Die Ausgabeinformationen der Toolchain verstehen ... 177  7.  Die Grundlagen von Verilog ... 183  7.1 ... Aufbau und Struktur ... 183  7.2 ... Ein erstes Code-Beispiel ... 186  7.3 ... Datentypen ... 187  7.4 ... Konstrollstrukturen ... 194  7.5 ... Von der Software zur Hardware: Automatische Codegenerierung für FPGAs ... 196  8.  Ablauf eines FPGA-Designs ... 201  8.1 ... Entwicklungsschritte ... 201  8.2 ... Aufbau und Ablauf der FPGA-Projekte in diesem Buch ... 204

TEIL II.  Praxis und Projekte ... 207  9.  Projekte mit dem IceZero ... 209  9.1 ... I/O: Interaktion mit der Außenwelt ... 210  9.2 ... Einen Takt ausgeben ... 224  9.3 ... Einen Zähler implementieren ... 233  9.4 ... RGB-LEDs ansteuern ... 237  9.5 ... Serielle Daten übertragen ... 252  9.6 ... Web-Control-Server ... 276  9.7 ... Retrospektive: Erlernte Grundlagen ... 283  9.8 ... Mehr zu Testbench-Techniken: Simulation und Test von digitalen Signalverarbeitungssystemen ... 287  9.9 ... Mehr zu Makefiles: Automatisierung ... 293

10.  Projekte mit dem Tang Nano 9K ... 295  10.1 ... I/O: Die 48 GPIO-Pins des Tang Nano 9K ... 295  10.2 ... Die Taster des Tang Nano 9K ... 301  10.3 ... Der Takt des Tang Nano 9K ... 301  10.4 ... Der Speicher eines FPGAs ... 301  10.5 ... Eine UART-Schnittstelle ... 310  10.6 ... Ein SPI-LCD ansteuern ... 331  10.7 ... Ein OLED-Display ansteuern ... 337  10.8 ... Ein OLED-Display mit Bildanzeige ... 364  10.9 ... Ein OLED-Display mit Text-Engine ... 370  10.10 ... Ein OLED-Display mit Bargraphen (und die Frage, wann Zufall wirklich zufällig ist) ... 403  10.11 ... Ein OLED-Display mit ADC-Ausgabe ... 427  10.12 ... Einen Servo steuern ... 477  10.13 ... Retrospektive: Wie passt das alles zusammen? ... 483

11.  Spezialthemen -- kurz angerissen ... 487  11.1 ... Schleifen ... 487  11.2 ... Generate-Anweisungen ... 490  11.3 ... Pipelining ... 492  11.4 ... Taktdomänen (Clock Domains) ... 496  11.5 ... Crossing Clock Domains ... 499  11.6 ... Die Bezeichnungen »größer« und »breiter« ... 502  11.7 ... Die Simulation stoppen ... 504  11.8 ... IP-Cores ... 505  11.9 ... Grundlagen zu SerDes in FPGA-Systemen ... 507  11.10 ... Phase-Locked Loops (PLL) ... 509  11.11 ... Delay-Locked Loops (DLL) ... 510  11.12 ... Multiplexer und Demultiplexer ... 512  11.13 ... Das Shift-Register ... 513  11.14 ... RISC-V-Softcore-CPU ... 514  11.15 ... Retrospektive: Gut, mal gehört zu haben ... ... 518

12.  Die Community und weiterführende Ressourcen ... 519  12.1 ... Machen Sie bei Open-Source-Communitys für Maker mit ... 519  12.2 ... Retro-Messen: Entdecken Sie 8-Bit-Computer und Emulatoren ... 521  12.3 ... Der MEGA65 ... 522  12.4 ... Im Gespräch mit einem FPGA-Entwickler ... 530

13.  Ihr Traumprojekt: Legen Sie los! ... 533  Danke und bis bald! ... 535  Index ... 537


1    Los geht’s: FPGAs für Maker und Kreative


Field Programmable Gate Arrays (FPGAs) sind spezielle integrierte Schaltungen, die sich durch den Benutzer programmieren lassen. Schauen wir uns zunächst die Tools und Konzepte zu diesen Bausteinen an und welche Rolle Open-Source-Software dabei spielt.

In der dynamischen Welt der Elektronik stellen FPGAs eine Technologie dar, die es Enthusiasten ermöglicht, die Schranken konventioneller Mikrocontroller-Systeme zu überwinden. Sie werden feststellen, dass Sie mit FPGAs viel machen können, was beispielsweise ein Arduino oder gar ein Mini-Computer wie der Raspberry Pi nicht kann. Mit diesem Buch möchte ich Ihnen einen umfassenden Einstieg in diese Welt bieten. Es geht nicht nur um das theoretische Wissen, sondern auch um praktische Fähigkeiten, die Sie direkt in Ihre Projekte integrieren können.

1.1    Über dieses Buch: Was Sie lernen werden und was Sie schon können sollten


Als Maker erreichen Sie irgendwann einen Punkt, an dem herkömmliche Mikrocontroller oder Mikroprozessoren für manche Anforderungen nicht mehr genügen. Oder vielleicht wollen Sie einfach mal etwas Neues ausprobieren. Der Arduino und der Raspberry Pi sind zwar weit verbreitet und werden durch eine Vielzahl von Soft- und Hardware-Beispielen gut unterstützt. Auch ein ESP32 oder ein Raspberry Pi Pico bieten jeweils spezielle Features, mit denen sich bestimmte Problemstellungen gut lösen lassen. Doch manchmal werden Sie sich mehr wünschen: mehr Flexibilität, höhere und echte Parallelverarbeitungsleistung, anspruchsvolle visuelle Effekte, schnelle Signalverarbeitung oder Kryptografie – und das alles flexibel und schnell anpassbar.

Wenn Sie aus diesen Gründen dieses Buch zur Hand genommen haben, sind Sie bereit, die Welt der Field Programmable Gate Arrays – oder kurz einfach FPGAs – zu entdecken. Hier lernen Sie die Grundlagen und Anwendungsmöglichkeiten dieser programmierbaren Komponenten kennen.

1.1.1    Für wen ist dieses Buch geeignet?


Sie sollten ein fortgeschrittener Maker bzw. Elektronik-Bastler sein und die eine oder andere Skriptsprache beherrschen, am besten Python, denn Python wird auch im Buch verwendet. Sie sollten mit Linux umgehen können, am besten auf einem Raspberry Pi. Auf der Linux-Konsole brauchen Sie kein Experte zu sein; wenn Sie sich grundsätzlich auf der Kommandozeile zurechtfinden, reicht das aus.

Ihr Wissen im Bereich der Elektronik sollte all das abdecken, was man als Bastler so macht: Mit Mikrocontrollern sollten Sie mal »was gemacht« haben: Vielleicht haben Sie auch schon das eine oder andere Breakout Board verwendet, das Sie via SPI oder I2C an Ihren Arduino oder Raspberry Pi angeschlossen haben. Sie sollten grundsätzlich wissen, wie die Kommunikation zwischen Teilnehmern auf einem seriellen Bus funktioniert, d. h., Sie sollten so ungefähr wissen, was eine Adresse oder eine Chip-Select-Leitung im Zusammenhang mit einem seriellen Bus ist.

Wenn Sie nun feststellen, dass Sie vom größten Teil des eben Gesagten keine Ahnung haben, dann könnte es sein, dass dieses Buch an einigen Stellen zu fortgeschritten für Sie ist.

1.1.2    Was dieses Buch nicht ist


In diesem Buch finden Sie keine endlosen Grundlagen zu boolescher Algebra und Logikgattern. Sie werden auch nicht erst theoretisch den Inhalt der vielen Hundert Seiten des Verilog-Standards lesen und dabei Datentypen, Operatoren, Kontrollstrukturen und Systemfunktionen erlernen müssen. Dies alles behandele ich in diesem Buch nur so weit, wie es unbedingt nötig ist. Ich wollte kein klassisches Fachbuch schreiben, das Ihnen bei einer Semester-Abschlussarbeit der E-Technik oder bei der Vorbereitung auf ein Vorstellungsgespräch als Entwickler von Embedded Systems hilft. Sein Inhalt ist für die Werkstatt und das Mindset eines Makers und Elektronik-Bastlers gedacht.

1.1.3    Was ist der Inhalt dieses Buches?


Im ersten Teil des Buches erfahren Sie die Antwort auf die Frage: »Was ist ein FPGA und was kann er?« Wir besprechen die beiden FPGA-Boards, die in diesem Buch verwendet werden und woher Sie diese beziehen können. Danach stelle ich die Bestandteile der in diesem Buch genutzten Open-Source-Toolchain vor. Auch die beste Vorgehensweise beim Einrichten einer Entwicklungsumgebung, das Backup Ihrer Projektdateien und die verwendeten Tools zur Versionskontrolle und des Build-Prozesses sind Themen in Teil I.

Im zweiten Teil des Buches besprechen wir die Möglichkeiten von FPGAs und realisieren praktische Beispielprojekte. Dafür nutzen wir ausschließlich die Open-Source-Toolchain und zwei FPGA-Boards, den Tang Nano 9K und den IceZero. Sie werden dafür Ihre eigene FPGA-Entwicklungsumgebung inklusive aller dazugehörigen Tools und Skripte einrichten. Somit besitzen Sie eine vollständige Unabhängigkeit bei Ihrer Entwicklungsarbeit. Das bedeutet, wir werden keine kommerzielle Software und keine IDE/Entwicklungsumgebung eines Herstellers nutzen. Es wird somit keine Lizenz nötig sein – an keiner Stelle entsteht so eine Abhängigkeit, und es fallen auch keine weiteren Kosten an!

Bleiben Sie neugierig

Übrigens: Diese Toolchain und die genutzten FPGAs sind nur ein Beispiel. Sie können auch andere FPGAs nutzen, indem Sie die Toolchain anpassen. Der Verilog-Code ist so generisch wie möglich gehalten, damit er auf einer Vielzahl von FPGAs läuft. Der Aufwand für eine Anpassung ist somit gering.

Nur: Sie müssen dann eben die Toolchain ändern und auch die Beispiele in diesem Buch an Ihren FPGA anpassen. Trauen Sie sich das zu? In Abschnitt 2.5 gehe ich näher darauf ein.

In diesem Buch finden Sie eine Vielzahl von Beispielprojekten, die viele der grundlegenden Technologien abdecken, die in der Praxis häufig benötigt werden. Dazu gehören Displays, Taktgeber, Taster, Sensoren, LEDs und verschiedene serielle Protokolle. Diese grundlegenden Elemente bilden oft das Fundament, auf dem komplexere und interessantere Anwendungen aufbauen können. So können Sie mit diesen Beispielprojekten ein solides Verständnis für die Grundlagen entwickeln, den Inhalt aber später auch bei Ihren eigenen Ideen weiterverwenden. Dadurch erhalten Sie einen praxisnahen Einblick in die reale Arbeit mit diesen Bausteinen.

1.1.4    Das Lernkonzept dieses Buches


Das Konzept, wie in diesem Buch Wissen vermittelt wird, unterscheidet sich vom theoretischen Lehransatz an Hochschulen:

  • Learning by doing! – Sie programmieren einen FPGA mit der von Ihnen selbst eingerichteten Entwicklungsumgebung. Wir steigen schnell und direkt in die Programmierung von FPGAs ein. Wenn der FPGA dann läuft, schauen wir uns den Quellcode an. Das ist ideal für alle, die direkt loslegen möchten.

  • Wir nutzen die KI! – In diesem Buch werde ich Ihnen nicht alle Fragen beantworten und nicht jedes Detail erklären. Ich zeige Ihnen, wie Sie Ihren FPGA einsetzen können und wie Sie Designs umgesetzt bekommen. Die Grundlagenprojekte und die kniffligeren weiterführenden Projekte werden Ihnen zeigen, wie Sie Displays einrichten, Schnittstellenprotokolle implementieren, Block-SRAM verwenden, Zufallszahlen erzeugen, Neopixel-LEDs zum Leuchten bringen und noch viel mehr.

    Aber ich werde an mancher Stelle auch etwas sagen wie: »Wenn Sie mehr darüber wissen wollen, wie ein Schieberegister als Verzögerungsleitung dienen kann, dann fragen Sie die Chat-KI nach …«

    In der heutigen Zeit können wir modernere Methoden nutzen, um uns schnell und effektiv das Wissen anzueignen, das wir brauchen, um eine Aufgabe zu bewältigen. Der alte Hochschulprofessor, der uns erst jahrelang Herleitungen an die Tafel malt, ist Vergangenheit. Die Fachbücher der 1990er-Jahre sind Vergangenheit. In diesem Buch nutzen wir die Chat-KI ausgiebig, damit Sie so schnell und einfach wie möglich alles zu FPGAs lernen, was nötig ist. Damit Sie hinterher fit in dem Thema sind.

Sind Sie so weit einverstanden? Ist das ein Ansatz, mit dem Sie leben können? Dann lassen Sie uns gemeinsam in die faszinierende Welt der FPGAs eintauchen und entdecken, wie sie Ihre kreativen und technischen Fähigkeiten erweitern können.

I – Los geht’s mit Ihrem Traumprojekt

In diesem Buch werden Ihnen öfter Kästen wie dieser begegnen, in denen es um Ihr FPGA-Traumprojekt geht. In solchen Kästen werde ich mit Ihnen in kleinen Schritten – abgestimmt mit dem Inhalt des Buches – Ihr erstes FPGA-Design aufbauen, das Sie dann nach diesem Buch starten können. Wir bilden so Schritt für Schritt die Basis für Ihren ersten selbstständigen Einstieg in der FPGA-Hardware-Entwicklung.

Alles, was Sie dafür brauchen, sind ein paar Blatt Papier und ein Stift. Notieren Sie einfach Ihre liebste Idee bzw. liebsten Ideen. Im Verlauf dieses Buches werden wir an ihnen weiterarbeiten, und zum Schluss helfe ich Ihnen, dieses Projekt realisiert zu bekommen. Wichtig ist, dass Sie diese Notizen tatsächlich irgendwo...


Rippel, Jörg
Jörg Rippel ist begeistert davon, wie einfach es geworden ist, selbst den eigenen Strom zu produzieren.

Das Basteln mit elektronischen Geräten gehörte schon immer zu Jörgs Hobbys. Privat repariert er gerne alte Radios, beruflich hat er mehr als 20 Jahre in verschiedenen IT-Unternehmen und in der Luft- und Raumfahrtindustrie gearbeitet. Als Systemingenieur lag sein Schwerpunkt auf der Zusammenführung und Pflege komplexer Systeme, die aus vielen verschiedenen technischen Bereichen bestehen. Heute lebt er mit seiner Frau im Grünen und schraubt gerne an kreativen Projekten, wobei es auch immer mal wieder Probleme gibt und nicht immer alles beim ersten Versuch funktioniert. Trotzdem – oder gerade deswegen – macht ihm die Arbeit mit Elektronik immer Spaß. Sein Wissen teilt er in Fachbüchern und Beiträgen.

Ausbildungen und Studiengänge in Elektronik, Funktechnik und Informatik haben dafür gesorgt, dass er ein breites Wissen zu allerlei elektrischen Geräten hat. Dazu gehören die Erstellung von analogen und digitalen Robotern, der Bau von Computern, das Betreiben von Amateurfunk und Satellitenfunk, das Design von Schaltungen und Platinenlayouts, die Arbeit mit 8- und 32-Bit-Mikrocontrollern und die Programmierung in verschiedenen Sprachen.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.