| Übersicht | Leseproben | Inhaltsverzeichnis | CD-ROM | Ergänzungen&Druckfehler | Buch bestellen |
2 Was ist ein FPGA?
Das Field Programmable Gate Array (FPGA) ist ein relativ neuer Baustein, der zum Aufbau digitaler, logischer Schaltungen dient. Er besteht im wesentlichen aus einzelnen Funktionsblöcken, die in einer regelmäßigen Struktur (engl.: Array) angeordnet sind, und einem Netzwerk von Verbindungen zwischen diesen Blöcken. Die speziellen Funktionen der einzelnen Blöcke und die Auswahl der benötigten Verbindungen sind programmierbar. Die Programmierung geschieht dabei durch das elektrische Einschreiben der Konfigurationsdaten in das FPGA. Damit kann in das FPGA eine bestimmte vom Anwender entwickelte Schaltung implementiert werden. Man spricht dabei auch von einer Personalisierung des Bausteins. Zu den Begriffen Programmieren, Konfigurieren und Personalisieren siehe auch die Anmerkungen im ersten Abschnitt von Kapitel 6.
2.1 Eine kleine Geschichte der Logikbausteine
Bereits Mitte der 60er Jahre hatten Sven Wahlstrom [Wah67] und andere Pioniere eine radikale Idee: Anstelle der festen Verbindungsstellen in einem integrierten Schaltkreis könnten doch auch zusätzliche Logikgatter diese Aufgabe übernehmen. Dieser Vorschlag war für damalige Verhältnisse sehr gewagt, da die Anzahl der Logikgatter auf einem Chip noch sehr beschränkt war. Vorausschauende Köpfe wußten aber, daß das nicht so bleiben würde. Es sollte dann doch noch 20 Jahre dauern, bis 1985 die Firma Xilinx das erste kommerzielle FPGA vorstellte.
In den 60er Jahren wurden digitale Schaltungen zunächst aus diskreten Transistoren, dann aus Integrierten Schaltungen (IC) geringer und mittlerer Integrationsdichte (SSI, MSI) aufgebaut. Diese TTL-Bausteine hatten eine festgelegte Funktion. Gleichzeitig war ihre Komplexität noch klein genug, so daß diese festen Funktionen allgemein gehalten und sie als Grundbausteine beliebiger, digitaler Schaltungsentwürfe benutzt werden konnten. Es wurden daher ganze Familien solcher Bausteine gefertigt, die untereinander elektrisch kompatibel waren. Die bekannteste davon ist die TTL-Familie der 74er-Reihe mit dem Primus 7400, der 4 NAND-Gatter beinhaltet. Der Schaltungsentwurf bestand damals aus folgenden Schritten:
Dieses Vorgehen stieß bald an seine Grenzen. Mit zunehmender Schaltungskomplexität wurden immer größere Leiterplatten erforderlich, auf der die Bausteine in Reih und Glied angeordnet wurden. Mit einer gewissen Doppeldeutigkeit wurden solche Platinen als TTL-Friedhof bezeichnet, siehe Abbildung 2.1. Das Problem lag nicht in erster Linie in der Platinengröße, sondern in der hohen Anzahl von Bausteinen und Verbindungsleitungen. Dadurch war die Wahrscheinlichkeit eines Verbindungsfehlers sehr hoch. Durch die Reduzierung der Anzahl der Komponenten einer Schaltung wird die Zuverlässigkeit erhöht, der Platzbedarf verringert, und es werden insbesondere die Kosten gesenkt.

Abbildung 2.1 Vergleich TTL-Friedhof mit FPGA
Durch die Fortschritte der Prozeßtechnologie zur Fertigung integrierter Schaltungen konnten Bausteine mit hoher und sehr hoher (LSI, VLSI) Integrationsdichte hergestellt werden. Mit der wachsenden Anzahl von Transistoren pro Chip wurden zwangsweise auch die Funktionen der Chips komplexer. Diese großen Bausteine konnten nicht mehr allgemein verwendet werden, die Ära der Bausteinfamilien war vorüber. Es wurden neue Entwurfsansätze benötigt, um ein System aus wenigen großen Bausteinen aufbauen zu können. Es entwickelten sich im wesentlichen drei Ansätze: