Dieser Vorgang löscht die gegenwärtige Funktion, lädt den sie ersetzenden vorkompilierten partiellen Bitstream, initialisiert die neue Funktion und koppelt die Logik wieder an.
Bild 1 verdeutlicht, wie sich DFX einsetzen lässt, um eine Fahrzeug-Applikation mit User Interface zu steuern. Sie erlaubt es dem Fahrer, im Head-up Display zwischen einer Tachometer-Anzeige und einem Overlay zur Objekterkennung zu wählen. Von den vier Verarbeitungsblöcken dieses Systems erfasst der „Main Control“-Block das Bild der Kamera und schickt deren Daten entsprechend der Auswahl des Fahrers an den Overlay-Algorithmus der Tachometer-Anzeige oder der Objekterkennung. Der „Image Display“-Block zeigt das entsprechende Bild in der Frontscheibe.
Wenn der Fahrer die Tachometer-Funktionalität auswählt und „Speedometer Display“ gerade nicht geladen ist, wird die zugehörige Firmware entweder aus dem DDR-Speicher oder Flash angefordert, und die Hardware wird entsprechend umprogrammiert. Der Konfigurations-Controller kann diesen Vorgang in wenigen Zehntelsekunden ausführen. Damit kann die Applikation schnell zwischen den Algorithmen umschalten, ohne einen Daten-Frame zu verlieren. Auf diese Weise ermöglicht die partielle Rekonfiguration dem Entwickler die Selektion eines kleineren und kostengünstigen FPGA, die Verringerung der Anzahl an Komponenten und die Minimierung des System-Leistungsverbrauchs.
Das Design von automotiven Elektroniksystemen ist wachsendem Druck in Richtung neuer Funktionen und Eigenschaften ausgesetzt, und zugleich immer mehr Funktionalität in Domain-Controllern, die im Fahrzeug verteilt sind, zu konsolidieren. Die partielle Rekonfiguration wird damit für die Entwickler zu einer immer leistungsfähigeren und attraktiven Option.
Neben automotiven Systemen profitieren auch andere Geräte wie medizinische Scanner, professionelle Studio-Anlagen und tragbare Testsysteme von der dynamischen Flexibilität. Dies gilt insbesondere auch für militärische Applikationen und deren Fähigkeit zur schnellen funktionalen Rekonfiguration. Sicherheitskritische Anlagen können diese Funktionalität zum Entfernen und Ersetzen spezifischer Funktionen und zum Upgrade ihrer Fähigkeiten nutzen.
Weitere wesentliche Applikationen umfassen kommerzielle KI-Systeme mit neu entstehenden und leistungsfähigeren Architekturen für neuronale Netzwerke. Mit DFX können Accelerator Cards den Zeitaufwand für Aufgaben wie Genom-Sequenzierung erheblich verkürzen, wobei die neuesten neuronalen Netze die älteren Architekturen ersetzen.
Entwickeln mit DFX
Um die Vorteile von DFX nutzen zu können, muss der Entwickler zunächst die wechselseitig exklusiven Funktionen identifizieren, die in dynamisch rekonfigurierbarer Logik implementiert werden können. Tools wie Vivado führen den Anwender dabei durch alle notwendigen Schritte. Dazu zählt etwa die Definition der rekonfigurierbaren Partition, das Erstellen und Validieren des Schaltungslayouts, die Festlegung der Keep-out-Bereiche, die Vernetzung der rekonfigurierbaren Funktionen mit der statischen FPGA-Logik, das Einfügen von Entkopplern an den adäquaten Stellen und die korrekte Berücksichtigung der Constraints im Schaltungslayout. Die rekonfigurierbare Logik wird nach den Regeln der Standard-Anforderungen für Place-and-Route und Timing entwickelt.
System View, ein Partner von Xilinx, hat den Dual System Integrator (VSI) entwickelt. VSI ist ein Tool, das mit Vivado arbeitet, um Aufgaben zu automatisieren, die in der Vergangenheit manuell erledigt wurden, wie Anpassen der Schnittstellen, Einfügen der passenden Entkoppler, Schaltungslayout und Entwicklung der dynamisch rekonfigurierbaren Logik. VSI vereinfacht nicht nur das Systemdesign, es verkürzt auch die typische Zeitspanne bis zum Abschluss eines DFX-Systemdesigns. Das führt in der Praxis zu einer Verkürzung des Designprozesses von einigen Wochen auf wenige Stunden.