Ein Angebot von

FPGA-Programmierung

OpenCL – neuer Ansatz für die Programmierung von SoC-FPGAs

| Autor / Redakteur: Andreas Widder * / Margit Kuther

MCV: Das SoC-FPGA-Modul integriert für zusätzliche Funktionalität den Core in ein Referenzdesign.
MCV: Das SoC-FPGA-Modul integriert für zusätzliche Funktionalität den Core in ein Referenzdesign. (Bild: Denx)

Die Welten von CPUs und FPGAs verschmelzen beim Einsatz von SoC-FPGAs. Durch diese Kombination lassen sich Embedded-Systeme mit besonderen Anforderungen realisieren.

Seitdem OpenCL als Programmiersprache auch für FPGAs entdeckt wurde, haben klassische Software-Ingenieure neue Möglichkeiten zum Einsatz von SoC-FPGAs. FPGAs sind beliebte Arbeitstiere, wenn es gilt produktspezifische Funktionalität in der Elektronik abzubilden.

Sie bieten gerade dann die nötige Flexibilität zur Skalierung durch verschiedene Bausteinfamilien, wenn unterschiedliche Komplexitätsgrade gefragt sind. Die Implementierung zusätzlicher individueller Schnittstellen ist beispielsweise ebenso machbar, wie die Vorverarbeitung von Messdaten.

Die Vielzahl an verfügbaren, fertig entwickelten IP-Cores nehmen dem Entwickler in der Praxis bereits Arbeit ab und sind der Grundstock zur schnellen Projektumsetzung.

Durch den Einsatz der Open Computing Language (OpenCL) bei FPGAs gelingt es, die klassische Trennung von Hard- und Software-Ingenieuren zu überwinden und dem Vakuum der fehlenden FPGA-Entwickler entgegenzusteuern.

Die Softwerker rechnen bisher mit General-Purpose-CPUs, die allerdings bei bestimmen Aufgabenstellungen an ihre Leistungsgrenzen stoßen. Hardwerker implementieren ihren Lösungsansatz in der Hardware und können aufbauend auf ihrem spezifischen Know-how sehr leistungsstarke und Energie-effiziente Systeme realisieren.

OpenCL sorgt für die Beschleunigung nach Maß

OpenCL ist ein verbreiteter Standard, der auf die parallele Bearbeitung komplexer Berechnungen setzt. Nach der Entwicklung von OpenCL für Grafikkarten (GPU) ermöglichen es neuere Ansätze, diese Umgebung auch auf anderen CPU-Architekturen, wie beispielsweise Alteras SoC-FPGAs zu nutzen.

Die Rechnerinstanz, auf welcher der OpenCL-Code ausgeführt wird, wird als Accelerator bezeichnet. Die eigentlichen OpenCL-Operationen werden Kernel genannt und wurden ursprünglich in der Programmiersprache C erstellt.

Ergänzendes zum Thema
 
MVC-Modul im Überblick

OpenCL stellt verschiedene APIs zur Verfügung, um das System mit unterschiedlichen Programmiersprachen z.B. C, C++, Phyton, etc., verwenden zu können. Das OpenCL SDK von Altera unterstützt unter anderem die Cyclone-V-SoC-FPGA-Familie.

Bei dieser Technologie wird die Rechenarithmetik von der eigentlichen Zielhardware getrennt. Eine vorhandene OpenCL-Anpassung von IP-Core und BSP für die Zielhardware vorausgesetzt, muss für die Realisierung der gewünschten Funktionalität kein spezifisches Know-how über VHDL oder eine andere Synthesesprache vorhanden sein.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43810469 / Embedded Betriebssysteme)