Die ersten FPGAs auf dem Markt hatten eine relativ einfache Architektur. Sie verwendeten statischen Direktzugriffsspeicher (SRAM) für die Schaltungskonfiguration und Lookup-Tabellen (LUT). Die LUT, meist ein Element mit vier Eingängen und einem Ausgang ist das Kern-Logikelement vieler FPGAs auf dem Markt und, zusammen mit programmierbaren Routing, gibt es der Komponente seine Flexibilität und Skalierbarkeit (Bild 1). Die LUT ermöglicht beliebige Wahrheitstabellen in jeder Komponente. Diese bilden die Grundlage für komplexe logische Funktionen und können den Anforderungen entsprechend umprogrammiert werden.
Auf einen Blick
Das Field Programmable Gate Array (FPGA) ist zu einem wichtigen Bestandteil in vielen Designs geworden. Seine Flexibilität macht es möglich, Hardware für sehr niedrige Produktionszahlen individuell anzupassen. Die Skalierbarkeit der FPGAs innerhalb jeder Produktfamilie ermöglicht Optionen mit niedriger Dichte, niedrigen Kosten und einer relativ hohen Leistung.
Die SRAM-Speicherelemente in den meisten FPGAs sind flüchtig: der Konfigurations- und LUT-Inhalt geht verloren, wenn das System heruntergefahren wird. Als Ergebnis werden die Komponenten so konzipiert, dass sie beim Einschalten die Konfiguration automatisch aus einem nichtflüchtigen Speicher abrufen. Diese Rekonfigurierbarkeit kann in Designs genutzt werden, die eine hohe Flexibilität zur Laufzeit benötigen. Eine wachsende Zahl von Komponenten, wie die neueste Generation von SRAM-basierten FPGAs von Lattice, Altera und Xilinx, unterstützen teilweise Rekonfiguration, um verschiedene Hardware-Konfigurationen jederzeit im Betrieb (On-The-Fly) hochzuladen. In der Praxis wird die teilweise Rekonfiguration verwendet, um Teile des FPGA zu aktualisieren, während der Rest des Systems in Betrieb bleibt oder um die Verwendung von programmierbaren logischen Zellen innerhalb des FPGAs zu optimieren (Bild 2).
Die teilweise Neukonfiguration hat sich in Bereichen wie Audio- und Video-Signalverarbeitung bewährt, da sie es erlaubt, Hardware-beschleunigte Algorithmen auf den hereinkommenden Datenstrom abzustimmen. Dies bedeutet, dass ein kleineres Gerät verwendet werden kann, um das gesamte Spektrum der benötigten System-Tasks durch Rekonfiguration modularer Schaltungen in einem Bereich des Netzes zu unterstützen. Wenn partielle Rekonfiguration nicht verwendet werden könnte, müsste jede Schaltung parallel in eine größere Komponente mit fester Konfiguration geladen werden und es wären somit mehr Netzressourcen erforderlich.
Antifuse
Nicht alle FPGAs nutzen flüchtigen Speicher für die Konfiguration. Die ersten nichtflüchtigen Geräte basierten auf Antischmelzsicherungs-Technologie – ein einmalig programmierbares Element, das eine Verbindung bildet, wenn die Sicherung elektronisch von einem externen Programmierer „durchgebrannt“ wird. Geliefert von Microsemi haben Antischmelzsicherungs-FPGAs eine größere natürliche Immunität gegen hochenergetische Strahlung als speicherbasierte Geräte, da die dauerhafte Verbindung, gebildet durch die Antischmelzsicherung, nicht durch Einzelereignis-Störungen verändert werden kann.
Flash
Microsemi hat auch programmierbare nichtflüchtige FPGA-Optionen in Form seiner Smart Fusion-, ProASIC3- und Igloo-Serien. Diese Komponenten kombinieren eine LUT-basierte Architektur mit Konfigurations-Zellen aufgebaut in Flash-Speichertechnologie. Dies ermöglicht, das gesamte System herunterzufahren und jederzeit für den sofortigen Neustart bereit zu sein, da die Konfigurationsdaten im FPGA-Netz erhalten bleiben. Damit entfällt auch der Einschalt-Konfigurationsstrom und spart Energie, wenn die Stromquelle wieder eingeschaltet wird. Im Gegensatz zur Antischmelzsicherungs-Technologie sind die Flash-Speicherzellen neu programmierbar. Wenn ein Fehler während der Entwicklung gemacht wird oder das System muss beim Kunden vor Ort aufgerüstet werden, können die Hardware-Konfigurationen jederzeit geändert werden.
Des Weiteren nutzen die Igloo-, ProASIC3- und Smart Fusion-Komponenten von Microsemi die Flash-Speichertechnologie für den Niedrigenergiebetrieb. Die Igloo-Flash*Freeze-Technologie bringt die Komponente in einen Zustand ultraniedrigen Energieverbrauchs, wenn sie nicht in Gebrauch ist, indem die Daten, die in der Regel in flüchtigen Registern und SRAM-Arrays liegen, in einen Bereich von Flash-Backup-Speicher transferiert werden. Einmal gespeichert, benötigt die Iglu-Komponente den Strom nicht mehr, der für die Aufrechterhaltung des Zustands der flüchtigen Speicher verwendet wird. Durch Einsparen der Leistung für diese Elemente und I/Os kann der Verbrauch auf bis zu 5 µW reduziert werden.
Flash-Speicher hat Hybrid-Architekturen, sowie die Bereitstellung von Funktionen für verbesserte Sicherheit ermöglicht. Der Lattice Mach XO2 zum Beispiel, hat seinen eigenen On-Chip-Flash-Speicher für Konfigurationsdaten, wodurch das Risiko eliminiert wird, dass Hacker in das System eindringen und den Konfigurations-Bit-Stream während des Hochfahrens abgreifen. Diese Funktion beseitigt die Notwendigkeit für einen externen Konfigurations-PROM (Bild 3). Ein weiterer Bereich der On-Chip-Flash-Speicher ermöglicht Designern den Speicher für die nichtflüchtige Datenspeicherung zu verwenden, wodurch die Notwendigkeit für externe Speicher entfällt.
Serdes
Die ersten FPGAs wurden fast vollständig von rein „weicher“ Logik zusammengesetzt, strikte Netze ohne auf ASIC-Gatter basierte Blöcke. Während sich FPGA-Anwendungen immer weiter verbreiteten und sich eine erhöhte Nachfrage nach Technologie in Bereichen wie Kommunikation und Signalverarbeitung entwickelte, haben die Hersteller Logikbausteine für immer höhere Leistung hinzugefügt, um eine effizientere Nutzung der Chipfläche zu erhalten. Eines der häufigsten Elemente ist die Serialisierer-/Entserialisierer-Schnittstelle (Serdes).
Die Leistungsaufnahme der I/O wurde zu einer kritischen Herausforderung beim Systemdesign. Obwohl das parallele Senden von Daten eine hohe Bandbreite bieten kann, kann die Verwendung von mehreren Datenleitungen zum gleichzeitigen Senden von Bits eine Menge Energie fordern und auch die vorhandene Signalintegrität beeinträchtigen, insbesondere bei der Erhöhung der Taktraten. Die serielle I/O bietet eine bessere Signalintegrität bei hohen Bitraten durch den Einsatz von adaptiver Entzerrung und anderen Signalkonditionierungs-Techniken. Da sie in der Regel niedrige Spannungs-Logikpegel verwenden, können serielle Schnittstellen die Energieeffizienz verbessern. Zum Beispiel verbraucht der Lattice ECP3 nur 110 mW bei einer Datenrate von 3,2 Gbit/s. Als Ergebnis werden serielle Kanäle auch weithin für Hochgeschwindigkeits-Speicherschnittstellen sowie Chip-zu-Chip- und Board-zu-Board-Kommunikation verwendet (Bild 4).
Serielle I/O erfordert die Unterstützung von relativ komplexen logischen Blöcken, die in programmierbarer Logik teuer zu implementieren sein würde. Dedizierte Serdes-Logikbausteine basierend auf „harten“ ASIC-Gattern ermöglichen eine schnellere Signalübertragung und Schaltungen einer höheren Geschwindigkeit. Eine Logik wird benötigt, um die Signale, die von einem internen parallelen Bus kommen in eine getaktete serielle Darstellung zu konvertieren und die Daten von einer eingehenden seriellen Verbindung wiederherstellen. Durch das Angebot dieser Art von Serdes-Funktion in dedizierter Hardware, erlauben heutige FPGAs mehr der programmierbaren Logik für die Endanwendung zu verwenden.
Serdes-Blöcke sind in vielen der Mittelklasse- und in allen Oberklasse-FPGA-Familien üblich. Produkte mit Serdes-Blöcken beinhalten die Komponenten Altera Stratix, Lattice ECP3 und Xilinx Virtex. Einige dieser FPGAs unterstützen serielle Datenraten von bis zu 28 Gbit/s mit einer Kombination von Signalkonditionierungs-Techniken. Kostenoptimierte FPGAs wie die Familien Altera Cyclone, Lattice Mach XO2, Microsemi SoC Igloo und Xilinx Spartan bieten oft eine Unterstützung für Niederspannungs-Signalisierungsschnittstellen wie LVDS, überlassen die Umsetzung der Serdes-Funktionalität aber weitgehend programmierbaren Logikbausteinen.
Die Komponenten Altera Cyclone V bieten Unterstützung für die serielle Kommunikation bei Geschwindigkeiten von bis zu 5 Gbit/s pro Port mit maximal 12 Ports, je nach Modell. Um die Umsetzung der Serdes-Funktionen zu erleichtern, enthalten die Bauteile 8B/10B-Codier- und Decodier-Funktionen innerhalb der Hardware, um zu gewährleisten, dass die am weitesten verbreitete Form von Datenserialisierung und Fehlerschutz in festverdrahteter ASIC-Logik unterstützt wird. On-Chip-Unterstützung für PCIe, Gen1 und Gen2 ist vorhanden für eine einfachere Implementierung bei Systemen, die mit PC- und Server-Hardware kommunizieren müssen.
Hybrid-Architektur
Dedizierte Kommunikations- und Dienstprogramm-Kerne erschienen auf kostenoptimierten FPGAs, um deren Nutzung in Industrie- und Verbraucheranwendungen mit hohen Produktionszahlen zu ermöglichen. Zum Beispiel enthält die Familie Lattice MachXO2 Funktionen wie I2C- und SPI-Ports sowie Timer und Zähler, die ähnliche Funktionen wie in Mikrocontrollern bieten, aber mit der viel größeren Flexibilität der ungebundenen Logik im Rest des Arrays.
Microsemi SoCs Smart Fusion ist eine hybride FPGA-, Analog- und Mikrocontroller-Architektur. Diese Architektur vereint einen kompletten ASIC-Gatter-basierten ARM Cortex-M3-Prozessorkern und ein analoges Rechenwerk (ACE, Analog Compute Engine) mit einem FPGA-Netz. Die Hybrid-Architektur ermöglicht es dem Entwickler, Software innerhalb des ARM, unterstützt durch die in das FPGA-Netz geladene angepasste Peripherie laufen zu lassen. Die Smart-Fusion-Architektur umfasst einen intelligenten I/O-Controller, der die Leistung von Sensor-orientierten Anwendungen optimiert. Integrierte analoge I/O-Blöcke, unter der Steuerung des ACE, entlasten den Prozessor mit Systemoperationen für die Parallelisierung. Die ACE ist besonders in Anwendungen wie zum Beispiel der Motorsteuerung geeignet, wo genaue und rechtzeitige Positionserfassungen erforderlich sind, um Ausgänge, die die Leistungselektronik kontrollieren, mit hoher Präzision zu aktualisieren.
Mit der Verbreitung von FPGA-Signalverarbeitungsanwendungen begannen Anbieter hartverdrahtete Blöcke, basierend auf ASIC-Gattern für arithmetische Funktionen hoher Geschwindigkeit hinzuzufügen. Der effizienteste Weg, die Multiplikation in programmierbaren Zellen umzusetzen, ist bitserielle Arithmetik zu verwenden. Allerdings ist dieser Ansatz sehr langsam und bietet nur dann Vorteile, wenn viele arithmetische Operationen parallel ausgeführt werden können.
DSP-Kerne
Der erste Schritt über die bitserielle Arithmetik hinaus war, dedizierte Carry-Chain-Logik hinzuzufügen. Die Implementierung in das FPGA-Netz ist jedoch teuer. Dies erlaubt die Verwendung von viel schnelleren Übertragsvorgriffsaddierern und Übertragspeicheraddierern, die beide die Umsetzung schneller Multiplikatoren ermöglichen. Der nächste Schritt war, die vollständigen Multipliziererblöcke als festverdrahtete Logik bereitzustellen. Diese Blöcke können sehr schmal sein, um Chipfläche zu reduzieren, aber sie können leicht miteinander verbunden werden, um kompliziertere 32-Bit- und 64-Bit-Multiplikatoren zu bilden und mit Unterstützung des FPGA-Netzes weitere anspruchsvolle Funktionen hinzuzufügen, wie Gleitkomma-Arithmetik. Einige FPGAs bieten eine Vielzahl von DSP-Kernen, mit mehreren schmaleren 9-Bit-Einheiten, um Zielanwendungen zu unterstützen, die Bild- und Videoverarbeitung begünstigen, und breiteren Kernen für Audio- und Kommunikationssignale.
DSP-Blöcke erschienen zuerst in den High-End-Geräten von Anbietern wie Altera und Xilinx, sind aber jetzt auch in kostenoptimierten Architekturen wie den Cyclone V und Spartan 6 zu finden. Für Anwendungen, bei denen die arithmetische Verarbeitung nicht zu Standard-Rechenoperationen passt, wie Kryptographie oder spezialisierte Video-Operationen, kann eine Architektur, die ein höheres Verhältnis von programmierbarer Logik zu DSP-Kernen aufweist, eine bessere Wahl sein.
Eine Sache ist sicher, es gibt immer einen FPGA, der besonders gut für eine bestimmte Kundenanwendung geeignet ist. Ein Händler mit Erfahrung und Kenntnis dieser Optionen ist gut aufgestellt um bei der Auswahl eines geeigneten FPGAs behilflich zu sein.
Tony Storey
(jj)
Sie möchten gerne weiterlesen?
Unternehmen
Digi-Key Corporation
701 Brooks Avenue South
56701 Thief River Falls , MN
United States