FPGAs sind eine ideale Möglichkeit, rechenintensive Algorithmen durch Hardware zu beschleunigen. Doch die spezielle Programmierung mit VHDL schreckt viele ab. Ein Tool, das C-Code für den FPGA umwandelt, senkt die Eintrittshürde.
Der Impulse CoDeveloper ist ein Entwicklungswerkzeug, das C-Code in Hardware-beschleunigte FPGA-Routinen umsetzt (Bild 1). Das lohnt sich besonders für Anwendungen der Bild- und Video-Bearbeitung, der digitalen Signalverarbeitung sowie für Datenkomprimierung und -verschlüsselung. Der CoDeveloper verarbeitet ANSI-C-Code und enthält einen Software-zu-Hardware-Compiler, einen „Parallel Opti-mizer“ und sog. „Platform Support -Packages“ für FPGAs von Xilinx und -Altera.
Mit Impulse C lassen sich C-Algorithmen in FPGA-Hardware konvertieren - oft nur innerhalb weniger Stunden, verspricht der Hersteller. Impulse C vereinfacht das Profiling und Debugging der Algorithmen, so dass sich leistungskritische Codesegmente identifizieren und optimieren lassen.
Profiling bedeutet: Der Code wird zur Laufzeit analysiert und es werden Statistiken erzeugt, die zeigen, welche Codesegmente z.B. besonders häufig ablaufen. Mit einem Parallelisierungs-Optimizer von Im-pulse können verschiedene Szenarien ausprobiert werden, so dass die Systemleistung schrittweise verbessert wird. Dabei können z.B. nur einfache Hardware-Prozesse für die Abarbeitung im FPGA-Modul erzeugt werden. Oder es wird eine Hardware-beschleunigte Peripherie-Einheit auf dem FPGA erzeugt. Und schließlich gibt es noch die Möglichkeit, den Code auf Haupt- und Coprozessor/FPGA zu verteilen.
Hierbei wird stets derselbe C-Code von Impulse C verarbeitet, nur die Einstellungen für Hardware- und Software-Targets sind unterschiedlich. FPGAs sind durch die ihnen innewohnende Parallelität schneller als hochgetaktete Universal-Prozessoren. Mit Impulse C kann diese Parallelität in vergleichsweise einfacher Weise evaluiert und erschlossen werden - sowohl auf der Ebene des Gesamtsystems als auch auf Befehlsebene. Für letztes bietet der Impulse-C-Compiler Optimierungen wie „operator scheduling“, das Auflösen von Schleifen und Pipelining. Wenn die C-Debugging-Werkzeuge nicht ausreichen oder das Projekt umfangreich getestet werden soll, bietet Impulse mit dem CoValidator ein Testwerkzeug an, das neben der Erzeugung von Testfällen auch eine VHDL-Simulation durchführt.
Die Umsetzung eines Projekts vollzieht sich in sieben Schritten:
Die Produkte von Impulse werden in Deutschland von eVision Systems vertrieben.