Jenseits der FPGA-Grenzen

Jenseits der FPGA-Grenzen

All Programmable SoCs für die Bildverarbeitung

Vernetzte Steuerungen mit smartem Zugriff für industrielle und Consumer-orientierte Systeme sind eine Alternative zu traditionellen Software-Lösungen mit eingebetteter Verarbeitung. Eine All Programmable SoC (System-on-Chip) Plattform bietet dagegen höhere Performance, einfache Systemintegration und Interconnect, höheren Datendurchsatz und Flexibilität für rechenintensive Applikationen und ist ideal für die Bildverarbeitung.
Smarte Systeme mit schneller Datenverarbeitung, lokaler Entscheidungsfähigkeit und breitbandiger Netzwerkanbindung sind die Schlüsselelemente für künftige Verkehrsleitsysteme mit unterliegender Car-to-Car-Kommunikation oder für die industrielle Robotik mit durchgehend automatisierter Fertigung und simultaner Abarbeitung digitaler Steueralgorithmen in mehreren Achsen. Auf der anderen Seite dieser Gleichung steht die immer leistungsfähigere Bilderkennung mit Echtzeitverarbeitung, wie sie in Fahrer-Assistenzsystemen, in der industriellen Qualitätskontrolle oder in Überwachungskameras mit komplexer Netzwerkanbindung gefragt sind. Die steigenden Erwartungen an smart vernetzte Applikationen treiben die Highspeed-Verarbeitung auch in der digitalen Bildverarbeitung/-analyse voran. Die Verarbeitung von Steuersignalen soll dabei möglichst in den Außenbereichen der Netze stattfinden, statt in konventionell zentralisierten Architekturen. Beispiele dafür sind weiträumig vernetzte Sicherheits- und Überwachungssysteme mit hoch auflösenden Farb-Videoformaten, die nur die analytisch relevanten Daten übertragen und komplexe Vergleiche mit biometrischen Datenbasen ausführen.

Echtzeitverarbeitung mit FPGAs

Im Kontext der Fertigungsautomation verwenden komplexe Montagesysteme heute ausgefeilte Bilderkennungs-Algorithmen für Inspektionsaufgaben oder zum Sortieren der erfassten Gegenstände mit hoher Geschwindigkeit nach vorgegebenen Kriterien, wie z.B. deren Erscheinungsbild oder dem Vorhandensein von Qualitätsdefekten. Auch Sicherheitsvorrichtungen verwenden zunehmend smarte Vernetzungen zum besseren Schutz des Personals. So werden virtuelle Sicherheitsbarrieren mit zwei oder mehr Videokameras implementiert, um den Gefahrenraum von Fertigungsmaschinen zu überwachen oder andere Gefahren zu berücksichtigen, die mit physikalischen Barrieren nicht zufriedenstellend beherrscht werden können. In derartigen Fällen ist meist eine Echtzeitverarbeitung notwendig. Das ist mit den zentralisierten und software-basierten Verfahren der Bildverarbeitung kaum zu leisten. Seit einiger Zeit setzen die Entwickler von eingebetteten Hochleistungs-Echtzeitsystemen daher FPGAs ein, um diejenigen Funktionen zu beschleunigen, die im Hauptprozessor oder per DSP nicht schnell genug ausgeführt werden können. Dabei zeigt sich, dass sicherheitskritische Systeme signifikant einfacher zu validieren sind, wenn sie in Hardware implementiert sind. Das erlaubt den Verzicht auf rigorose Testverfahren für die sicherheitskritische Software. Dieser Trend nimmt zunehmend an Fahrt auf. Inzwischen überschreiten die Anforderungen an die Performance in einigen Applikationen den auf der Leiterplatte möglichen Interconnect zwischen separaten Prozessoren und FPGA-Bausteinen. Außerdem wächst die Nachfrage nach kompaktem Equipment mit mechatronischen Baugruppen aus den Bereichen wie Videokameras für verdeckte Überwachungen, Bildverarbeitung oder Automotive-Applikationen. Das Ergebnis ist ein zunehmender Entwicklungsdruck in Richtung Hardware-Integration und Miniaturisierung.

SoCs für die Bildverarbeitung

Es gibt eine Reihe von Standard-ICs, insbesondere für die digitale Bildverarbeitung, die die ARM-basierte Steuereinheit mit DSP oder Grafikverarbeitung (GPU) integrieren. Nachteilig dabei ist die rigide Prozessor-Architektur mit begrenzten oder inflexiblen I/O-Ressourcen. Das erschwert die Implementierung anspruchsvoller neuer Funktionen. Upgrades sind nur mit signifikanter Hardware-Umentwicklung möglich, etwa mit zusätzlichem FPGA. Xilinx adressiert die Forderungen an die Performance und die Integration künftiger Generationen smart vernetzter Systeme mit dem Zynq-7000 All Programmable System auf einem Chip. Dieses SoC ist der erste Baustein, der einen ARM Dual-Core Cortex-A9 MPCore zusammen mit programmierbarer Logik und wichtigen Peripherie-Elementen auf einem Chip integriert. Ergänzend dazu steht eine umfassende Support-Infrastruktur mit Tools und IP zur Verfügung. Diese umfasst die Vivado HLS Design-Suite und IP Integrator-Tools, OpenCV-Bibliotheken, die SmartCore-IP und spezielle Entwicklungs-Kits. Die Zynq-7000 All-Programmable-Architektur kombiniert einen ARM-Applikationsprozessor mit programmierbarer Logik einschließlich konfigurierbarer DSP-Ressourcen mit flexiblem I/O für eine Vielzahl von Standard-Protokollen bis zu Multi-Gigabit-Datenraten. Damit eliminiert er die Engpässe mit konventionellen diskreten Prozessoren, FPGAs und I/O-Transceivern. Mehr als 3.000 On-chip-Verbindungen zwischen Prozessor und Logik überwinden die Begrenzungen beim konventionellen Leiterplatten-Interconnect durch Datenaustausch mit ‚Silizium-Speed‘. Das Zynq-SoC bietet die passende Architektur für smart vernetzte Applikationen, insbesondere für hoch leistungsfähige Echtzeit-Videoverarbeitung. Das SoC implementiert die Signalverarbeitung der vom Kamera-Sensor erfassten Daten und unterstützt einen breiten Bereich von I/O-Signalen für unterschiedliche Kamera-Konnektivitäten (Bild 1). Die pixel-basierte Verarbeitung, gefolgt von einer rechenintensiven Analytik unter Nutzung der Parallelverarbeitung in der FPGA-Logik, wird ebenfalls on-chip ausgeführt. Der Zynq-Baustein kann auch das Post-Processing der analytischen Daten übernehmen, Graphikverarbeitungen ausführen und die so entstandenen Signale zur Übertragung aufbereiten.

Beschleunigte Applikations- entwicklung

Der ARM-Applikationsprozessor des Zynq-SoC und die FPGA-Logik ergänzen sich. Komplexe Algorithmen lassen sich in der FPGA-Logik implementieren (Bild 2). Dazu zählt die beschleunigte Abarbeitung zur Entlastung des Applikationsprozessors mit besserer System-Performance. Zur Anbindung des Systems an einen zentralisierten Controller stehen für das Zynq-SoC mit seinem programmierbaren I/Os eine hohe Anzahl an Protokollen zur Kommunikation und Video-Übertragung zu Verfügung. Auch proprietäre Standards werden unterstützt. Durch die flexible Optimierung der Prozessor-Ressourcen unterscheidet sich das Zynq-SoC von konventionellen DSP- oder GPU-basierten ICs, die nicht immer die Leistung für alle erforderlichen Algorithmen in der verfügbaren Anzahl von Zyklen aufbringen und oft ein zusätzliches Stand-alone FPGA erfordern. Zur vollen Ausschöpfung der konfigurierbaren Ressourcen des Zynq-Bausteins vereinfacht die Vivado HLS Design-Suite die Partitionierung von Hardware und Software. Sie erlaubt die schnelle Neuzuweisung von Aufgaben, wenn diese erkennbar die Leistung begrenzen. Die Suite ist besonders geeignet für Embedded-Vision-Applikationen und Entwickler, die das Arbeiten mit Vision-Algorithmen in C und C++ gewohnt sind. Wenn ein Algorithmus zu langsam ist oder den Applikationsprozessor überlädt, erlaubt die Suite dessen automatische Synthetisierung in Verilog oder VHDL für die FPGA-Logik des SoC. Das erübrigt manuelle Konversion von C- oder C++-Code in den äquivalenten HDL-Code, was erhebliche Entwicklungszeit in Anspruch nähme und ein Design-Risiko bedeutet. Daneben kann Vivado HLS auf der Systemebene positiv zur Erstellung eines Kompromisses zwischen Prozessor und Logik beitragen. Anschließend kann man das revidierte System im Zynq SoC betreiben, um die System-Performance für die vorgesehene Anwendung zu optimieren. Die Zynq-SoC Entwicklungs-Infrastruktur unterstützt auch die OpenCV Open-Source-Bibliothek und deren Algorithmen, um das Design von eingebetteten Vision-Systemen zu beschleunigen. Die Bibliothek wird stetig erweitert und enthält bereits mehr als 2.500 in C, C++, Java und Python geschriebene Algorithmen. Sie reichen von simplen Funktionen wie Bildfilter bis zu analytischen Aufgaben wie Bewegungsdetektion. Vivado HLS erlaubt die Nutzung des Zynq-SoC zur Synthetisierung oder Kompilierung der Algorithmen in RTL-Code, der zur Implementierung in der FPGA-Logik des SoC optimiert ist. Außerdem wurde die SmartCore IP-Suite geschaffen, die Zugriff auf eingebettete Vision-IP bietet. Damit ist die Implementierung von SmartCore IP-Cores und Algorithmen aus der OpenCV-Bibliothek innerhalb eines eingebetteten Vision-Projekts möglich und gleichzeitig den IP-Integrator nutzen, ein Tool, das sowohl die schematische Eingabe, als auch Umgebungen mit Befehlszeilen unterstützt.

Das könnte Sie auch Interessieren