Suchen

FPGA-Programmierung

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

Seite: 2/3

Firmen zum Thema

Gefordert ist der Software-Entwickler, weniger der FPGA-Entwickler

Somit ist für diese Art der Implementierung weniger der FPGA-Entwickler als vielmehr der Software-Entwickler gefordert. Die volle Flexibilität des FPGAs lässt sich nutzen, ohne dass die Realisierung von einer statischen CPU-Struktur abhängig ist.

Durch den Einsatz unterschiedlich komplexer SoC-FPGAs einer Familie kann gegebenenfalls die verfügbare Leistungsfähigkeit durch Hinzufügen weiterer paralleler Instanzen erhöht werden.

Ein typisches Anwendungsbeispiel ist die Vorverarbeitung und Komprimierung komplexer Messdaten im FPGA-Teil, bevor die Daten vom Messgerät an einen Host übertragen werden.

Dieser Ansatz profitiert durch die Vorverarbeitung und mögliche Komprimierung der anfallenden Messwerte von einer wesentlich höheren Netto-Datenrate zwischen Messgerät und Host, sowie von einer deutlich geringeren Systemkomplexität der Hardware, was sich in der Praxis in reduzierten Entwicklungsaufwänden und Hardwarekosten niederschlägt.

Alleskönner SoC-FPGA, Vorteil für Entwickler

Oft suchen Entwickler die "Eierlegende Wollmilch-Sau". Gewünscht ist eine Hardware, die möglichst unbegrenzt flexibel gestaltet und eingesetzt werden kann und damit eine Vielzahl unterschiedlicher Anforderungen abdeckt.

Allerdings kämpfen Entwickler in der Praxis mit engen Projektbudgets für die Implementierung, die oft eine strikte Limitierung der Entwicklungskosten mit sich bringen. SoC-FPGA-Module bieten dem Anwender einen Ausweg aus diesem Dilemma. Dabei werden FPGAs mit hart verdrahteten CPU-Kernen verheiratet.

Die volle Leistungsfähigkeit eines oder mehrerer CPU-Kerne, die „hart“ auf dem Baustein implementiert sind, wird mit der Flexibilität des FPGA-Teils verschmolzen. Die CPU-Kerne bilden mit vielen auch auf herkömmlichen System-on-Chip verfügbaren Schnittstellen ein komplettes Prozessor-Subsystem welches das Herzstück des Systems darstellt.

Beim Einsatz dieser SoC-FPGAs kann der Entwickler sowohl auf die obligatorischen Funktionsblöcke, wie SDRAM Controller, Flash Controller und System Interconnect zurückgreifen, als auch Gigabit Ethernet und USB2.0 (Host/OTG) Kommunikationsschnittstellen mit ausreichend Bandbreite einsetzen.

Für die Anforderungen im industriellen Umfeld runden serielle Schnittstellen, CAN, SPI und I²C die Systemfunktionalität ab. Da der FPGA-Teil skaliert werden kann, lassen sich damit auch komplexere Ansätze realisieren.

Durch diese Kombination kann die leistungsfähige CPU um weitere benötigte Standard-Schnittstellen erweitert werden. Diese werden als IP-Core im FPGA-Teil des Moduls untergebracht und ergänzen die bereits verfügbaren Schnittstellen des Hard Processor Systems.

Um bei diesem Ansatz auch die Kosten im Rahmen zu halten, empfiehlt sich der Einsatz von Standard-IP-Cores, die entweder von FPGA-Herstellern oder Third-Parties frei oder gegen Lizenzgebühr verfügbar sind.

Alternativ lässt sich auf freie IP-Cores zurückzugreifen, die unter unterschiedlichen freien Lizenzen zum Download und zur weiteren Verwendung angeboten werden.

IP-Cores der FPGA-Hersteller können oft kostenfrei für Arbeiten im Rahmen der Entwicklung lizensiert werden. Erst bei der Finalisierung des FPGA-Designs wird der Kauf der kommerziellen Lizenz fällig, um die IP auch im Serienprodukt zu verwenden.

Beispiele für freie IP-Cores sind - ohne Anspruch auf Vollzähligkeit - z.B. UART, CAN, 10/100/1.000MBit Ethernet, Firewire, I²C, I²S, SPI Master/Slave, SD-Card, USB und eine Vielzahl weiterer Implementierungen.

Artikelfiles und Artikellinks

(ID:43810469)