Sie sind hier
E-Book

FPGAs für Maker

Eine praktische Einführung in programmierbare Logik

AutorCord Elias
Verlagdpunkt
Erscheinungsjahr2016
Seitenanzahl454 Seiten
ISBN9783960880301
FormatPDF/ePUB
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis28,99 EUR
Field Programmable Gate Arrays (FPGAs) sind relativ komplexe programmierbare Logikbausteine. Mithilfe von FPGAs können mittlerweile jedoch auch Maker und Elektronikbastler eigene Chips entwerfen. Wie das geht, zeigt Ihnen dieses Buch. Zunächst wird erklärt, was FPGAs sind und wie sie funktionieren. Es folgt eine Einführung in die Hardwarebeschreibungssprache VHDL, die für die Projekte in diesem Buch verwendet wird. Danach wird Schritt für Schritt anhand zunächst ganz einfacher Beispiele erläutert, wie man eine Schaltung mithilfe eines FPGA realisiert. Im weiteren Verlauf werden die Schaltungen anspruchsvoller. Den Abschluss bildet ein Projekt, bei dem das Spiel 'Pong' in Hardware realisiert wird. Die Anzeige erfolgt auf einem RGB-LED-Matrix-Display, dessen Ansteuerung per FPGA im Detail beschrieben wird. Die Projekte im Buch werden auf Basis kostenlos verfügbarer FPGA-Entwicklungsumgebungen der Hersteller Altera, Lattice, Microsemi und Xilinx sowie günstiger FPGA-Boards konkret umgesetzt. Dabei wird auf die Übertragbarkeit auf andere Systeme geachtet. Die verwendeten Entwicklungsumgebungen und FPGA-Boards werden außerdem kurz vorgestellt. Cord Elias konzentriert sich primär auf die Vermittlung von Fähigkeiten zum selbstständigen Umgang mit FPGAs. Er nimmt die Leserinnen und Leser an die Hand und leitet sie sicher durch eine Vielzahl von Details. Dass der Spaß dabei nicht zu kurz kommt, versteht sich von selbst. Der Quellcode zu allen Design-Beispielen steht zum Download bereit.

Dipl.-Ing. Cord Elias hat über 20 Jahre Industrieerfahrung im Bereich 'Embedded Systems'. Seit einigen Jahren ist er in diesem Fachgebiet als selbstständiger Berater tätig. Seine Schwerpunkte beinhalten modellbasierte Entwicklung und automatische Codegenerierung.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

3 FPGA-Grundlagen


3.1 Was ist ein FPGA?


Ein FPGA kann als Ansammlung von Grundelementen wie Gatter, Flip-Flop, Speicherzelle etc. angesehen werden, die in einem gemeinsamen Gehäuse vorhanden sind, aber noch miteinander verdrahtet werden müssen, um eine bestimmte Funktion zu realisieren. Sehr vereinfacht kann ein FPGA auch als vorbestücktes Steckbrett im Mikroformat betrachtet werden. Elemente wie Gatter und Flip-Flops sind schon fertig aufgesteckt, nur die Verdrahtung muss noch vom Anwender vorgenommen werden. Anstatt wie auf dem Steckbrett Drähte einzustecken, werden beim FPGA die elektrischen Verbindungen durch das Schließen von auch schon vorhandenen »Schaltern« vorgenommen. Abbildung 3-1 zeigt den sehr stark vereinfachten prinzipiellen Aufbau eines FPGA. Man erkennt in Abbildung 3-1 Folgendes:

  • Es gibt Grundelemente, die intern flexibel miteinander verbunden werden können (hier: UND-Gatter, Inverter, D-Flip-Flop).

  • Die meisten Pins des Chips können flexibel den Ein- bzw. Ausgängen der internen Elemente zugeordnet werden (die hier dargestellte Aufteilung in Eingangs- und Ausgangspins existiert in der Praxis so nicht, vielmehr sind die meisten Pins sowohl als Eingang als auch als Ausgang konfigurierbar).

  • Es gibt auch spezielle Pins (hier ein Clock-Eingangs-Pin).

  • Weitere spezielle Pins, zum Beispiel zur Spannungsversorgung, sind vorhanden, auch wenn sie hier nicht explizit gezeigt werden.

Die hier als Schalter dargestellten Verbindungspunkte sind bei einem FPGA im Auslieferzustand alle offen. Mit Hilfe der entsprechenden Designsoftware wird festgelegt, welche »Schalter« für die gewünschte Anwendung geschlossen werden. Man kann sofort erkennen, dass beim Definieren der Verbindungspunkte sorgfältig vorgegangen werden muss, weil sonst schnell Fehler passieren können (z.B. das Kurzschließen zweier Eingänge), die unter Umständen zur Zerstörung des Chips führen. Allein aus diesem Grund werden die »Schalterstellungen« nicht manuell definiert, sondern durch eine spezielle Entwicklungssoftware; einmal ganz davon abgesehen, dass selbst einfachste FPGA so komplex sind, dass ein manuelles Definieren der Konfiguration auf Low-Level-Ebene vollkommen unpraktikabel ist.

Abbildung 3-1: FPGA – prinzipieller Aufbau

Weiterhin erwähnenswert ist, dass die Pins in der Regel auch in Hinsicht auf physikalische Details wie I/O-Pegel (z.B. 3.3V, 2.5V, 1.8V; ein FPGA kann auch sehr elegant als Pegel-Konverter eingesetzt werden), max. Ausgangsstrom usw. konfiguriert werden können bzw. müssen. Die spezifischen Details hängen immer vom verwendeten Chip ab und müssen in der Entwicklungspraxis neben vielen anderen Dingen bei der Auswahl eines FPGA für einen bestimmten Anwendungsfall berücksichtigt werden.

Zu den I/O-Pegeln sei an dieser Stelle schon angemerkt, dass heute verfügbare FPGAs in aller Regel nicht 5V-kompatibel sind. Wer z.B. ein FPGA mit einem Arduino Uno »verheiraten« möchte, sollte die Verbindungsleitungen zwischen Arduino und FPGA über für diesen Zweck geeignete Pegelkonverter leiten.

Selbst mit dem in Abbildung 3-1 dargestellten idealisierten Mini-FPGA lassen sich bereits diverse Schaltungen realisieren, von denen in Abbildung 3-2 einige dargestellt sind. Jede Schaltung kann durch einfache Umkonfiguration des FPGA schnell erzeugt werden, ohne dass an der Hardware irgendetwas geändert werden muss. Dieses Merkmal ist besonders für das Rapid Prototyping interessant. FPGAs sind aber auch im Serieneinsatz und haben dort in einigen Bereichen ASICs1 abgelöst (natürlich auch in Abhängigkeit von Faktoren wie Stückzahlen). Beim Serieneinsatz von FPGAs ist ein interessanter Aspekt, dass auch nach der Auslieferung noch vergleichsweise einfach Änderungen am Hardwaredesign vorgenommen werden können, vergleichbar mit einem Software- bzw. Firmwareupdate.

Abbildung 3-2: Beispielschaltungen

Zum Speichern der Konfigurationsinformationen in dem FPGA existieren im Wesentlichen zwei Ansätze:

  • Statisches RAM (SRAM): Hier gehen die Konfigurationsinformationen komplett verloren, sobald das FPGA von der Spannungsversorgung getrennt wird. Das bedeutet, dass beim Hochfahren der Hardware (= Anlegen der Versorgungsspannung) die Konfiguration jedes Mal wieder neu »eingespielt« werden muss. Dazu gibt es verschiedene Verfahren, verbreitet ist die Verwendung spezieller EEPROMS mit SPI-Schnittstelle.

  • Flash-Speicher: Hier bleibt die Konfiguration beim Abschalten erhalten. Auf der anderen Seite benötigt Flash-Speicher mehr Platz auf dem Chip und ist relativ teuer.

In Wirklichkeit ist das Ganze noch wesentlich komplexer als bisher dargestellt. Beispielsweise finden sich in einem typischen FPGA keine einzelnen UND-Gatter etc. Die Basisbausteine bilden vielmehr Elemente, die je nach Hersteller z.B. »Logic elements« oder »Logic Cells« genannt werden. Sie beinhalten als wesentliche Bestandteile ein bis zwei Lookup-Tables und ein oder zwei Flip-Flops sowie Infrastruktur zum Routen der Signale wie Multiplexer (alles abhängig vom Hersteller und vom genauen FPGA-Typ). Mit Hilfe eines Lookup-Table können sämtliche logischen Kombinationen zwischen den Eingangssignalen (für die hier betrachteten FPGAs typisch 3 ... 6) dieses Basisbausteins gebildet werden.

Anhand eines kleinen Beispiels soll ein Lookup-Table erklärt werden. Es soll die Funktion o = (i1|i2)&i3 implementiert werden. Abbildung 3-3 enthält die entsprechende Schaltung.

Abbildung 3-3: LUT-Beispielschaltung

Die (booleschen) Eingangssignale ›il‹, ›i2‹ und ›i3‹ können als Indices für den Lookup-Table angesehen werden, für jede Kombination dieser Eingangswerte ergibt sich ein eindeutiger Ausgangswert ›o‹.

Dieses einfache Beispiel sollte man mit Papier und Bleistift nachvollziehen, wenn es beim ersten Lesen nicht klar ist. Es wäre dann sinnvoll, zunächst den Ausgang des ODER-Gatters als Zwischenwert zu bestimmen und im zweiten Schritt die UND-Verknüpfung dieses Zwischenergebnisses mit dem dritten Eingang zu ermitteln, was dann auch schon das gesuchte Ausgangssignal ›o‹ liefert. Genauso kann man sich auch andere einfache oder auch komplexere Schaltungen überlegen und dazu den entsprechenden Lookup-Table aufstellen. Letztendlich wird man zu dem Schluss kommen, dass jede beliebige kombinatorische Schaltung mit Hilfe eines Lookup-Table realisiert werden kann. Im Web findet man auch Generatoren für Lookup-Tables, z.B. unter http://programming.dojo.net.nz/study/truth-table-generator/.

i1

i2

i3

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

0

1

0

1

1

1

1

0

0

1

1

1

1

Tabelle 3-1: Wahrheitstabelle zu Abbildung 3-3

Eine wiederum stark vereinfachte und idealisierte Version einer »Logic Cell« (oder wie auch immer dieses Basiselement vom jeweiligen Hersteller bezeichnet wird) ist in Abbildung 3-4 dargestellt.

Neben dem Lookup-Table (LUT) sind noch ein Multiplexer (MUX) und ein Flip-Flop (FF) dargestellt. Als Flip-Flop-Typ (D, J/K etc.) wird in der Regel das D-Flip-Flop verwendet. Außerdem sind für das Flip-Flop neben Daten- und Clock-Eingang noch Eingänge für Clock-Enable (CE) und Set/Reset (S/R) dargestellt.

Diese Logikzellen werden häufig paarweise zusammengefasst, dieses Konstrukt nennt sich dann zum Beispiel »Slice«. Selbst einfache FPGA, wie sie für Maker interessant sind, enthalten in der Regel wenigstens 1000 Logikzellen.

Neben den Logikzellen befinden sich auf einem FPGA noch weitere Basisbausteine, die hier jetzt nur kurz erwähnt werden (Ausprägung und Menge hängen wieder stark vom FPGA-Typ ab):

  • I/O-Zellen: Spezielle Elemente, welche die Verbindung zwischen den Pins und den weiteren Resourcen des FPGAs herstellen. Zum Teil befinden sich dort auch Flip-Flops, welche z.B. zum Abtasten eines Eingangssignals mit der Basisfrequenz des FPGAs verwendet werden können. Auch spezielle Schaltungen z.B. zum Interfacing mit Schnittstellen wie dem PCI-Bus sind dort untergebracht.

    Abbildung 3-4: Idealisierte Logikzelle

  • PLLs2 und Clock-Manager: FPGA-Boards enthalten häufig einen Quarzgenerator mit einer festen Frequenz, z.B. 100 MHz, der das FPGA mit einem zentralen Clock-Signal versorgt. Für verschiedenste Anwendungen werden jedoch Clock-Signale mit einer anderen Frequenz oder sogar mehrere Clock-Signale benötigt. Dafür sind PLLs und Clock-Manager...

Blick ins Buch
Inhaltsverzeichnis
Vorwort5
Inhaltsverzeichnis7
I Einführung11
Wieso FPGAs für Maker?13
Struktur und Verwendung dieses Buchs15
FPGA-Grundlagen19
Was ist ein FPGA?19
Entwicklungsablauf im Überblick26
VHDL-Einführung30
Eine erste Dosis VHDL31
Notwendige Ausstattung37
II Einfache Schaltungen39
Los geht's – das erste FPGA-Projekt41
Einführung41
Vorbereitendes Experiment und Workflow44
Logik-Gatter70
Simulation79
Zusammenfassung87
„Hello World“ – es blinkt89
Getaktete Digitalsysteme89
Zähler94
Simulation des Binärzählers98
Ein Teiler für die LED101
Blinken mit Hardware101
Verfeinerter Binärzähler104
Zusammenfassung107
VHDL-Intermezzo109
Sprachstandards109
Struktur eines VHDL-Files109
VHDL-Statement111
Concurrent Sequential113
Ein wenig mehr VHDL120
Ausgewählte VHDL-Konstrukte und -Designmuster131
Synchrone Digitalsysteme138
Universelle Grundstruktur139
Zusammenfassung151
Bausteine und Entwurfsmuster153
Clock-Signale153
Verwendung von IP161
Synchronisierung und Entprellung168
Zustandsautomat179
Zusammenfassung186
Siebensegmentanzeigen187
Aufbau und Funktion187
Einfacher Test mit einem Element189
Umwandlung von Binärcode in eine Hex-Zahlendarstellung190
Umwandlung von Binärcode in eine Dezimalzahlendarstellung193
Mehr als ein Digit – Multiplexing197
Komplettbeispiel200
Zusammenfassung207
Spielereien mit Leuchtdioden209
Als die Lichter laufen lernten209
Dimmen einer LED211
RGB-LEDs221
Zusammenfassung228
III Weiterführendes und Projekte229
Wie kommt man weiter?231
FPGA-Board231
FPGA-Entwicklungsumgebung und Workflow232
VHDL236
Digitaluhr auf FPGA-Basis237
Merkmale der Digitaluhr237
Anforderungen an die Hardware237
Entwicklung des Schaltungskonzepts238
Implementierung241
Integration266
Zusammenfassung273
Ansteuerung eines RGB-LED-Matrix-Displays275
Grundlagen275
Schaltung zur Display-Ansteuerung284
Pong316
Zusammenfassung329
Ausflug zu Verilog331
Einstieg in Verilog331
Einbinden eines Verilog-Moduls in ein VHDL-Projekt333
Simulation bei der Verwendung von Verilog-Modulen338
IV Anhang341
VHDL-Kurzübersicht343
entity343
architecture343
component344
process346
Datentypumwandlungen347
Initialisierung mit others349
Bedingte Ausführung349
FPGA-Werkzeugketten353
Altera-Werkzeugkette „Quartus Prime Lite Edition“357
Anlegen eines neuen Projekts358
Anlegen eines neuen VHDL-Files365
Einbinden eines schon vorhandenen VHDL-Files368
Analyse und Synthese369
Pin Planning370
Place & Route, Erzeugung des Bitstreams371
Download372
Lattice-Werkzeugkette „Diamond“377
Anlegen eines neuen Projekts378
Anlegen eines neuen VHDL-Files383
Einbinden eines schon vorhandenen VHDL-Files385
Eingabe von Constraints387
Synthese, Mapping, Place & Route388
Generierung der Konfigurationsdaten389
Download390
Microsemi-Werkzeugkette „Libero SoC“395
Anlegen eines neuen Projekts396
Anlegen eines neuen VHDL-Files400
Einbinden eines schon vorhandenen VHDL-Files404
Synthese406
Definition von I/O-Constraints407
Erzeugen der Konfigurationsdaten409
Download410
Xilinx-Werkzeugkette „ISE“411
Anlegen eines neuen Projekts412
Anlegen eines neuen VHDL-Files415
Anlegen von I/O-Constraints420
Einbinden eines schon vorhandenen VHDL-Files423
Implementierung425
Erzeugung des Bitstreams426
Download427
Vergleich der Werkzeugketten429
FPGA-Boards für Maker431
Einige Bezugsquellen431
Board-Übersicht432
Boards, Boards, Boards433
Glossar445
Literaturverzeichnis449
Index449
www.dpunkt.de0

Weitere E-Books zum Thema: Hardware - Rechnerarchitektur - Softwaresysteme

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Softwareentwicklung eingebetteter Systeme

E-Book Softwareentwicklung eingebetteter Systeme
Grundlagen, Modellierung, Qualitätssicherung Format: PDF

Eingebettete Systeme übernehmen komplexe Steuerungs- und Regelungsaufgaben für technische Systeme. Ihre Funktionalität wird durch das Zusammenspiel von Spezialhardware, Standardprozessoren,…

Weitere Zeitschriften

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

BMW Magazin

BMW Magazin

Unter dem Motto „DRIVEN" steht das BMW Magazin für Antrieb, Leidenschaft und Energie − und die Haltung, im Leben niemals stehen zu bleiben.Das Kundenmagazin der BMW AG inszeniert die neuesten ...

CE-Markt

CE-Markt

CE-Markt ist Pflichtlektüre in der Unterhaltungselektronik-Branche. Die Vermarktung von Home und Mobile Electronics mit den besten Verkaufsargumenten und Verkaufsstrategien gehören ebenso zum ...

Correo

Correo

 La Revista de Bayer CropScience para la Agricultura ModernaPflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und am Thema Interessierten mit umfassender ...

Gastronomie Report

Gastronomie Report

News & Infos für die Gastronomie: Tipps, Trends und Ideen, Produkte aus aller Welt, Innovative Konzepte, Küchentechnik der Zukunft, Service mit Zusatznutzen und vieles mehr. Frech, offensiv, ...

Die Versicherungspraxis

Die Versicherungspraxis

Behandlung versicherungsrelevanter Themen. Erfahren Sie mehr über den DVS. Der DVS Deutscher Versicherungs-Schutzverband e.V, Bonn, ist der Interessenvertreter der versicherungsnehmenden Wirtschaft. ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...