FPGA vs. Mikrocontroller Name: Jan Becker Matrikelnummer: 546508 Agenda - Kurzvorstellung eines FPGAs - Komponenten eines FPGAs - Programmierung eines FPGAs - Kurzvorstellung eines Mikrocontrollers - Komponenten eines Mikrocontrollers - Programmierung eines Mikrocontrollers - Gegenüberstellung der wichtigsten Merkmale - Zusammenfassung markanter Unterschiede - Quellen - Ende 1
Kurzvorstellung eines FPGAs FPGA: Field Programmable Gate Array Programmierung erfolgt beim Kunden - Ein FPGA verfügt über logische Basiszellen - Gewünschte Funktionsweise wird seitens des Kunden in Basiszellen implementiert - Programmiermethoden: Lookup Tables oder Antifuses - Logische Basiszellen sind matrixförmig oder reihenartig angeordnet - Informationsfluss I/O-Blöcke - Mehrere Taktgeneratoren und Aufbereitungen, um räumliche Distanz zu kompensieren Kurzvorstellung eines FPGAs Zwei Arten von FPGAs: - Nichtrekonfigurierbare FPGAs: Keine Rekonfiguration nach erster Konfiguration - Programmspeicherung auf Programmable Read Only Memory (PROM) - Rekonfigurierbare FPGAs: Können nach erster Konfiguration umkonfiguriert werden - Programmspeicherung auf Erasable Programmable Read Only Memory (EPROM) - Alternativ auf Electrically Erasable Programmable Read Only Memory (EEPROM) 2
Komponenten eines FPGAs - RAM-Blöcke (Flüchtiger Speicher) - Multiplexer zur schnellen Ausführung von Multiplikationen - Prozessoren können zusätzlich implementiert werden: -Soft Cores: Prozessor wird mithilfe der Logikblöcke implementiert -Hard Cores: Prozessor wird über zusätzliche Hardware implementiert Programmierung eines FPGAs Zwei verschiedene Methoden werden zur Programmierung von FPGAs angewendet: - Bei nichtrekonfigurierbaren FPGAs: - Programmierung über Antifuses - Isolationsschichten werden zu einer leitenden Verbindung geschmolzen - Bei rekonfigurierbaren FPGAs: Programmierung über Lookup Tables - Mit Wahrheitstabelle vergleichbar - Multiplexer ordnet jedem Eingangssignal ein Ausgangssignal zu - Häufige Programmiersprache: Hardware Description Language - Wird nur bis zu einem bestimmten Komplexitätslevel verwendet 3
Programmierung eines FPGAs Programmierung komplexer Anwendungen: - Simulation und Verifikation: - Einbindung der Hardwarebeschreibung in eine Testumgebung - Eventuelle Fehler können behoben werden - Synthese: - Herstellerprogramm übersetzt den Schaltungsentwurf in eine Netzliste - Vorraussetzung: Das Programm aus HDL muss übersetzungsfähig sein - Platzierung und Verdrahtung: - Die Herstellersoftware verdrahtet die Elemente der Netzliste Kurzvorstellung eines Mikrocontrollers - Baustein, der ein installiertes Programm zeilenweise abarbeitet - Häufige Verwendungszwecke für Mikrocontroller: - Analoge Signale in digitale Werte ableiten - Realisierung von Regelungen und Steuerungen - Prozessüberwachung - Koordination von Robotern - Visualisierung von Ereignissen auf Displays - Erstellung von Kommunikationsprotokollen 4
Komponenten eines Mikrocontrollers - Programmierschnittstelle - In System Programming- Schnittstelle - I/O- Schnittstellen - Können als Datenausgang oder als Dateneingang programmiert werden - Analog-Digital-Wandler - Setzt ein analoges Signal in einen digitalen Wert um - Meist mehrere Wandler, die über einen Multiplexer einzeln selektiert werden - Serielle Schnittstelle - Datenaustausch mit anderen Komponenten möglich - Taktgenerator - Ein interner Quarz erzeugt die Taktvorgabe Kurzvorstellung eines Mikrocontrollers - Beispiel: ATmega32: - Versorgungsspannung: 5 V - 40-Pin-Gehäuse - 32 kb Flash-Speicher - 10.000 Schreib- und Löschvorgänge möglich - 1024 kb Arbeitsspeicher - 100.000 Schreib- und Löschvorgänge möglich - Zwei 8-Bit-Timer bzw. Zähler - Ein 16-Bit-Timer bzw. Zähler - 32 programmierbare I/O- Anschlüsse - Serielle Schnittstelle - Acht Mal 10-Bit Analog-Digital-Wandler 5
Programmierung eines Mikrocontrollers Ein Mikrocontroller kann über die ISP-Schnittstelle programmiert werden - Beispiel STK500: Board wird über die COM-Schnittstelle mit dem PC verbunden Programmierung eines Mikrocontrollers Beispielprogramme: 1. Konfigurationen des Controllers 6
Programmierung eines Mikrocontrollers Beispielprogramme: 2. Deklaration von Variablen Programmierung eines Mikrocontrollers Beispielprogramme: 3. Verwendung von Schleifen 7
Gegenüberstellung wichtiger Merkmale FPGA Mikrocontroller - Häufig benötigte Hardware integriert - Minimale Hardwareausstattung - Konfiguration durch Hardwareeingriffe - Konfiguration durch Programmierung - Kann Aufgaben parallel bearbeiten - Aufgaben werden seriell bearbeitet Beispiel: Addition zweier Zahlen: Quellen [1] Technische Universität München: FPGAs und Mikrocontroller Ein Vergleich [2] Universität Ulm: Proseminar FPGAs [3] Elektronik Praxis: Einheitliche Systemlösungen für Embedded-Technologie [4] Unbekannter Autor: Digitaltechnik 1, kombinatorische Schaltungen [5] Atmel: Datenblatt ATmega32 8
Ende Ich bedanke mich für Ihre Aufmerksamkeit! 9