Xilinx: SDSoC Embedded Programmierer, aufgepasst!

Die SDSoC-Entwicklungsumgebung
Die SDSoC-Entwicklungsumgebung

Um die Zynq SoCs und MPSoCs den Embedded-Programmierern schmackhaft zu machen, hat Xilinx mit SDSoC eine Entwicklungsumgebung auf den Markt gebracht, die dieser großen Schar von Programmierern eine einfache Implementierung ermöglichen soll.

Xilinx bemüht sich schon seit langem darum, dass nicht nur FPGA-Experten die Xilinx-Bausteine programmieren können, sondern auch Software-Entwickler. Ein Schritt in diese Richtung ist das vor ein paar Jahren auf den Markt gekommene Tool »Vivado HLS« (High Level Synthese). Mit HLS erfolgt die funktionale Spezifikation in C, C++ oder SystemC, daraus wird dann in Abhängigkeit von Randbedingungen automatisch VHDL-Code erzeugt.  

Mit der C/C++-Entwicklungsumgebung SDSoC für die Zynq- und MPSoC-Komponenten geht Xilinx jetzt noch weiter. Die einheitliche Entwicklungsumgebung ermöglicht laut Giles Peckham, EMEA Marketing Manager bei Xilinx, eine einfache, ASSP-ähnliche C/C++-Programmierung mit einer bequem zu nutzenden Eclipse IDE und einer umfassenden Tool-Plattform für Zynq- und MPSoC-Komponenten.

SDSoC beinhaltet einen Compiler, der das System optimiert. Mit SDSoC sieht der Ablauf in Zukunft vereinfacht so aus: Sobald das C-Programm steht, können mithilfe des Profilers genau die Funktionen herausgefiltert werden, die den Großteil der Laufzeit auf sich ziehen. Danach werden diese Funktionen in der IDE einfach markiert, um sie in Hardware umzusetzen und dadurch zu beschleunigen. Die komplette Umsetzung läuft automatisch ab, der Entwickler muss sich um nichts kümmern.

Nachdem alle rechenintensiven Funktionen übersetzt wurden, analysiert der System-Compiler das Programm dahingehend, wie CPU, Hardware-Funktionen und Memory logisch verknüpft sind, und entscheidet selbständig, wie die Daten zwischen den Blöcken transferiert werden können. Er erzeugt gleichzeitig auch alle notwendigen Treiber wie zum Beispiel einen DMA-Treiber. Mithilfe eines Estimators sieht der Entwickler dann, welche Geschwindigkeitsvorteile die Auslagerung der Funktionen in Hardware gegenüber einer reinen Software-Implementierung bringt. Unter der Voraussetzung, dass die Logik-Ressourcen ausreichend für die markierten Funktionen sind, kann dann wirklich die Umsetzung in Hardware erfolgen.

Um dem Entwickler die volle Kontrolle über seine ausgelagerten Funktionen zu geben, stellt Xilinx ein Monitor-IP zur Verfügung. Es überwacht den Verkehr zwischen Prozessorsystem und Logic-Fabrik. SDSoC übersetzt im Hintergrund alle Hardware-Funktionen in IP-Blöcke, erzeugt das Hardware-System und ruft die Vivado-Design-Suite auf, um den FPGA-Bit-Stream zu erzeugen. Peckham: »SDSoC ermöglicht die Wiederverwendung bereits fertiger HDL-IP-Blöcke, und zwar in Form von in C abrufbaren Bibliotheken.« Darüber hinaus stehen mit SDSoC auch die Xilinx-eigenen Bibliotheken und optional auch die hardware-optimierten Bibliotheken des Xilinx-Alliance-Mitglieds Auviz Systems zur Verfügung, um die hohe Performance und Low-Power-Beschleunigung der programmierbaren Logik auszunutzen.

SDSoC bietet Board Support Packages (BSP) für die Zynq-All-Programmable-SoC-basierten Entwicklungs-Boards, einschließlich ZC702 und ZC706, für Third-Party-Plattformen und marktspezifische Typen wie Zedboard, MicroZed und ZYBO sowie für Video- und Imaging-Entwicklungs-Kits. Diese BSPs umfassen auch die Metadaten-Abstraktion der Plattform von Software-Entwicklern und Systemarchitekten zur vereinfachten Erstellung, Integration und Verifizierung von smarteren heterogenen Systemen. Somit ermöglicht SDSoC auf Xilinx- oder Anwender-Plattformen die Erstellung Software-konfigurierbarer smarterer Systeme.