Anzeige

CPU-Entlastung

Vorverarbeitung auf Framegrabbern mit FPGA-Design-Kit

Kamerahersteller und Integratoren haben ab sofort die Möglichkeit selbstständig Code in das FPGA der Framegrabber Coaxlink Octo und Coaxlink Quad CXP12 hochzuladen. So ist die Ausführung von Aufgaben möglich, die bisher auf dem Host verarbeitet wurden.

Bild: Euresys s.a.Bild: Euresys s.a.
Bild 1 | Mit dem FPGA-Design-Kit CustomLogic können Anwender ihren eigenen FPGA-Code in einer Objektdatei erstellen, kompilieren und anschließend in das FPGA der Framegrabber hochladen.

Mit dem CustomLogic FPGA-Design-Kit können praktisch alle sich wiederholenden Bildverarbeitungsaufgaben umgesetzt werden, die für jedes Pixel im Bild ausgeführt werden. Typische Anwendungen sind die Umwandlung des Bildes anhand einer Lookup-Tabelle, wie z.B. die Farbkonvertierung von der RGB- zur YUV-Skala, die Implementierung eines Rauschreduzierungsalgorithmus oder die Korrektur von Sensordefekten, wie schwarzen Pixeln. Eine weitere Anwendung ist die Flat-Field-Korrektur, wobei Lichtintensitätsunterschiede im gesamten Sichtfeld korrigiert werden. Das FPGA verarbeitet dabei das Bild parallel mit der Bildübertragung. So wird ohne Verzögerungen dank des Framegrabbers Verarbeitungszeit auf dem Hostcomputer eingespart. Dadurch bieten Vision-Systeme eine höhere Auflösung und Geschwindigkeit sowie geringere Latenzen ohne höhere Kosten für den Hostcomputer.

Bild: Euresys s.a.Bild: Euresys s.a.
Bild 2 | Das CustomLogic-FPGA-Design belässt bis zu 70 Prozent der Ressourcen auf den Xilinx Kintex Ultrascale XCKU035 FPGAs.

FPGA-Code selbst hochladen

Früher boten Hersteller von Framegrabbern den Kunden an, deren applikationsspezifischen Code in die FPGAs der Framegrabber einzubinden. Bei diesem Ansatz müssen die Anwender jedoch ihre entsprechenden Codes und Algorithmen dem Hersteller preisgeben. Bei CustomLogic von Euresys ist das nicht der Fall. Hier können die Anwender ihren eigenen FPGA-Code in einer Objektdatei erstellen, kompilieren und anschließend in das FPGA hochladen. Der proprietäre Code des Vision-Integrators verlässt dabei niemals den Standort. Viele große Maschinenbauer haben in der Vergangenheit ihre eigenen Framegrabber auf Basis von FPGAs entwickelt, die auch Bildverarbeitungs- und Analyseaufgaben ausführen. Diese Framegrabber nutzen meist das alte CameraLink-Protokoll. Diese Anwender stehen aber derzeit vor der Herausforderung, ihre Framegrabber an die aktuelle Generation der High-Speed-Schnittstellen wie beispielsweise CXP-12 anzupassen. Diese Aufgabe wird nun wesentlich vereinfacht, indem sie das CustumLogic Tool nutzen, um ihre proprietären Bildverarbeitungsroutinen auf die Framegrabbern hochzuladen.

FPGA-Design-Kit

Das CustomLogic-FPGA-Design belässt bis zu 70 Prozent der Ressourcen auf den Xilinx Kintex Ultrascale XCKU035 FPGAs, die in den Framegrabbern Coaxlink Octo und Coaxlink Quad CXP-12 verwendet werden. Das Design-Kit bietet zudem Zugriff auf den Pixelfluss der CXP-Kamera, DDR4 On-Board-Speicher und PCIe Gen3-Konnektivität. In der Designphase werden dabei die Vivado-Entwicklungstools von Xilinx verwendet. Das Design-Kit wird mit einem Referenzdesign geliefert, das ein Vivado-Projekt mit allen für den Nutzer verfügbaren Schnittstellen enthält. Die Schnittstelle für den Datenstrom (Pixel) basiert auf dem AMBA AXI4-Stream-Protokoll. Quellseitig bietet die Schnittstelle von der Kamera erfasste Bilder und überträgt die Nachbearbeitung von der Benutzerlogik an den PCI-Express-DMA-Backend-Kanal. Die Schnittstelle für Steuerung/Status ermöglicht dem Anwender, die Register in der Benutzerlogik über die Coaxlink-Treiber-API zu lesen und zu schreiben. Die Ereignisschnittstelle liefert der Benutzerlogik, zeitgestempelte Ereignisse an das Memento Logging-Tool mit einer Genauigkeit von 1/s. Memento bietet Entwicklern so eine präzise Zeitachse der Ereignisse mit Kontextinformationen einer Logikanalysatoransicht. Es bietet wertvolle Hilfe bei der Anwendungsentwicklung und beim Debuggen, sowie während des laufenden Maschinenbetriebs. Die Vivado High-Level Synthesis (HLS), die als kostenloses Upgrade in allen Vivado HLx-Editionen enthalten ist, beschleunigt die IP-Erstellung durch die Möglichkeit von Spezifikationen in C, C++ und SystemC, die direkt in programmierbare Xilinx-Geräte implementiert werden können. Dazu ist keine manuelle Erstellung von RTL-Code (Register Transfer Level) erforderlich. Für das FPGA-Design müssen allerdings die Einschränkungen und Begrenzungen von FPGAs bekannt sein. Darüber hinaus sind Programmierkenntnisse in C++ erforderlich. So schließen z.B. die RAM-Begrenzungen in FPGAs in der Regel eine Speicherzuweisung aus.

Fazit

CustomLogic kann viele Bildverarbeitungsaufgaben parallel ausführen und Pixel direkt ohne Pufferung oder Latenz verarbeiten. Durch die Verlagerung sich wiederholender und massiv parallel ausgeführter Aufgaben auf das FPGA kann sich die CPU auf High-Level-Aufgaben konzentrieren. Das in dem FPGA-Design-Kit enthaltene geistige Eigentum, sowie die CoaXPress-Schnittstelle und das Logging-System Memento helfen dabei, Produkte deutlich schneller als bisher auf den Markt zu bringen.

Euresys s.a.

Dieser Artikel erschien in inVISION 5 2019 - 27.09.19.
Für weitere Artikel besuchen Sie www.invision-news.de