Digitale Signalverarbeitung Symbiose von FPGA und DSP

Autor / Redakteur: Tom Hill* / Holger Heller

Damit lassen sich Leistungsmerkmale entscheidend verbessern, Stromverbrauch und Kosten senken: Innovative DSP-Plattformen mit FPGA-Preprozessoren oder Coprozessoren

Firmen zum Thema

( Archiv: Vogel Business Media )

DSP-Plattformen der oberen Leistungsklasse, die sich bisher auf Universal-DSP-Prozessoren stützen und deren Algorithmen in C geschrieben sind, entwickeln sich durch den Einsatz von FPGA-Preprozessoren oder Coprozessoren weiter. Damit lassen sich Leistungsmerkmale entscheidend verbessern, der Stromverbrauch und die Kosten sinken.Trotz dieser offensichtlichen Vorteile scheuen manche Design-Teams, die es gewohnt sind, Prozessor-basierte Systeme zu entwickeln, aus einem einzigen Grund den Einsatz von FPGAs: Ihnen fehlen schlicht die Hardwarefertigkeiten, mit derartigen Coprozessoren umzugehen. Fehlende Vertrautheit mit eingeführten Hardwaredesignverfahren wie VHDL und Verilog beschränken oder verhindern die Verwendung von FPGAs, was oft zu teureren und leistungshungrigeren Systemen führt. Eine neue Gruppe kommender Design-Tools, unter dem Sammelbegriff ESL (Electronic System Level) etikettiert, verspricht eine Lösung dieses Dilemmas: Prozessor-basierte Entwickler können damit ihre Systeme durch programmierbare Logik beschleunigen, gleichzeitig aber ein gemeinsames Design-Verfahren für Hardware und Software beibehalten (Bild 1).

Leistungssteigerungen bei DSP-Systemen lassen sich durch die flexible Nutzung von FPGA-Strukturen für Operationen erzielen, die von Parallelarbeit profitieren. Typische Beispiele sind, ohne Beschränkung der Allgemeinheit, FIR-Filter, FFT, digitale Abwärtswandlung und Vorwärtsfehlerkorrekturblöcke FEC. So verfügen die FPGA-Architekturen Virtex-4 und Virtex-5 von Xilinx über nicht weniger als 512 gleichzeitig arbeitende Parallel-Multiplizierer, die schneller als 500 MHz laufen und damit eine Spitzenleistung von 256 GMACs leisten können. Durch die Auslagerung schneller Parallelarbeit in ein FPGA und die Erledigung serieller Verarbeitung durch den DSP lassen sich Leistungsmerkmale und Kosten eines DSP-Systems optimieren sowie der Gesamtstromverbrauch senken.

Bildergalerie

Kostensenkung durch Embedded-FPGA-Verarbeitung

Ein DSP-Hardware-System mit FPGA-Coprozessor bietet zahlreiche Implementierungsoptionen für die Befehle innerhalb des C-Algorithmus, wie Aufteilung des Algorithmus zwischen DSP-Prozessor, den konfigurierbaren Blöcken (CLB) des FPGA und dem in das FPGA integrierten Prozessor. Dazu bieten die Bausteine der Virtex-Familien zwei Typen von Embedded-Prozessoren: den Softcore-Prozessor MicroBlaze, der für die Systemsteuerung eingesetzt wird, und den leistungsfähigeren, Embedded-Hardcore-Prozessor PowerPC für anspruchsvollere Aufgaben. In die FPGA-Struktur übertragene Paralleloperationen können dabei direkt im Datenpfad liegen oder als Hardwarebeschleuniger einem dieser Embedded-Coprozessoren zuarbeiten.

Die Herausforderung an die Entwickler besteht darin, die Systemoperationen eines DSP-Systems in effizienter und kosteneffektiver Weise auf die vorhandenen Hardwareressourcen zu verteilen. Es ist nicht immer offensichtlich, wie die ins FPGA integrierten Prozessoren am besten genutzt werden, aber mit dieser Hardwareressource lassen sich die Gesamtkosten des Systems erheblich senken. Die Embedded-Prozessoren bieten nämlich die Möglichkeit, alle zeitlich unkritischen Operationen mit ihrer Software zu erledigen und damit den Gesamtaufwand für Hardwareressourcen für das System zu minimieren.

Beim Entwurf von FPGA-Zielsystemen bezieht sich der Begriff „von C zu Gattern“ auf einen Entwicklungsablauf der C-Synthese, der eine der beiden Implementierungstopologien erzeugt: FPGA-Struktur als DSP-Modul oder die Generierung eines Hardwarebeschleunigers für einen der Embedded-MicroBlaze-/PowerPC405-Prozessoren (Bild 2).

Von C zu Gattern

Liegt die Operation direkt im Datenpfad des DSP, dann sorgt eine Implementierung als DSP-Modul für höchste Leistung. Dies bedeutet eine Synthese des C-Codes direkt in RTL mit nachfolgender Instanziierung des Blocks in den DSP-Datenpfad. Dieser Abschlussvorgang kann durch herkömmliche HDL-Entwicklungsverfahren erfolgen oder durch Design-Tools auf Systemebene, wie dem System Generator for DSP von Xilinx. Allerdings bietet eine direkte Instanziierung den höchsten Leistungszuwachs mit minimalem Verwaltungsaufwand.

Mit führenden C-Code-Synthese-Tools lassen sich Leistungsmerkmale erreichen, die denen handcodierter RTL schon recht nahe kommen. Allerdings erfordert dies eine detailliertere Kenntnis des Syntheseablaufs und des Codierungsstils. Um die gewünschte Leistung zu erreichen, sind im allgemeinen Code-Modifikationen und zusätzliche In-Line-Anweisungen zur Synthese von Parallelität und Pipeline-Stufen unumgänglich. Dies erfordert einen gewissen Zusatzaufwand, der sich aber in einem erheblichen Gewinn an Produktivität manifestiert. Dabei bleibt das System-Modell in C die „Golden Source“, die den Designablauf bestimmt.

Ein alternativer und oft auch einfacherer Ansatz besteht darin, einen Hardwarebeschleuniger für einen der Embedded-Prozessoren von Xilinx zu entwerfen. Dabei bleibt der Prozessor das erste Ziel der C-Routinen mit der Ausnahme, dass geeignete Operationen in die FPGA-Logik als Hardwarebeschleuniger ausgelagert werden. Dies ist ein überwiegend softwareorientiertes Entwurfsverfahren, dessen Einfachheit allerdings auf Kosten der Leistung gehen kann.

Die C-Routinen werden – ähnlich wie beim DSP-Modulansatz – in RTL synthetisiert, allerdings mit dem Unterschied, dass die oberste Entität mit Schnittstellenlogik verpackt werden muss, um den Anschluss an einen der Busse der Embedded-Prozessoren zu realisieren. Damit entsteht ein Hardwarebeschleuniger, der sich in die EDK-Entwicklungsumgebung von Xilinx importieren und sich dort über einen softwarefreundlichen Funktionsaufruf in C aktivieren lässt.

Die Leistungsanforderungen für die Abbildung von C-Routinen in Hardwarebeschleuniger sind im Allgemeinen nicht so streng. Hier geht es schließlich darum, die Leistung gegenüber einer reinen Softwarelösung zu steigern und gleichzeitig einen softwareorientierten Entwicklungsablauf beizubehalten. Auch wenn Codierungstechniken und Inline-Syntheseanweisungen nach wie vor möglich sind, dürfte die gewünschte Leistungssteigerung auch ohne sie erreichbar sein.

Akzeptanz von Designverfahren steigern

Zur optimalen Aufteilung und Implementierung eines komplexen DSP-Systems sind tiefgehende und breit angelegte Kenntnisse sowie umfassende Erfahrungen unverzichtbar. Im Jahre 2005 führten die Marktforscher von Forward Concepts eine Umfrage zum Thema „Wichtigste Auswahlkriterien für den FPGA-Einsatz in DSPs“ durch. Ganz klar an der Spitze stehen die Entwicklungswerkzeuge. Diese Umfrage zeigt auch, dass die Vorteile eines DSP-Hardwaresystems mit FPGA-Coprozessor sehr wohl bekannt sind; aber offenbar stellt der gegenwärtige Status der Entwicklungswerkzeuge für softwareorientierte DSP-Entwickler eine entscheidende Barriere dar.

Mit den ESL-Entwicklungswerkzeugen geht die digitale Designabstraktion noch über RTL hinaus. Ein Teil dieser Tool-Anbieter konzentriert sich auf die Abbildung von System-Modellen in C/C++ auf DSP-Hardwaresysteme, die FPGAs und DSP-Prozessoren umfassen. Ihre Vision besteht darin, die Hardwareplattform für den Softwareentwickler transparent zu gestalten (Bild 3).

Partnerprogramm mit Lieferanten von ESL-Tools

Anstatt zu versuchen, eines dieser Puzzleteile der Entwurfsverfahren intern zu lösen, hat Xilinx im Jahr 2006 ein Partnerprogramm mit führenden Lieferanten von ESL-Tools unter dem Oberbegriff „ESL Initiative“ gestartet. Ziel dieser Partnerschaft ist es, Entwicklern mit Software-Programmierschwerpunkt so zu befähigen, dass sie in der Lage sind, ihre Ideen in programmierbare Hardware zu implementieren, ohne sich dafür umfangreiche Fähigkeiten der Hardwareentwicklung aneignen zu müssen. Das Programm ist so ausgelegt, dass es die Entwicklung und Annahme der Entwurfsverfahren von Weltklasse durch Innovation innerhalb der ESL-Gemeinde beschleunigt.

In der Summe bieten die zusammengefassten Angebote der ESL-Partner von Xilinx ein großes Spektrum sich ergänzender Lösungen, die für einen breiten Bereich von Anwendungen, Plattformen und Endanwendern optimiert sind. Auch Xilinx richtet seine Anstrengungen auf ergänzende Technologien aus: So bietet beispielsweise die AccelDSP-Synthese einen Hardwarepfad für Algorithmen, die in Gleitkomma-MATLAB entwickelt wurden. Gleiches gilt für den System Generator für DSP, mit dem sich mit ESL-Designs entwickelte Module leicht mit Embedded-Prozessoren und IP-Modulen von Xilinx kombinieren lassen. Der schnellste Weg zur Realisierung eines programmiererfreundlichen FPGA-Designablaufs geht schließlich über eine motivierte und innovative Gruppe von Partnern.

Xilinx, Tel. +49(0)89 930880

*Tom Hill ist DSP Marketing Manager bei Xilinx, San Jose, Kalifornien.

(ID:193952)