3.3 Verarbeitungseinheiten
183
werden. Zusätzlich können die einzelnen Logikelemente konfiguriert werden. Die
Ansteuerung der Register kann ebenfalls gewählt werden, sodass diese entweder die
Werte aus den RAM-Speichern oder direkte Eingaben zwischenspeichern. Die Blöcke in einem CLB können so kombiniert werden, dass sich Addierer, Multiplexer,
Schieberegister oder größere Speicher ergeben. Die Konfiguration bestimmt weiterhin die Auswahl der Eingänge der Multiplexer, die Taktung von Registern und
Speichern und die Verbindungen zwischen den CLBs.
∇
Gegenwärtig verfügbare FPGAs enthalten eine große Anzahl von spezialisierten
Blöcken, wie z.B. DSP-Hardware, Speicher, schnelle Ein/Ausgabeschnittstellen für
verschiedene Standards, die Entschlüsselung von Konfigurationsdaten, Debugging,
Analog-Digital-Wandler, schnelle Taktgeneratoren usw.
Beispiel 3.14: Die Virtex ® UltraScale ™ VU13P Schaltkreise enthalten 1728 k LUTs,
48 Mbit verteilten RAM-Speicher, 94,5 Mbit „Block RAM”, 360 Mbit „UltraRAM”,
ungefähr 12 k spezialisierte DSP Blöcke, 4 PCIe ® Blöcke, Ethernet-Schnittstellen
und bis zu 832 Ein/Ausgabe-Pins [600].
∇
Die Integration von rekonfigurierbarer Logik mit anderen Prozessoren und Software wird bei FPGAs vereinfacht, wenn Prozessoren verfügbar sind, die direkt auf
dem FPGA implementiert werden können. Hierbei gibt es sowohl hard cores wie
auch soft cores. Bei hard cores enthält die Schaltung des FPGA bereits einen Bereich, der einen Prozessorkern mit hoher Packungsdichte beinhaltet. Dieser Bereich
kann ausschließlich für diesen Prozessor verwendet werden. Soft cores dagegen sind
als synthetisierbare Modelle verfügbar, die dann auf gewöhnliche CLBs abgebildet
werden. Damit sind sie flexibler, aber auch weniger effizient als hard cores.
Beispiel 3.15: Der MicroBlaze-Prozessor [598] ist ein Beispiel eines soft cores. ∇
Beispiel 3.16: Hard cores sind auf Zynq UltraScale+ MPSoCs verfügbar. Sie enthalten bis zu vier ARM ® Cortex-A53 Kerne, zwei ARM Cortex-R5 Kerne und einen
Mali-400MP2 GPU-Prozessor [602].
∇
Konfigurationen werden üblicherweise aus einer Beschreibung der Funktionalität
der Hardware auf hoher Ebene, z.B. in VHDL, erzeugt. FPGA-Hersteller stellen
dazu Entwicklungsumgebungen bereit. Idealerweise sollte man aus derselben Beschreibung automatisch ASICs erzeugen können. In der Praxis gelingt dies nur auf
interaktive Weise. Da eine automatische Parallelisierung von Anwendungen beim
gegenwärtigen Stand der Technik selten mit ausreichender Qualität möglich ist,
setzt eine Ausnutzung der verfügbaren Hardwareparallelität meist voraus, dass Anwendungen manuell parallelisiert werden. Die vorhandene Hardwareparallelität wird
üblicherweise nicht voll ausgenutzt, wenn Operationen lediglich den Prozessoren zugeordnet werden. FPGAs erlauben es, eine große Vielfalt an Hardwareschaltungen
zu implementieren, ohne dass man andere Hardware als FPGA-Platinen benötigt.
Beispiel 3.17: Neben Xilinx ® bieten auch weitere Hersteller FPGAs an. Darunter befinden sich derzeit (2020) Altera ® (siehe http://www.altera.com, durch Intel ® übernommen), Lattice Semiconductor (siehe http://www.latticesemi.com), Quicklogic
(siehe http://www.quicklogic.com), Microsemi (siehe http://www.microsemi.com,
früher Actel) sowie chinesische Hersteller.
Précédent

- 205/485

Suivant