Software Defined Programming von FPGAs
Als Elektor-Leser sind Sie bestimmt schon über den Begriff SDR (Software Defined Radio) gestolpert. Gängig ist dies auch bei Networking (SDN) oder Storage (SDS). Doch Software Defined Programming? Ist das nicht ein weißer Schimmel? Laut FPGA-Hersteller Xilinx wohl nicht, denn er stellte jetzt die SDSoC-Entwicklungsumgebung vor, die um Support für die MPSoCs der Reihe Zynq Ultrascale+ erweitert wurde. Bei genauerem Blick zeigen sich ihre besonderen Qualitäten.
Als Elektor-Leser sind Sie bestimmt schon über den Begriff SDR (Software Defined Radio) gestolpert. Gängig ist dies auch bei Networking (SDN) oder Storage (SDS). Doch Software Defined Programming? Ist das nicht ein weißer Schimmel? Laut FPGA-Hersteller Xilinx wohl nicht, denn er stellte jetzt die SDSoC-Entwicklungsumgebung vor, die um Support für die MPSoCs der Reihe Zynq Ultrascale+ erweitert wurde. Bei genauerem Blick zeigen sich ihre besonderen Qualitäten.
Die Entwicklung von Software für FPGAs ist normalerweise eine Sache von Spezialisten, die dazu in der Lage sind, mit den richtigen I/O-Pins mit engem Zeitverhalten und begrenzten Look-up-Tables umzugehen. Software für Mikrocontroller wird normalerweise von Programmieren geschrieben, die sich mit vererbten Eigenschaften Multi-Threading auskennen. Wenn man nun aber Mikrocontroller und FPGA in einem SoC kombiniert, wie das Xilinx für die Zynq-Reihe getan hat, müssen beide Kenntnisse bei einem System zusammenkommen. Kommunkcation, Interfacing und andere Probleme bremsen diesen Prozess dann aus.
Das ist genau der Punkt, an dem das SDSoC-Entwicklungssystem zum Zug kommt, denn mit ihm können Ingenieure ihrer gewohnten Arbeit nachgehen und dabei quasi nebenbei für die Hardware-Implementation sorgen. Der Anwender schreibt dann die Algorithmen, optimiert ihre Leistung und pusht die ausgewählten, leistungshungrigen Teile durch Hardware-Beschleunigung. Dabei schreibt er nicht eine Zeile zusätzlichen Code. Der Compiler produziert den Bit-Strom für die programmierbare Logik und gleichzeitig das Programm für den Prozessor.
Vielleicht wird die FPGA-Programmierung ja doch noch irgendwann einfach...
Die Entwicklung von Software für FPGAs ist normalerweise eine Sache von Spezialisten, die dazu in der Lage sind, mit den richtigen I/O-Pins mit engem Zeitverhalten und begrenzten Look-up-Tables umzugehen. Software für Mikrocontroller wird normalerweise von Programmieren geschrieben, die sich mit vererbten Eigenschaften Multi-Threading auskennen. Wenn man nun aber Mikrocontroller und FPGA in einem SoC kombiniert, wie das Xilinx für die Zynq-Reihe getan hat, müssen beide Kenntnisse bei einem System zusammenkommen. Kommunkcation, Interfacing und andere Probleme bremsen diesen Prozess dann aus.
Das ist genau der Punkt, an dem das SDSoC-Entwicklungssystem zum Zug kommt, denn mit ihm können Ingenieure ihrer gewohnten Arbeit nachgehen und dabei quasi nebenbei für die Hardware-Implementation sorgen. Der Anwender schreibt dann die Algorithmen, optimiert ihre Leistung und pusht die ausgewählten, leistungshungrigen Teile durch Hardware-Beschleunigung. Dabei schreibt er nicht eine Zeile zusätzlichen Code. Der Compiler produziert den Bit-Strom für die programmierbare Logik und gleichzeitig das Programm für den Prozessor.
Vielleicht wird die FPGA-Programmierung ja doch noch irgendwann einfach...