Eckdaten

In den vergangenen Jahren rückte das Thema FPGA immer stärker in das Interesse von IT-Unternehmen. Auch wenn diese Technologie inzwischen schon 30 Jahre alt wird, ist ihre Attraktivität durch die wachsende Logikkomplexität und die unmittelbare Kombination mit der CPU-Technologie weiter stark gestiegen.

Die Komplexität der Chips hat über die Jahre zugenommen, sodass sich heute sowohl hochkomplexe Schaltungen als auch komplette Systeme über FPGAs realisieren lassen. Wegen ihres vergleichsweisen einfachen Aufbaus stellt man FPGAs heute schon mit 14 Nanometern Strukturbreite her. Neben einer höheren Logikdichte und kleineren Die-Flächen ist somit auch eine geringere Leistungsaufnahme möglich.

Echtzeitfähigkeit und Reprogrammierbarkeit sind zwei wesentliche Eigenschaften von FPGAs. Ihre Vorteile zeigt die Prozessorarchitektur am eindrucksvollsten bei der parallelen Verarbeitung von Daten wie zum Beispiel in der industriellen Bildverarbeitung. Bei wahlweisen Zugriffen, die bei Datenbanksuchen stattfinden, bleibt der FPGA deutlich unter Vergleichswerten von Alternativtechnologien.

Design-Erstellungsprozess mit Vergleich der Standard-Programmiermethoden VHDL/Verilog und Visual-Applets.

Design-Erstellungsprozess mit Vergleich der Standard-Programmiermethoden VHDL/Verilog und Visual-Applets.Silicon Software

Die größten Hersteller von FPGAs haben sich dieses Themas angenommen und bieten SoC-Prozessoren (System on a Chip) an, die ein FPGA und einen ARM-Prozessor enthalten. Beide Technologien sind energiesparend und eignen sich besonders für den Embedded-Einsatz. Neue Felder wie Industrie 4.0 und Internet of Things benötigen dezentrale, leistungsstarke Technologien, die sich einfach verbauen oder austauschen lassen. Mit diesen aktuellen SoC-Generationen stellen die Hersteller eine Technologieplattform für industrielle Ansprüche bereit.

Visual-Applets in der aktuellen Version 2.1 mit internationalem Vision Award 2006 und Screenshots der GUI.

Visual-Applets in der aktuellen Version 2.1 mit internationalem Vision Award 2006 und Screenshots der GUI.Silicon Software

Dezentral und leistungsstark

Für Software und ARM-Prozessoren stehen komfortable Programmierentwicklungsumgebungen zur Verfügung. Dahingegen hat die FPGA-Technologie noch den Ruf, eine Thematik für Spezialisten zu sein. Im Vergleich zur Anzahl der Softwareprogrammierer stehen dem Markt nur wenige Hardwareprogrammierer für diese Technologie zur Verfügung. In den vergangenen Jahren gab es immer wieder Ansätze, den Zugang zu vereinfachen. Unternehmen entwickelten C-ähnliche Beschreibungssprachen und Konverter von C in eine HDL (Hardware Description Language). Die Ansätze funktionierten mehr oder weniger gut, konnten jedoch in den meisten Fällen nicht die gesamte Programmierungskette abdecken, sondern lediglich einzelne Entwicklungsschritte. Ein mit aktuellen Hochsprachen-Programmierumgebungen vergleichbarer Komfort fehlte.

Die Maschine soll sehen lernen

2006 kam Silicon Software mit Visual-Applets als grafische Programmierumgebung für Endkunden auf den Markt. Das Ziel bestand darin, die Anforderungen der industriellen Bildverarbeitung an hohe Bandbreiten sowie eine Signal- und Bildverarbeitung mit sehr geringer Latenz so zu vereinen, dass sowohl Hard- als auch Softwareprogrammierer sowie Anwendungsingenieure das Werkzeug bedienen können.

Visual-Applets-Design mit Simulationseingabe-Modul (grau) und zwei Simulationsausgabe-Modulen (grün), davor Simulationskonfiguration und Bildausgabefenster.

Visual-Applets-Design mit Simulationseingabe-Modul (grau) und zwei Simulationsausgabe-Modulen (grün), davor Simulationskonfiguration und Bildausgabefenster.Silicon Software

Heutige Bildverarbeitungstechnologien garantieren eine hundertprozentige Auswertung und übernehmen bei geringen Verarbeitungslatenzen auch die sofortige Auswertung und Aussortierung. Dies wird meistens mit einer praktischen Echtzeitfähigkeit umschrieben. Zunehmend höhere Sensorauflösungen und -geschwindigkeiten ermöglichen es, immer kleinere Details zu erfassen und gleichzeitig den Produktionsdurchsatz zu erhöhen. Durch diesen Marktbedarf ist ein Ende der Entwicklung derzeit nicht absehbar. Die Bildverarbeitung ist daher ein prädestiniertes Feld für FPGAs, sowohl bei hohen Bandbreiten als auch für den Einsatz in kleinen Systemen.

Andersartiger Ansatz von Visual-Applets

Der andersartige Ansatz von Visual-Applets setzt bereits bei der Hardware-Beschreibungssprache an. Mit einem Klassenbibliothekskonzept auf C/C++ ließ sich bei klassischen Verarbeitungsaufgaben die Geschwindigkeit erhöhen. Die Programmierabfolgen sind abgestimmt auf die Belange von Bildverarbeitern und deren Anforderungen und Erwartungen. Hardwarefunktionen sind in grafische Operatoren verpackt, die wiederum in 14 thematische Bibliotheken zusammengefasst sind. Über Drag and Drop werden die Operatoren zu Designs verbunden. Schon während der Eingabe weist Visual-Applets auf mögliche Fehler bei Formaten und der Parametrisierung hin. Eine zweistufige Überprüfung (Design Rules Check) macht auf tieferliegende potenzielle Designfehler aufmerksam. Den Füllgrad des FPGAs gibt eine Ressourcenübersicht für Flip-Flops, Block-RAM und Logikeinheiten wieder, die Bandbreitenkontrolle die Eckwerte für das Zieldesign. Eine Besonderheit ist die High-Level-Simulation. Die Verifikation des Hardwarecodes auf funktionales und operatives Verhalten ist bei der FPGA-Programmierung zeitaufwendig. In Visual-Applets ist jeder Operator sowohl für die schnelle Ergebnisberechnung der Simulation in Software als auch für den FPGA-Code in Hardware programmiert. Dies gewährt eine sichere Vorhersage und ein späteres bitgenaues Verhalten. Ein Bildverarbeiter erwartet ein visuelles Ergebnis, damit er seine Methode unter den Umgebungsfaktoren Licht, Optik und Sensor überprüfen kann. Die Simulation bietet diese Möglichkeit, indem sie an jedem beliebigen Punkt des Designs unbegrenzte Bildausgaben berechnet. Somit lässt sich ein Ergebnis bereits vor der zeitaufwendigen Synthetisierung des Hardwaredesigns komfortabel und schnell überprüfen.

Visual-Applets-Design mit Konfigurationsfenster für Operatoren (Filteroperator) und Transportlinks.

Visual-Applets-Design mit Konfigurationsfenster für Operatoren (Filteroperator) und Transportlinks.Silicon Software

Eine weitere wichtige Anforderung ist die Integration des Hardwarecodes in eine Softwareanwendung. Der hierfür entwickelte Generator gibt für jedes individuelle Design einen Beispielcode aus, mit Instanziierung der Hardware, Standardfunktionen der Aufnahme und einer Auflistung aller Register für den Zugriff auf die dynamischen Hardwareparameter. Über den Softwarezugriff auf die Operatoren und Parameter erfolgt dann die Steuerung des Designs.

Ein kombinierter Lösungsansatz

Unterstützt wird die Xilinx-FPGA-Reihe bis hin zur aktuellen Version 7 sowie die SoC-Reihe Zynq. Die hohe Logikdichte des FPGAs (fabric) und der Einsatz eines ARM-Prozessors machen diese Kombination zu einer sehr interessanten industriellen Lösungskomponente. Bereits heute sind viele Softwarepakete für die ARM-Architektur verfügbar. Seit dem Einsatz von ARM-Chips in Smartphones und Tablets wird auch diese Prozessortechnologie ernst genommen. In praktischen Anwendungsumsetzungen übernimmt der FPGA die hochparallele Hauptrechenarbeit und garantiert damit die notwendigen Durchsatzraten bei industriellen Anwendungen. Steuerungs- und Auswertungsaufgaben, die meistens nicht von einer Parallelisierung profitieren, übernimmt der ARM-Prozessor. Der Datenaustausch wird über die gemeinsame Nutzung des Arbeitsspeichers bewerkstelligt. Durch seine Größe und unkomplizierte Integration eignet sich das SoC selbst für anspruchsvolle kleine Bildverarbeitungssysteme.

Silicon Software bietet als Hersteller von Bildverarbeitungslösungen unterschiedliche FPGA-Prozessoren und die Visual-Applets-Entwicklungsumgebung auf seinen Framegrabbern als PCI-Einsteckkarten oder externe Geräte an. Seit 1997 entwickelte das Unternehmen fünf Hardwaregenerationen und realisierte FPGA-Anwendungen teilweise oder komplett, oder schulte Kunden, damit diese die Lösung selbst programmieren konnten. Erfahrungen über den notwendigen Zeit- und Lernaufwand von Hardwareprogrammierern bis hin zu Anwendungsingenieuren liegen vor, um Visual-Applets auch als Lizenz für Dritthardware anzubieten.

Visual-Applets-Design mit Konfigurationsfenster für Operatoren (Filteroperator) und Transportlinks.

Visual-Applets-Design mit Konfigurationsfenster für Operatoren (Filteroperator) und Transportlinks.Silicon Software

Besonders Kamerahersteller, die Konzepte für  intelligente Kameras, sogenannte Smart-Cameras, suchten, interessierten sich sehr für diese Lösung. Silicon Software und Baumer entwickelten gemeinsam eine Kameraserie, die Teillösungen bereits in der Kamera berechnet und ausgibt. Ein Initialkunde aus der Logistikbranche konnte mit den am Markt erhältlichen Lösungen für Barcodes und QR-Codes nicht die notwendige Geschwindigkeit der Produktionsüberwachung erreichen. Aber auch die Umgebungssituation (wechselnde Lichtverhältnisse, Staub und Verschmutzungen, beliebige Positionierung des Codes) erforderte eine aufwendige Bildvorverarbeitung, um die Codes jederzeit zu finden und zu lesen. Die Anforderungen sprachen für den Einsatz intelligenter Kameras mit unterschiedlichen Sensoren und Optiken, die sich an die jeweilige räumliche Situation anpassen. Nach Vorlage des Anforderungsplans konnten die Aufgabenbereiche für die Kameras und den Bildverarbeitungsteil getrennt werden. Während Baumer die optischen und kamerarelevanten Fragen klärte, entwickelte und verifizierte Silicon Software die Verarbeitungsanwendung für die Kameras auf dem FPGA eines Framegrabbers.

Beispielcodegenerator mit lauffähiger Codeausgabe.

Beispielcodegenerator mit lauffähiger Codeausgabe.Silicon Software

Dieses Konzept hat den Vorteil, dass bei frühem Startpunkt und großer Flexibilität mit Standardkomponenten (Machine Vision Kameras) gearbeitet werden kann, um praxisnahe Vorergebnisse zu erhalten. Die spätere Portierung der Anwendung auf den FPGA der Kamera wird über eine interne Funktion von Visual-Applets umgesetzt. Trotz Initialprojekt zeigte sich, dass die Portierung zwischen FPGAs und die Prototypenphase problemlos funktionierten bei hoher Stabilität. Ein großer Vorteil der Reprogrammierbarkeit ist der Wartungsaspekt, der es erlaubt, auch noch im Betrieb Funktionskorrekturen oder -verbesserungen nachträglich zu installieren. Ebenso ist ein zyklischer Austausch der intelligenten Kameras sehr komfortabel, da nur wenige unterschiedliche Einzelkomponenten und Versionierungen vorgehalten werden müssen.

Obwohl es sich bei diesem Projekt „nur“ um ein FPGA-unterstütztes System handelt, wird bereits mit weiteren Herstellern an Zynq-Systemen als Basis für die Kameraintelligenz gearbeitet. Auch wenn es bereits viele Beispiele gibt, in denen durch Signal- und Bildverarbeitung die komplette Funktionalität eines Bildverarbeitungssystems im FPGA realisiert wurden, ermöglicht die Integration einer CPU-Prozessortechnologie in ein SoC zukünftig neue und kleinere Systeme mit dezentraler Auswertungsfunktion. Industrie 4.0 und Internet-of-Things lassen grüßen.