FPGA Field Programmable Gate Array im Unterschied zu anderen PLD-Architekturen. Kasdaghli Ameni Inhalt. Die Klassifizierung von ASIC 2. Simple Programmable Logic Device SPLD 3. Complex Programmable Logic Device CPLDs 4. Field Programmable Gate Array : FPGA 5. Unterschiede zwischen PLDs und FPGAs
Die Klassifizierung ASIC Custom Semi-custom Programmable CI Full custom Gate array FPGA PLD Standard Cell Sea of Gate CPLD SPLD Antifused PAL PLA PROM GAL ASIC Custom Semi-custom Programmable CI Full custom Gate array FPGA PLD Standard Cell Sea of Gate CPLD SPLD Antifused PAL PLA PROM GAL 2
SPLD Simple Programmable Logic Device Nach programmierbaren Charakter der AND und Oder Matrizen gibt es: PAL (programmierbare Array-Logik): Matrix aus programmierbarem UND- Matrix, nicht programmierbarem Oder-Matrix. PROM (Programmable Read Only Memory): nicht programmierbare UND-Matrix, programmierbare ODER-Matrix PLA (Programmable Logic Array): Programmierbare UND Matrix, Matrix ODER Programmierbare PAL PAL : Grundkonzept von PLD (Programmable Logic Device) PAL: Die Anordnung der Transistoren und Verbindungen ist fest, aber man kann eine Verbindung zerstören oder zurücksetzen. Prinzip: Unabhängig von der Komplexität einer logischen Funktion kann sie in Form einer Summe von Produkten geschrieben werden: anwendung UND und ODER 3
Programmier bar Matrix UND Matrix ODER fest Verbindung nicht programmierbar Verbindung programmierbar PLA Beide Matrizen sind programmierbar 4
PROM Matrix AND nicht programmierbar Matrix ODER programmierbar Die UND-Matrix dient als Adressdecoder. Für jeden Adresswert erzeugt der FPGA einen programmierten Wert. Beispiel PLA 5
l l l Beispiel PAL Beispiel PROM a b c Predefined link Programmable link Address Address Address 2 Address 3 Address 4 Address 5 Address 6 Address 7 a!a b!b c!c!a!b!c!a!b c!a b!c!a b c a!b!c a!b c a b!c a b c Programmable OR array Predefined AND array w x y 6
l l l a b c Predefined link Programmable link Address Address Address 2 Address 3 Address 4 Address 5 Address 6 Address 7 a!a b!b c!c!a!b!c!a!b c!a b!c!a b c a!b!c a!b c a b!c a b c Programmable OR array Predefined AND array w x y w = (a b) x =!(a b) y = (a b) ^ c ASIC Custom Semi-custom Programmable CI Full custom Gate array FPGA PLD Standard Cell Sea of Gate CPLD SPLD Antifused PAL PLA PROM CPLD : Complex Programmable Logic Device GAL 7
Komplexe programmierbare Schaltkreis (CPLDs) CPLD: eine Erweiterung von PAL-Schaltungen. Ein CPLD enthält mehrere PALs oder PLAs auf einem einzigen Chip mit einem Verbindungsnetzwerk Das Netzwerk ermöglicht es, die Blöcke miteinander zu verbinden. Es ist daher möglich, sehr komplexe logische Funktionen einschließlich Zustandsmaschinen und kleinen Speichern zusammenzustellen. CPLDs bieten in einigen Fällen eine interessante Alternative zu FPGAs: geringer Stromverbrauch Blöcke sehr kleine Größe (z. B. 25 mm2 gegenüber 5 mm2 für ein kleines FPGA) nichtflüchtiger Speicher zur Programmierung Die CPLDs enthalten mehrere PALs, die durch ein Netzwerk programmierbarer Verbindungen miteinander verbunden sind. PAL PAL CPLDs sind die Prämissen der ersten FPGAs. Diese Schaltungen werden heute nicht mehr verwendet, da sie durch FPGAs ersetzt werden. I/O Verbindungsmatrix I/O PAL PAL Programmiertechnik ist in der Regel EEPROM oder Flash-EPROM) Ein einzelner Verbindungspunkt verbindet die logischen Blöcke. Die Signallaufzeiten sind konstant und vorhersagbar (vor dem Routing). Dies ist bei FPGAs nicht der Fall (siehe später) 8
ASIC Custom Semi-custom Programmable CI Full custom Gate array FPGA PLD Standard Cell Sea of Gate CPLD SPLD Antifused PAL FPGA : Field Programmable Gate Array PLA Die logischen Blöcke sind zahlreicher und einfacher als die CPLDs, aber dieses Mal sind die Verbindungen zwischen den logischen Blöcken nicht mehr zentralisiert PROM GAL Field Programmable Gate Array : FPGA Ein programmierbares Logikblocknetzwerk (Configurable Logic Block -CLB), Jeder Block kann komplexe Funktionen aus mehreren Variablen und Speicherelementen ausführen Ein Netzwerk programmierbarer Verbindungen zwischen die Blöcke. Spezielle Eingabe- und Ausgabeblöcke mit der Außenwelt(Input/Output Block IOB). 9
Konfigurierbare Auswahl Eingang 4-LUT D Q Ausgang
LUT sind kleine Speicherelemente, die die Wahreitstabelle einer logischen Funktion widerspiegeln. LUT 4 Eingang = RAM 2Byte In In In 2 In 3 In In In 2 In 3 LUT 4 Z Z In In In 2 In 3 Out
In = In In 2 In 3 Out In = In In 2 In 3 Out 2
In = In = In 2 In 3 Out In = In = In 2 In 3 Out 3
In = In = In 2 = In 3 = Out= = In3 In2 In Ino FPGA Vernetzung 4
Der Übergang von einem Logikblock zu einem anderen wird durch eine Anzahl von Verbindungspunkten (verantwortlich für die Laufzeit) in Abhängigkeit von der relativen Position der beiden Logikblöcke und dem Überlastungszustand der Matrix vorgenommen. Diese Verzögerungen sind daher (anders als bei der CPLD) vor der Anordnung von der Routing nicht vorhersehbar. Die Anordnungsphase der Logikblöcke hängt daher sehr stark von der Leistung der Schaltung in Bezug auf die Geschwindigkeit ab FPGA: programmierbare Verbindungen Verbindungsmatrix programmierbar (Programmable Switch Matrix) Xilinx 5
FPGA: programmierbare Verbindungen CLB CLB Element eines Verbindungsmatrix(PSM) CLB I/O Blocs Input / Output-Blöcke (IOBs) steuern den Datenfluss zwischen FPGA-Pins und der internen Benutzerlogik Bidirektional 6
Unterschiede zwischen CPLDs und FPGAs Eigenschaften CPLDs FPGAs Aufbau der Logikzellen Verbindungen wenige große Blöcke mit integrierter Logik und E/A Makrozellen PAL Logik (AND/OR Matrix) 22 48 Eingänge 8 32 Makrozellen pro/bl. 8 32 Ausgänge alle Makrozellen benutzen die gleichen Eingänge zentrale globale Verbindungen keine Verdrahtung notwendig große Anzahl relativ kleiner Funktionselemente (feinkörnig) Logik: MUX oder LUT (RAM) 4 3 Eingänge 2 4 Makrozellen 2 4 Ausgänge dezentrale lokale Verbindungen Verdrahtung notwendig Eigenschaften CPLD FPGA E/A Signallaufzeiten relativ feste Konfiguration der Verbindungsleitungen zwischen Makrozellen und Pins schneller Signalweg von Logikmakrozellen zu Pins keine separaten Ausgangsregister homogen konstant relativ kurz vorhersagbar Geschwindigkeit nicht abhängig von Schaltung Komplexität mittel hoch frei zuordenbaren E/A Blöcken jede Logikmakrozelle kann mit jedem Pin verbunden werden separate Ausgangsregister vor den Pins stark vom konkreten Signalweg abhängig ungleichmäßig auch hohe Werte möglich erst durch Layout Extraktion zu bestimmen Geschwindigkeit abhängig von der Schaltung 7
Eigenschaften CPLD FPGA Flexibilität mittel Hoch Flächenausnutzung 4% 6% 5% 95% Stromverbrauch hoch bis sehr hoch gering bis mittel Einsatzgebiete bei breiten Eingangsfunktionen einfache Realisierung schneller komplexer statemachines registerintensive Schaltungen Vor /Nachteil Preis pro Gatter mittel bis hoch Preis pro Gatter gering bis hoch anspruchsvolle Software erforderlich angemessene Verdrahtungsressourcen erforderlich einfacher Umstieg auf Bausteine höherer Komplexität bei Beibehaltung der Leistungsdaten Eigenschaften CPLD FPGA Anzahl Makrozellen/LE 8... 52 28... 2. Anzahl I/O Pins 44... 27 44... 2 Total RAM Blocks 8Kbits 68 MBits Taktfrequenzen bis 6 MHz 5 MHz 8
Quellen Handbuch der Mess- und Automatisierungstechnik im Automobil: Fahrzeugelektronik, Fahrzeugmechatronik, Ausgabe 2 https://fr.slideserve.com/gavan/cible-mat-rielle-asic-fpga-sopc https://www.tuilmenau.de/fileadmin/media/mne_ess/asic_pld_design 24_Script.pdf Danke für Ihre Aufmerksamkeit 9