Low-Power-Design mit SoCs

Mehr Leistung, weniger Power

26. August 2014, 15:11 Uhr | Von Martin Hofherr
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Toolchain

Im Bereich der Software-Entwicklung und des vorhandenen Ökosystems bieten die neuen SoC-Bausteine auch einige Vorteile gegenüber Lösungen, die aus einem separaten FPGA und Prozessor bestehen. Die beiden großen Hersteller Xilinx und Altera haben die neuen SoC-Bausteine in ihre bereits vorhandenen Entwicklungsumgebungen integriert. Bei Xilinx ist dies die Vivado Design Suite und bei Altera Quartus II. Sowohl in Vivado als auch in Quartus II wird die Konfiguration des sehr komplexen Prozessorsystems mit der gesamten Peripherie grafisch durchgeführt. Aus dieser Konfiguration wird dann der Low-Level-Konfigurations- und Start-up-Code automatisch generiert. Die Tools werden auch verwendet, um von den Herstellern bereitgestellte oder eigene IP Cores im FPGA zu instantiieren. Die Verbindung der Bus-Interfaces der Hardware-Komponenten im FPGA mit den AXI-Bus-Interfaces des Prozessorsystems erfolgt ebenfalls grafisch in den Tools. Die Software-Entwicklungsumgebung ist bei beiden Herstellern eng mit der FPGA Design Software verknüpft. Beide ermöglichen es, eine Beschreibung der Hardware-Konfiguration des Systems in die Software-Entwicklungsumgebung des Systems zu importieren und damit ein Board Support Package für die Bare-Metal-Software-Entwicklung zu generieren.

Sowohl bei Altera als auch bei Xilinx basiert die Software-Entwicklungsumgebung auf der weit verbreiteten Eclipse IDE. Ein großer Unterschied ist jedoch, dass Xilinx eine eigens angepasste Eclipse IDE mit den Design Tools mitliefert, während Altera eine angepasste Version der von ARM entwickelten DS-5 Eclipse IDE anbietet. Diese muss zusätzlich zur FPGA-Entwicklungsumgebung gekauft werden, bietet jedoch auch einige speziell auf ARM-Prozessoren angepasste Entwicklungs-Tools wie zum Beispiel das Stream­line Profiling Tool. Zudem bietet Altera eine besonders interessante Möglichkeit des Cross-Debugging zwischen FPGA und Prozessor an. Dabei können Triggerbedingungen im FPGA-Logikanalysator „Signaltap“ erstellt werden, die zugleich die Ausführung des aktuellen Programms im Software Debugger anhalten. Dies ist ebenso in umgekehrter Richtung möglich. Durch einen Breakpoint in der Software kann zeitgleich der Logic Analyzer getriggert werden.

Microsemi unterstützt ihre SoC-­FPGAs in der neuen Version der Libero-Design-Umgebung namens LiberoSoC. Im Vergleich zu den Tools der beiden großen Hersteller fällt auf, dass die Synthese des FPGA-Designs von dem externen Tool Synplify (Synopsis) übernommen wird. Auch in LiberoSoC ist die Konfiguration des SoC auf grafischem Weg möglich und die Software-Entwicklungsumgebung direkt in den Design Flow integriert. Auch Microsemi setzt dabei auf eine Eclipse-Entwicklungsumgebung, die Microsemi SoftConsole.

Auf grafischer Ebene entwickeln

Die Hersteller reagieren mit ihren Entwicklungs-Tools auch auf gestiegene Anforderungen der Anwendungen, insbesondere an die FPGA-Designs. Alle Ansätze zielen dabei darauf ab, dem Entwickler das Schreiben von eigenem VHDL- oder Verilog-Code abzunehmen und stattdessen eine höhere Abstraktionsebene für das Hardware Design anzubieten. Microsemi bietet hierfür eine Lösung für den Bereich der digitalen Signalverarbeitung an. Das Synphony Tool analysiert dabei ein mit Matlab/Simulink erstelltes System und generiert eine an Microsemi-FPGAs angepasste Register-Transfer-Level-(RTL)-Beschreibung.

Xilinx unterstützt für seine FPGAs und SoCs ebenso die Generierung von Hardware aus Matlab/Simulink-Systemen. Zusätzlich bietet Xilinx in seiner Vivado Design Suite High-Level-Synthese an, mit der aus C-/C++-Quellcode VHDL- oder Verilog-Code generiert werden kann. Altera setzt auf eine Implementierung des OpenCL-Standards, der bisher besonders bei der Programmierung von GPUs eingesetzt wurde. Dabei wird aus dem mit der OpenCL-Bibliothek implementierten Programm, das beschleunigt werden soll, mit dem Altera „OpenCL zu FPGA-Compiler“ eine anwendungsspezifische Hardware generiert. Dabei wird jedoch nicht das gesamte Programm einfach in Hardware abgebildet und dann im FPGA ausgeführt, sondern nur Teile, die sich dafür eignen. Der Rest wird weiterhin auf dem Prozessor ausgeführt. Dieses Konzept scheint besonders für SoCs geeignet, da es die enge Kopplung zwischen Prozessor und FPGA nutzt.

Die Leistungsfähigkeit und die damit einhergehende Komplexität der eingesetzten Prozessoren machen die Verwendung eines Betriebssystems wie Linux mit den SoC-Bausteinen immer interessanter. Sowohl Altera als auch Xilinx bieten Linux-Portierungen für ihre Chips an, die aktiv von ihnen gepflegt und weiterentwickelt werden. Diese Portierungen wurden kostenlos wieder der Open-Source-Gemeinde zur Verfügung gestellt und können als Ausgangsbasis für die eigene Entwicklung verwendet werden. Neben Linux existieren auch eine Vielzahl weiterer Betriebssystemportierungen für die neuen SoC-Bausteine. Einige Beispiele hierfür sind FreeRTOS, Android und VxWorks. Zugleich erlauben die Tools beider Hersteller auch, die Hardware-Beschreibung des Board in einem für den Linux-Kernel passenden Format, dem Device Tree, zu generieren. Die Chips der SmartFusion-Serie unterstützen das auf Systeme ohne Memory Management ausgerichtete Linux-Derivat µCLinux sowie das Echtzeitbetriebssystem FreeRTOS.

passend zum Thema


  1. Mehr Leistung, weniger Power
  2. Aktuelle SoCs: High Performance oder Low Power?
  3. Toolchain
  4. Enge Kopplung zwischen Prozessor und anwendungsspezifischer Hardware durch SoCs

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu XILINX GmbH

Weitere Artikel zu Microsemi

Weitere Artikel zu ALTERA GmbH

Weitere Artikel zu ALTERA Europe

Weitere Artikel zu Entwicklungswerkzeuge