Mehr Intelligenz für das Edge Flexible System-on-Chip-Lösung für Endgeräte

Autor / Redakteur: Harald Werner * / Michael Eckstein

Endgeräte für das IoT sollen intelligenter werden. Eine sinnvolle Kombination von FPGA, System-on-Chip und Mikrocontroller kann die erforderliche Rechenleistung energieeffizient bereitstellen.

Firmen zum Thema

Spezialist: Die Vorteile von Einzellösungen wie FPGA, SoC und Mikroprozessor lassen sich in einem flexiblen Baustein kombinieren.
Spezialist: Die Vorteile von Einzellösungen wie FPGA, SoC und Mikroprozessor lassen sich in einem flexiblen Baustein kombinieren.
(Bild: Efinix)

Endgeräte sollen immer intelligenter werden, unter anderem um den Datenaustausch zwischen ihnen und einer Cloud zu optimieren. Alle Funktionen, die ein Endgerät selbst erledigen kann, müssen nicht in die Cloud ausgelagert werden. Die Produkte werden damit auch zuverlässiger, da keine Abhängigkeit von einer Cloud-Verbindung besteht. Andererseits setzt dies vor­aus, dass die Geräte über mehr Rechenleistung verfügen. Gleichzeitig dürfen diese Geräte aber nicht mehr Strom verbrauchen – schließlich sollen sie ihre Batterie nicht stärker belasten und möglichst wenig Wärme erzeugen.

Es gibt hier die verschiedensten Ansätze mit FPGAs, festverdrahteten SoCs oder auch Mikroprozessoren, die aber meist an ihre Grenzen stoßen. Während eine Lösung einfach zu realisieren ist, aber nicht genug Rechenleistung hat, verbraucht die andere Lösung zu viel Strom oder ist wirtschaftlich nicht sinnvoll. Doch die Vorteile der Einzellösungen lassen sich kombinieren.

SoC mit applikations- spezifischen Funktionsblöcken

System-on-Chip (SoC) verbinden viele Anwender mit Bausteinen, die Prozessoren, programmierbare Logik und I/O-Blöcke auf einem Siliziumchip vereinen. Dieser Ansatz ist sicherlich eine gute Lösung, wenn man sehr schnellen Datenaustausch zwischen FPGA und Prozessor benötigt, mit sehr geringer Latenzzeit bei gleichzeitiger hoher Geschwindigkeit des Prozessors. Im Prinzip besteht ein System on Chip aus einem Prozessor mit einem oder mehreren Cores, einem Memory Controller, Peripherie-Komponenten sowie einem Hardware-Beschleuniger.

Um diese Komponenten flexibel zu halten, hat Efinix sein Edge Vision SoC entwickelt. Es ist möglich, diese Lösung auf die Ziel­applikation zu optimieren. Der Mikropro­zessor kann die Kontrolle über das Gesamtsystem übernehmen und Standard-Algorithmen verarbeiten, die wenig Rechenleistung benötigen. Dort wo seine Rechengeschwindigkeit nicht ausreicht, lassen sich Prozesse in das FPGA auslagern, das sie über massivparallele Verarbeitung beschleunigt. Über den Memory Controller kann der Prozessor auf die zu verarbeitenden Daten zugreifen oder diese auch speichern. Über die Peripherie-Komponenten werden die Daten zur Verarbeitung in das System gebracht.

Die Herausforderung, ein solches System zu designen, liegt in der Komplexität sowie den benötigten Ressourcen und den damit verbundenen Kosten. Der Vorteil der optimierten Lösungen von Efinix besteht darin, dass sie applikationsspezifische I/O-Peripherien sowie Schnittstellen als fertige Lösungen zur direkten Implementierung anbietet.

Auch das Interface zwischen Prozessor und externem DDR-Speicher wird als Plug & Play-Komponente zur Verfügung gestellt. Als Prozessor wird ein Open-Source-RISC-V-Prozessor benutzt, der ein Hardware-/Software-Co-Design ermöglicht. Dieser Ansatz erlaubt eine schnelle Implementierung des Designs und damit einen schnellere Verfügbarkeit eines Produkts auf dem Markt.

Anwendungsbeispiel Bilddatenverarbeitung

Als erste vorgefertigte Lösung dient hier ein Kamera-Design mit einem Kamerasensor, der über die MIPI-CSI2-Schnittstelle an das Trion FPGA angeschlossen ist. Über eine I2C-Schnittstelle, die über einen APB3-Bus an den RISC-V-Prozessor angeschlossen ist, kann der MIPI-CSI2-Sensor über den RISC-V-Prozessor konfiguriert werden. Die Daten aus dem MIPI-CSI2-Interface können über eine Vorverarbeitung im Eingangsmodul verarbeitet werden. Die verarbeiteten Daten werden über ein standardisiertes FIFO-Interface in den DMA geschrieben. Aus dem DMA kann der Speicher angesprochen werden der über den System Interconnect Bus ebenfalls mit dem Prozessor (RISC-V) verbunden ist.

Der Hardware-Beschleuniger ist ebenfalls mit dem DMA verbunden. Im Beschleuniger ist hier z.B. ein Sobel-Filter mit Erosion und Dilation implementiert, der in der Lage ist, die Kanten hervorzuheben, was zu einer besseren Kantenerkennung führt. Die Daten kommen aus dem DMA über ein FIFO und werden vom Hardware Beschleuniger auch wieder über ein FIFO in den DMA geschrieben. Der Prozessor steuert den Ablauf und hat entsprechenden Zugriff auf die Daten im DMA bzw. Speicher.

Bild 1: Blockschaltbild des System-on-Chip-Bausteins. Neben der programmierbaren Logik sind 
ein Prozessor, Hardware-Beschleuniger, Speicher- und I/O-Controller integriert.
Bild 1: Blockschaltbild des System-on-Chip-Bausteins. Neben der programmierbaren Logik sind 
ein Prozessor, Hardware-Beschleuniger, Speicher- und I/O-Controller integriert.
(Bild: Efinix)

Die abgearbeiteten Daten werden dann über das Ausgabemodul an ein Display mit LVDS Schnittstelle angeschlossen. Hier können auch die entsprechenden Verarbeitungen und die Anpassung an das Display erfolgen. Das Eingangs-Modul, Ausgabe-Modul sowie das Hardware-Beschleuniger-Modul sind in einem standardisierten Wrapper eingebettet, so dass sich der Entwickler keine Gedanken um die Anbindung an DMA, oder die verschiedenen Module machen muss.

RISC-V Prozessor in Ruby-Konfiguration

Weitere Funktionen wie RGB 2 Gray können im RISC-V Prozessor erfolgen. Das Design wurde aus den vorgefertigten Modulen aufgebaut, die über Highspeed-Schnittstellen zum DMA sowie über Lowspeed-Verbindungen zum Prozessor verbunden sind. Nur dort, wo hohe Datentransferraten erforderlich sind, kommen schnelle Verbindungen zum Einsatz. Für Kontrollsignale werden nur langsamere, ressourcensparende Verbindungen benötigt und verwendet. Über diesen Ansatz können schnell die verschiedensten Designs verbindungsoptimiert erstellt werden.

Bild 2: 
Das Edge Vision SoC-Framework verwendet Quantum-
Beschleuniger, um die Hardware/Software-Partitionierung zu erleichtern.
Bild 2: 
Das Edge Vision SoC-Framework verwendet Quantum-
Beschleuniger, um die Hardware/Software-Partitionierung zu erleichtern.
(Bild: Efinix)

Nicht alle Komponenten greifen direkt auf den externen Speicher zu. Somit kann dort auch nicht so schnell ein Engpass entstehen. Zum Realisieren solcher Systeme bietet Efinix die Trion-FPGA-Familie sowie verschiedene Funktionsblöcke an. Diese Bausteinfamilie besteht aus FPGAs mit bis zu 120K Logikelementen und einem eingebauten Speicher-Controller, der DDR3, LPDDR3, LPDDR2 bis 1066 MBit/s unterstützt. Auch die MIPI-CSI2-Schnittstellen sind fest verdrahtet und unterstützen ein MIPI-CSI2-Interface bis 4x 1,5 GBit/s. Die in den FPGAs verwendete Quantum-Technologie ermöglicht geringe Verlustleistungen sowie schnelle Systemfrequenzen.

Tabelle: Die im Design verwendeten Ressourcen im Überblick.
Tabelle: Die im Design verwendeten Ressourcen im Überblick.
(Bild: Efinix)

Die Tabelle zeigt die im Edge-Vision-SoC-Design verwendeten Blöcke. Der RISC-V Prozessor, hier in der Ruby-Konfiguration, arbeitet mit bis zu 100 MHz Systemfrequenz. Für die neue Trion-Titanium-FPGA-Familie ist eine Systemgeschwindigkeit von mehr als 250 MHz, sowie die Unterstützung von DDR4/LPDDR4 vorgesehen. Der RISC-V-Prozessor ist vorkonfiguriert und kann zusammen mit der Entwicklungsplattform kostenlos von der Efinix Webseite heruntergeladen werden.

Diesen Beitrag lesen Sie auch in der Fachzeitschrift ELEKTRONIKPRAXIS Ausgabe 4/2021 (Download PDF)

Bild 3: 
Das Eingangs- und das Ausgabe-Modul sowie das Hardware-Beschleuniger-Modul sind in einem standardisierten Wrapper eingebettet.
Bild 3: 
Das Eingangs- und das Ausgabe-Modul sowie das Hardware-Beschleuniger-Modul sind in einem standardisierten Wrapper eingebettet.
(Bild: Efinix)

Mit solch einer flexiblen Lösung lassen sich Endgeräte effizienter gestalten bei gleichzeitiger Optimierung der Verlustleistung und der entstehenden Kosten. Das beschriebene System ist für eine Kamera ausgelegt, kann aber mit nur geringem Aufwand auch auf andere Systeme adaptiert werden. Zum Beispiel können für KI-Applikationen die erforderlichen Neuronalen Netze in ein solches Hardware-Beschleuniger-Modul ausgelagert werden.

Der Prozessor kann über Standardaufrufe diesen Ablauf kontrollieren und ggf. zusätzliche Informationen zu den KI-Ergebnissen hinzufügen bzw. die Ergebnisse interpretieren. Weitere Applikationsbeispiele werden bald verfügbar sein. Diese Lösung ist sicherlich nicht direkt mit festverdrahteten SoC-Lösungen zu vergleichen, stellt aber eine gute Alternative dar, wenn Verlustleistung und Wirtschaftlichkeit eine wichtige Rolle spielen.

* Harald Werner ist European Sales Director von Efinix mit Sitz in Allershausen

(ID:47070710)