RISC-V liegt als Open-Source-Architektur bei der Entwicklung von Embedded-Systemen im Trend. Doch worauf kommt es an, wenn man einen RISC-V-Kern implementieren möchte? Für zwei IoT-Demonstratoren in Sicherheitsprojekten wurden unterschiedliche Softcores evaluiert – mit Fokus auf ISA-Extensions, RTOS-Support und Erweiterbarkeit.
Worauf kommt es bei der Wahl eines geeigneten RISC-V-Softcores an? Im folgenden Beitrag wurden fünf verschiedene IP-Cores näher in Augenschein genommen.
Für die Forschungsprojekte Apriori und Saspit wurde von uns jeweils ein auf einem RISC-V Softcore basierender Demonstrator entwickelt. Dazu mussten wir den jeweils passenden RISC-V-Softcore auswählen. Apriori (2021 - 2024) war ein französisch-deutsches Forschungsprojekt mit dem Ziel, hardwarebasierten Schutz von privaten Daten in IoT-Geräten zu gewährleisten. Saspit (2023 - 2026) ist ein deutsches Forschungsprojekt, in dem eine offene IoT-Sensorplattform entwickelt wird mit durchgängiger Sicherheitsgarantie für die Korrektheit, Integrität und Vertraulichkeit der Daten. Sie soll als Grundlage für eine einheitliche Sicherheitsarchitektur in Smart Homes dienen.
Ein kurzer Überblick zu RISC-V
RISC-V ist ein offener Standard für eine Befehlssatzarchitektur, die sich auf das Reduced Instruction Set Computer (RISC) stützt. Als offener Standard, welcher der BSD-Lizenz unterliegt, unterliegt RISC-V keinen Patenten und kann frei verwendet werden, um RISC-V Mikroprozessoren zu entwerfen, herzustellen und weiterzuentwickeln. Im Gegensatz zu RISC-V ist ARM nicht Open Source und unterliegt Lizenzkosten.
RISC-V verfolgt bei der Instruction-Set-Architecture (ISA) einen modularen Ansatz, der über Extensions gesteuert wird. Von RISC-V Prozessor zu RISC-V Prozessor können damit die unterstützten Instruktionen unterschiedlich aussehen. Eine Aufzählung der verschiedenen Privileged und Unprivileged Extensions ist in dieser Tabelle aufgeführt (PDF). Die Tabelle zeigt die Privileged, Unprivileged, Interrupt und Debug Extensions von RISC-V, mit Beschreibung und gegebenenfalls mit erweiterten Informationen.
Privileged Instructions können nur in höher privilegierten Modi ausgeführt werden. Sie dienen als Schutzschicht zwischen den verschiedenen Komponenten des Software Stacks:
Level
Name
Abbreviation
0
User/Application
U
1
Supervisor
S
2
Reserved
3
Machine
M
Die Tabelle zeigt die verschiedenen Level der RISC-V Privilegen. Diese Umfassen User, Supervisor und Machine.
Dem Code, der im M-Modus ausgeführt wird, wird immer vertraut, da es sich hierbei um Low-Level Zugriffe handelt. Der M-Modus kann auch genutzt werden, um eine sichere Ausführungsumgebung auf RISC-V zu managen. U- und S-Modus sind für konventionelle Applikationen und Betriebssysteme vorgesehen. Beispiele für privilegierte Operationen sind:
um nur drei aus einer weitaus größeren Anzahl von Einsatzbereichen zu nennen.
Auswahl des RISC-V-Softcores
Die Bestimmung eines geeigneten Softcores wird anhand von Auswahlkriterien vorgenommen. Die wesentlichen Punkte sind:
Unterstützte ISA-Extensions
RTOS Support
On-Chip Interfaces
Timer, Watchdog und Interrupts
Debug Support
Möglichkeiten der Erweiterung
Dokumentation
Aufrechterhaltung
Releases
OpenSource
HDL
Informationen zu den entsprechenden Punkten wurden aus Webseiten und Dokumentationen in folgenden Tabelle zusammengestellt. Diese listet die wesentlichen Kriterien für die Softcores Namens VexRiscV, VexiiRiscV, NEORV32 und Ibex/OpenTitan auf. OpenTitan und Ibex werden gemeinsam genannt, da der Ibex Core Teil des OpenTitan ist.
OCD via JTAG, OpenOCD, GDB, Segger Embedded Studio, Trigger Module for hardware-assisted breakpoints
Ibex Demo System & OpenTitan: GDB >> openOCD >> JTAG
Sleep Mode Support
-
-
Yes
Yes
Extensibility for Hardware Accelerators
Via Plugins
Via Plugins
Yes (three flavors)
OpenTitan: Via TL-UL Bus
Project maintenance/up-to-dateness
Yes
Yes
Yes
Yes
Project Community Effort (Number of currently open / closed Pull Requests
108/240
11/35
1/566
1361/5879
Documentation
Ok
Ok
Very good
Ibex Core: Good OpenTitan: Ok
Release Process
Only version tags 1.0.0 & 1.0.1 from 2018 No Releases
No Releases
Almost monthly releases. Last Release in July 2025
Ibex Demo System: last release in January 2024 OpenTitan: last release in Octobre 2024
License
MIT
MIT
BSD 3-Clause "New" or "Revised"
Ibex Core & OpenTitan Apache 2.0
Open-Source
Yes
Yes
Yes
Yes
Hardware description language
SpinalHDL
SpinalHDL
VHDL
SystemVerilog
Die von uns untersuchten Softcores verfügen in der Regel über RTOS-Support. Die größten Unterschiede findet man in der Anzahl der unterstützten ISA Extensions. Auffallend sind hierbei die Extensions wie z.B. „S“ und „U“, die offiziell nicht existieren. Es sind die Einträge des Machine ISA (MISA) Registers, das die unterstützten ISAs anzeigt. Hier gibt es Unterschiede zu den ISA Extensions:
Bit
Character
Description
0
A
Atomic extension
1
B
B extension
2
C
Compressed extension
3
D
Double-precision floating-point extension
4
E
RV32E/64E base ISA
5
F
Single-precision floating-point extension
6
G
Reserved
7
H
Hypervisor extension
8
I
RV32I/64I base ISA
9
J
Reserved
10
K
Reserved
11
L
Reserved
12
M
Integer Multiply/Divide extension
13
N
Tentatively reserved for User-Level Interrupts extension
14
O
Reserved
15
P
Tentatively reserved for Packed-SIMD extension
16
Q
Quad-precision floating-point extension
17
R
Reserved
18
S
Supervisor mode implemented
19
T
Reserved
20
U
User mode implemented
21
V
Vector extension
22
W
Reserved
23
X
Non-standard extensions present
24
Y
Reserved
25
Z
Reserved
Das Register besteht aus 26 Einträgen, die alphabetisch nummeriert sind. „S“ beschreibt die Verfügbarkeit des Supervisor Modus und „U“ die vorhandene Unterstützung des User Modus.
VexRiscV – Der Softcore VexRiscV [5] zeichnet sich dadurch aus, dass er offiziell Linux und das RTOS Zephyr unterstützt. Zusätzlich ist er durch das Plugin-System vergleichsweise einfach konfigurier- und erweiterbar.
VexiiRiscV – VexiiRiscV ist der Nachfolger des VexRiscV. Er unterstützt ebenfalls das Betriebssystem Linux und greift auf dasselbe Plugin-System zurück, befindet sich aktuell (August 2025) jedoch noch in der Entwicklung.
NEORV32 – NEORV32 unterstützt von den untersuchten Softcores die meisten RISC-V Extensions und als einziger Softcore neben nicht privilegierten auch privilegierte RISC-V Extensions. Dadurch ist auf der Security Seite bereits eine solide Grundlage gegeben, die auch durch eigene Extensions erweitert werden kann. Die Extensions können durch Konfiguration aktiviert oder deaktiviert werden, wodurch die Anpassungsfähigkeit des Cores gegeben ist. Auch über Standard-Interfaces wie Wishbone und AXI kann der Softcore mit verhältnismäßig geringem erweitert werden. Die RTOS Zephyr und FreeRTOS werden ebenfalls unterstützt.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Ibex – Der Ibex ist ein kleiner RISC-V Core, der keine Unterstützung für Floating Point Operationen unterstützt. Er kann für FPGAs oder ASICs optimiert konfiguriert werden. Ursprünglich war er unter dem Namen Zero-Riscy bekannt.
OpenTitan – OpenTitan ist als Sicherheitschip konzipiert. Als RISC-V Basis dient Ibex, der um Sicherheitsmodule, Busse und andere Peripherien erweitert ist. Er unterstützt die RTOS TockOS und FreeRTOS.
Anwendungsbeispiel
In einem unserer Entwicklungsprojekte wurde als Softcore NEORV32 verwendet. Ausschlaggebend waren die gute Dokumentation, die breite Unterstützung von ISA Extensions und der RTOS Support. Ebenfalls nicht zu vernachlässigen war die Hardware Description Language (HDL) VHDL und die aktive Weiterentwicklung, zu sehen an den monatlichen Releases. In dem anderen Projekt wurde der OpenTitan ausgewählt. Zu dem damaligen Zeitpunkt (1. Quartal 2021) war der Neorv32 noch in seiner Anfangsphase und noch nicht so ausgereift wie heute. Der OpenTitan war damals in der Entwicklung viel weiter und als Sicherheitschip konzipiert, was ein riesiger Pluspunkt für unsere Projektziele war. Zudem hatten bereits Projektpartner Erfahrung mit ihm gesammelt, wodurch ein vereinfachter Einstieg gegeben war.
(sg)
Bildergalerie
* Sebastian Block ist seit 2022 Software-Entwickler bei der Ingenics Digital GmbH in Gräfelfing bei München mit Fokus auf eingebettete Systeme und FPGAs