Skip to main content

Die Kombination von RISC-V und FPGA bietet neue Designlösungen

Jim Harrison for Mouser Electronics

(Source: Shutterstock/usk75)

Kleine, stromsparende und leistungsstarke SOC-FPGAs eignen sich hervorragend für viele Applikationen.

Die Einführung des RISC-V-Befehlssatzes hat dem Entwicklungsingenieur eine solide Grundlage für den Systementwurf unter Verwendung eines FPGA mit einem Prozessorkern und standardmäßigen oder kundenspezifischen Erweiterungen gegeben. Der kostengünstige RISC-V-Befehlssatz ist offen und eingefroren, und die Prozessordesigns und -erweiterungen werden weiterhin gut funktionieren, auch wenn sich RISC-V weiterentwickelt. Anders ausgedrückt: Dieser RISC-V-Prozessor ist eine risikofreie Lösung.

Anwendungsbereiche für RISC-V


RISC-V-basierte Prozessoren werden für Bildgebung und Sensorschnittstellen, Militär und Luft- und Raumfahrt, Internet of Things (IoT), Automobil- und Schienenverkehr sowie industrielle Steuerungen eingesetzt. RISC-V-Designs bieten einen hohen Datendurchsatz, der für verschiedene Anwendungen benötigt wird, darunter intelligente Embedded-Bildverarbeitung, Hybrid- und Elektrofahrzeuge, drahtlose Kommunikationsinfrastruktur und Robotik. Und die einfache Ausführung eines Echtzeit-Betriebssystems, einschließlich Linux, ermöglicht ein robustes Design von Steuerungssystemen.

Ein FPGA ist wahrscheinlich die beste Möglichkeit, RISC-V-Prozessor-basierte Designs zu implementieren. Der Ingenieur kann sich für einen Softcore-Prozessor entscheiden, der mit Hilfe der FPGA-Struktur implementiert wird, oder für eine Hardcore-CPU, die physikalisch als Struktur im Silizium während der Herstellung implementiert wird. Ein Softcore kann ein höheres Maß an Wiederverwendung von Designs und ein geringeres Veralterungsrisiko bieten, während der Hardcore der Leistungschampion ist.

FPGAs eignen sich hervorragend für die Implementierung von Operationen, die für Allzweck-CPUs entweder sehr komplex oder zeitaufwändig sind. Blockchiffren und kryptografische Funktionen werden beispielsweise von CPUs ausgeführt, die sehr viele Zyklen benötigen und viel mehr Zeit in Anspruch nehmen als eine spezialisierte FPGA-Struktur, die als vollständig entwickelter IP-Core verfügbar ist.

 

Der Weg zum Ziel


Microchip bietet RISC-V-Verarbeitung in zwei PolarFire Produkt-Familien (plus einen strahlungstoleranten Typ). Beide bieten Prozessoroptionen, die sich für die RISC-V-Implementierung eignen. Alle Bauteile sind nichtflüchtig und sofort einsatzbereit. Sie verfügen über vier bis vierundzwanzig optimierte 12,7-Gbit/s-Transceiver, die – wie es heißt – nur die Hälfte des Stroms im Vergleich zu Konkurrenzprodukten benötigen, sowie DDR4- und 1,6-Gbit/s-LVDS-Schnittstellen. Die Chips bieten einen Systemcontroller-Suspend-Modus für sicherheitskritische Designs und zahlreiche Sicherheitsfunktionen.

Die PolarFire MPFxxxT FPGAs sind in Versionen mit 50.000, 100.000, 200.000, 300.000 und 500.000 Logikelementen (LE) erhältlich – optional mit einem Mi-V RISC-V Softcore-Prozessor. Ein zentraler CPU-Core verbraucht bis zu etwa 10.000 LEs. Die integrierte Hard-IP der Chips umfasst einen dualen PCIe-Endpunkt/Root-Port, PLLs, DLLs, einen 18 x 18 MACC-Pre-Adder und einen Kryptoprozessor.

Einige Beispiele für die mehr als 100 verfügbaren anwendungsspezifischen Erweiterungen sind ein FIR-Filter (Finite Impulse Response), ein CRC32- (32-Bit Cyclic Redundancy Check) und ein 3DES-Algorithmus (Triple Data Encryption Standard). Durch das Hinzufügen von Erweiterungen zu einem RISC-V-Core kann die Leistung bei diesen Funktionen erheblich beschleunigt und gleichzeitig viel Strom gespart werden.

Abbildung 1: Die 16 x 16-mm-Gehäuseversion des PolarFire SOC. (Quelle: Microchip)

Die Hardcore-Versionen des PolarFire SOC (System-on-a-Chip) (Abbildung 1) haben fünf CPU-Cores – vier Prozessorkerne und einen Monitorkern –, die alle RV64 64-Bit-Implementierungen sind. Es gibt sie in fünf Versionen mit 25.000 bis 460.000 LEs (siehe Tabelle 1). Es ist das erste System-on-Chip (SoC) FPGA mit einem deterministischen, kohärenten RISC-V CPU-Cluster und einem deterministischen L2-Speicher-Subsystem, das Linux- und Echtzeitanwendungen ermöglicht.

Aufgebaut auf einem hochmodernen nichtflüchtigen 28-nm-Prozess, verbraucht PolarFire etwa die Hälfte des Stroms anderer FPGA-Produktfamilien. Die Implementierung der PolarFire RISC-V CPU-Mikroarchitektur verwendet eine einfache fünfstufige In-Order-Pipeline mit nur einer Ausgabe, die nicht unter den Meltdown- und Spectre-Exploits leidet, die bei Standard-Out-of-Order-Maschinen auftreten. Alle fünf CPU-Cores sind mit dem Speichersubsystem kohärent, was eine vielseitige Mischung aus deterministischen Echtzeitsystemen und Linux in einem einzigen Multi-Core-CPU-Cluster ermöglicht (Abbildung 2).

Tabelle 1: Die leistungsstarken PolarFire SoC FPGAs mit fünf Cores sind in fünf Versionen mit Gehäusegrößen von 11 mm bis 35 mm im Quadrat erhältlich. (Quelle: Microchip)

Diese Prozessoren zeichnen sich durch eine Immunität gegenüber netzwerkbasierten Sicherheitsangriffen aus, die bei anderen Cores/ISAs nicht ohne Weiteres gegeben ist, insbesondere wenn es um IoT-Anwendungen geht. RISC-V verlässt sich nicht nur auf Kompartimentierung und Kommunikationssicherheit, sondern ist einzigartig. Dazu gehört die Computersicherheit, um Buffer Overflows zu verhindern und den Prozessor vor Cyberangriffen zu schützen, die über das Netz kommen und Schwachstellen im Code ausnutzen.

Da die PolarFire-Technologie (in vielen Fällen) 50 % weniger Strom verbraucht als FPGAs der Konkurrenz, können sie in Umgebungen mit kleinem Formfaktor eingesetzt werden, in denen die Wärmeabfuhr schwierig ist, oder sie ermöglichen den Verzicht auf Lüfter in einem System.

Abbildung 2: Die PolarFire SOC-Systemarchitektur.  (Quelle: Microchip)

 

Echtzeit-Linux


Per elementarer Definition arbeitet ein Echtzeitsystem deterministisch-periodisch. Ein Echtzeit-Linux-Betriebssystem benötigt eine Speicherverwaltungseinheit (MMU), um den physischen Speicher ohne Verzweigungsvorhersage zu virtualisieren. Das PolarFire SOC kann beide Anforderungen erfüllen.

Die vier RV64GC-Cores des Chips können Linux ausführen, der RV64IMAC-Monitorkern hingegen nicht. Das L2-Speicher-Subsystem hat eine Größe von 2 MB mit Fehlerkorrektur und kann in drei Modi konfiguriert werden: Ein assoziativer 16-Wege-Cache, ein lose integrierter Speicher (LIM) und ein Scratchpad-Speicher. Der LIM-Speicher kann in 128-KB-Blöcken aufgebaut werden und einem Prozessor exklusiv zugewiesen werden.

 

Development Tools


Libero® SoC Design Suite v12 bietet einfach zu erlernende, leicht zu adaptierende Entwicklungswerkzeuge für das Design mit PolarFire. Die Suite integriert den Industriestandard Synopsys Synplify Pro®-Synthese und Siemens ModelSim®-Simulation mit erstklassigem Constraints-Management, Programmier- und Debug-Tools sowie sicherer Unterstützung für die Produktionsprogrammierung. Der MSS Configurator des Systems ist ein Werkzeug zur Konfiguration des PolarFire SoC CPU Subsystems. Er wird zur Konfiguration von MSS-Takten, Fabric-Schnittstellen, E/A-Bänken, DDR-Speichern und Debug-Funktionen verwendet.

 

Der HDL-Simulator ist das entscheidende Werkzeug für den Aufbau der Hardware-Architektur. Damit lässt sich simulieren, wie die Architektur bei Eingabe von Beispieldaten funktioniert.

Qualifizierte Kunden können mit der Libero SoC 12.3 FPGA Design Suite und der integrierten Entwicklungsumgebung SoftConsole 6.2 von Microchip ohne Hardware mit dem Design beginnen. Außerdem können sie ihre embedded Anwendungen mit Renode, einem virtuellen Modell des Mikroprozessor-Subsystems, debuggen.

Das PolarFire SoC Icicle Development Kit (Abbildung 3) ist eine kostengünstige Designplattform, die die Evaluierung des Fünf-Core-RISC-V-Mikroprozessors, des innovativen Linux, der Echtzeitausführung und der stromsparenden Fähigkeiten des Subsystems ermöglicht. Das Kit verfügt über die geeigneten Speicher (LPDDR4, SPI und eMMC-Flash), um Linux ab Werk laufen zu lassen, einschließlich eines Stromsensors zur Überwachung verschiedener Stromversorgungsbereiche, eines PCIe-Root-Ports, Raspberry Pi 4, SD-Karten- und mikroBUS-Erweiterungsports, mit USB-, UART-, CAN- und I2C-Verbindungsoptionen und mit Gbit-Ethernet.

Abbildung 3: Mit dem Icicle Design Kit können schnelle PolarFire SOC-Designs erstellt werden. (Quelle: Microchip)

Das Icicle Kit PolarFire SoC-Bauteil wird mit dem integrierten FlashPro 6 Programmierer oder einem externen FlashPro 4, 5 oder 6-Programmierer programmiert. Das 18,3 cm x 12,6 cm große Kit enthält ein 12 V/5 A-Wandnetzteil, ein Ethernet-Kabel, einen USB 2.0-Mikrostecker für eine UART-Schnittstelle zu einem PC und eine Schnellstartkarte.

Zusammenfassung


Bei der Verwendung einer RISC-CPU ist das Risiko für den Entwickler geringer. Vorausplanende Entwicklungsteams könnten die RISC-V ISA nutzen, um ein MCU-Framework zu schaffen, das sich über Generationen von Bauelementen und Produkten erstreckt. Und für wirklich anspruchsvolle Anwendungen werden die harten Implementierungen mit FPGA-Struktur und Cores mit Vektorerweiterungen immer leichter verfügbar.

Die neue Vorgehensweise besteht darin, zuerst einen Befehlssatz auszuwählen, dann einen Core-Anbieter und schließlich Erweiterungen nach Bedarf hinzuzufügen. Denken Sie daran, dass RISC-V weder ein Core noch eine CPU ist. Es handelt sich dabei vielmehr um eine Befehlssatzspezifikation. Sie können einen Core, der Teil eines FPGAs ist, oder ein Core-Design von mehreren Open-Source-Anbietern (mindestens ein Dutzend) erhalten oder einen Core/Prozessor von kommerziellen Core-Anbietern kaufen.