DesignSpark Electrical Logolinkedin
Menu Suche
Ask a Question

Die Welt der FPGA und ASIC: Teil 1

                                                                                                                                                  Bildnachweis: Microsoft Research

In Teil 1 dieses zweiteiligen Beitrags geht es um die Ursprünge programmierbarer Hardware, mit der die Anzahl der Chips auf vielen Leiterplatten reduziert werden konnte. Teil 2 zeigt, wie FPGA und ASIC jetzt bei hohen Anforderungen an Geschwindigkeit und Zuverlässigkeit Mikroprozessor und DSP ersetzen.

Die Anfänge der digitalen Logik

1953 wurde an der Universität von Manchester der erste halbleiterbasierte Computer gebaut, auf dem Programme laufen konnten. Er enthielt 92 Spitzentransistoren und 550 Dioden, erreichte aber durchschnittlich nur etwa 33 Befehle pro Sekunde. Zumindest war er wegen dem geringeren Strom- und Platzverbrauch eine große Verbesserung gegenüber den Vorgängermodellen mit Elektronenröhren. Ich erwähne das deshalb, weil es zeigt, dass bereits zu diesem frühen Zeitpunkt die Entwicklung zu immer mehr Verarbeitungsleistung und immer kleineren Geräten begann. Alle digitalen Computer bestehen (bis heute) aus miteinander verbundenen Logikgattern mit den Grundfunktionen AND, OR und NOT. Mit diesen drei Arten von Gattern kann man praktisch alles bauen. Meistens werden sie allerdings in ihrer negativen Form mit umgekehrtem Ausgang verwendet: NAND und NOR. Dies liegt daran, dass dieses Format weniger Transistorstufen erfordert. Es ist ein zusätzlicher invertierender Transistor erforderlich, um AND und OR zu erreichen, wobei sich die Laufzeit und der Leistungsverbrauch entsprechend erhöhen. Diese logischen Funktionen waren so nützlich als Bausteine, dass sie zu den ersten integrierten Schaltkreisen mit kommerzieller Verwendung gehörten. Die 74er-Chips mit Transistor-Transistor-Logik (TTL) sind noch heute erhältlich, wenn auch mit deutlich verbesserter Siliziumtechnologie. Hierzu gehören beispielsweise der 7400 (Vierfach-NAND-Gatter mit 2 Eingängen) und der 7402 (Vierfach-NOR-Gatter mit 2 Eingängen).

Die Computer der späten 1960er und der frühen 1970er Jahre enthielten viele Platinen voller TLL- oder CMOS-Gate-Chips. Mit der Verbesserung der IC-Technologie wurden neue Chips mit „Sonderfunktionen“ (z. B. Zähler und Schieberegister) eingeführt, wodurch sich die Anzahl der Platinen und die Größe des Computers reduzierten. Durch Large Scale Integration (LSI) entstanden die ersten RAM-Chips und dann der Mikroprozessor. Selbst mit einem Single-Chip-Prozessor und Speicherchips war es immer noch sehr schwierig, einen echten Single-Board-Computer herzustellen. Es war für jede Konstruktion noch eine Menge „Glue Logic“ nötig, die jeweils eigens aus Chips mit einfachem Gatter hergestellt wurde.

Die Anordnung der Gatter

Sehr schnell begannen die Chiphersteller mit der Produktion konfigurierbarer Geräte, die Programmable Array Logic (PAL) und Uncommitted Logic Arrays (ULA) genannt wurden. Ein PAL enthält feste Gruppen von AND/OR-Gattern, die als „Product Terms“ bezeichnet werden: Innerhalb jeder Gruppe werden die Gatter durch Sicherungseinsätze miteinander verbunden. Diese Einsätze werden von außen als programmierbarer schreibgeschützter Speicher programmiert. Damit der gewünschte Schaltkreis entsteht, lässt der Programmierer sie gegebenenfalls „durchbrennen“, um unerwünschte Verbindungen zu unterbrechen. Daher waren diese frühen Geräte nur einmal programmierbar (One Time Programmable, OTP) und Fehler konnten nicht korrigiert werden. Sie waren jedoch relativ kostengünstig und der Verlust einiger Chips wurde durch die geringere Gesamtzahl der Chips mehr als wettgemacht. Spätere Geräte verwendeten einen rekonfigurierbaren Verbindungsspeicher, der mit UV-Licht gelöscht werden konnte, bevor EEPROM-Chips aufkamen, die sich in situ umprogrammieren ließen. Neuere Geräte enthalten Flipflops, Multiplikatoren und sogar RAM-Blöcke, die für mehr Vielseitigkeit sorgen. Mit der Einführung von VLSI (Very Large-Scale Integration) sind diese programmierbaren Geräte sehr komplex geworden, wobei der interne Konfigurationsspeicher beim Hochfahren von einem externen EPROM oder Flash-Chip als SRAM geladen wird. So kam es zum FPGA.

Die ULA verfolgten einen anderen Ansatz als die PAL. Der Benutzer begann hierbei mit einer „leeren Leinwand“. Der Hersteller stellte eine Reihe von Softwaretools zur Verfügung, mit denen der Entwickler auf Ebene der einzelnen Transistoren/Dioden einen eigenen Chip entwerfen konnte. So lässt sich ein individuelles Design ohne redundante oder ungenutzte Elemente mit optimierter Geschwindigkeit und Leistung erstellen. Der Nachteil dabei ist, dass der Konstrukteur das Leiterbahn-Layout für das Gerät erstellen muss: ähnlich wie beim Layout einer Leiterplatte mit Einsätzen zwischen den Elementen (einschließlich gemeinsamer Takt-, Netz- und Erdungsverbindung). Der Anwender übergab dem Hersteller ein Diagramm mit den genauen Positionen der einzelnen Elemente auf dem Silizium und eine Maske für die Metallschicht, die für die Verbindungen sorgte. Die Dichte der Elemente war auf ULA nicht sehr hoch, daher ähnelte der Vorgang dem Entwurf einer Leiterplatte. Tatsächlich waren die ULA eine frühe Form der vollständig anpassbaren anwendungsspezifischen integrierten Schaltung (Application-Specific Integrated Circuit, ASIC). Die ASIC wird mit dem gewünschten Design gefertigt und jeder Fehler ist sehr kostspielig. Sie wird also nur hergestellt, wenn das Design voll erprobt ist; wahrscheinlich kommt dabei ein FPGA zum Einsatz. Ein Fehler bei der Entwicklung der ersten Pentium-Mikroprozessoren, der als FDIV-Bug bekannt wurde, hat Intel mehrere hundert Millionen Dollar gekostet.

Ein Beispiel für platzsparende programmierbare Logik

Es folgen nun zwei Darstellungen von Single-Board-Computern aus den 1980er Jahren, einer davon mit vielen einfachen „Glue Logic“-Chips (Abb. 1), der andere mit einem einzelnen ULA-Gerät (Abb. 2). Die meisten werden vielleicht einmal von Clive Sinclairs bahnbrechendem ZX81 gehört haben; der Jupiter Ace, der die Programmiersprache Forth verwendete, ist weniger bekannt. Selbst wenn man den Sockel für die Folientastatur außer Acht lässt, nehmen die vielen Chips des Jupiter Ace zweifellos wesentlich mehr Grundfläche in Anspruch. Die Schaltung für den ZX81 ist sehr ähnlich, aber all die kleinen und mittelgroßen ICs (SSI/MSI) wurden in einem einzigen ULA-Chip zusammengefasst. Interessanterweise wurde der ZX81 ein Jahr vor dem Ace auf den Markt gebracht. Hier zeigt sich, dass wahrscheinlich der Vertrieb am Design beteiligt war: Die Verkaufsprognosen für den Ace waren nicht gut genug, um die Kosten von ULA zu rechtfertigen.

Der FPGA hat sich seit den Tagen von PAL und ULA deutlich weiterentwickelt. Die integrierten Funktionsmodule sind immer komplexer geworden, da immer mehr auf einem einzigen Chip untergebracht wird. Die „Programmierung“ erfolgt über Hochsprachen wie VHDL und Verilog. Bis vor kurzem waren die Preise sehr, sehr hoch und sprengten bei Weitem den Kostenrahmen für Maker. All das hat sich geändert und in Teil 2 werden wir sehen, wie sie in Anwendungen mit künstlicher Intelligenz als Ersatz für Mikroprozessoren und DSP eingesetzt werden.

Aber was ist mit der guten alten „Glue Logic“ als Ersatz? Wenn Sie nur ein kleines, preisgünstiges Gerät mit ein paar grundlegenden Logikfunktionen suchen – keine Sorge, die PAL lebt! In ihrer neuesten Variante heißt sie Simple Programmable Logic Device oder SPLD. Wenig überrascht, dass FPGA und ASIC jetzt als Complex Programmable Logic Devices oder CPLD bezeichnet werden. Warum moderne Single-Board-Computer wie der Raspberry Pi scheinbar keine „Glue Logic“ mehr benötigen? In Teil 2 erfahren Sie es.

Engineer, PhD, lecturer, freelance technical writer, blogger & tweeter interested in robots, AI, planetary explorers and all things electronic. STEM ambassador. Designed, built and programmed my first microcomputer in 1976. Still learning, still building, still coding today.

28 Oct 2019, 9:46

Kommentare