Efinix Sapphire RV64 : SoC RISC-V 64 bits configurable pour FPGA
⚡ L’essentiel en 60 secondes
- architecture — 64-bit RISC-V
- core_count — 1 to 4 cores
- max_frequency — 400 MHz
- pipeline — 7-stage
- l2_cache — 64 KB to 512 KB (optional)
- on_chip_ram — 4 KB to 512 KB
- Sur cette fiche : 9 tutoriels · 10 codes
L'Efinix Sapphire RV64 représente une avancée significative dans le domaine des systèmes sur puce logiciels, offrant une flexibilité remarquable pour les concepteurs de matériel électronique. Il s'agit d'un cœur de processeur RISC-V 64 bits, dont la particularité réside dans sa nature « soft-core ». Contrairement aux microcontrôleurs traditionnels où le processeur est gravé physiquement dans le silicium de manière fixe, le Sapphire RV64 est une description logique synthétisée directement dans un FPGA, c'est-à-dire un circuit intégré programmable. Cette approche permet aux ingénieurs de configurer le processeur selon leurs besoins spécifiques, en ajustant les ressources matérielles pour optimiser les performances ou la consommation d'énergie. Basé sur le cœur VexiiRiscv, cette solution s'adresse aux FPGA de la marque Efinix, notamment les gammes Titanium, Topaz et Trion, à condition que le modèle utilisé soit de la série T20 ou supérieure. Cette compatibilité assure une base matérielle robuste capable de supporter les exigences de calcul et de mémoire que requiert un tel système.
La puissance de calcul de l'Efinix Sapphire RV64 est modulable, permettant d'intégrer de un à quatre cœurs de traitement au sein d'une même puce. Cette capacité multi-cœur est essentielle pour les applications modernes qui nécessitent un parallélisme des tâches, comme le traitement de signaux en temps réel ou les systèmes embarqués complexes. Chaque cœur fonctionne avec un pipeline à sept étages, une architecture qui divise l'exécution des instructions en plusieurs étapes pour améliorer le débit des données. La fréquence de fonctionnement peut atteindre 400 MHz, offrant ainsi une vitesse de traitement compétitive pour des applications exigeantes tout en restant dans des gammes de consommation maîtrisées. Le jeu d'instructions supporté est riche et complet, incluant les extensions RV64IMACFD_Zba_Zbc_Zbs. Pour le néophyte, cela signifie que le processeur gère non seulement les opérations arithmétiques et logiques de base, mais aussi les multiplications, les divisions, les instructions atomiques pour la programmation multi-threadée, ainsi que le calcul en virgule flottante en simple et double précision. Cette dernière capacité est cruciale pour les applications scientifiques, graphiques ou de contrôle industriel nécessitant une grande précision numérique.
La gestion de la mémoire est un aspect critique de tout système informatique, et l'Efinix Sapphire RV64 propose une hiérarchie mémoire flexible et performante. Sur la puce même, une mémoire vive (RAM) est disponible, configurable de 4 Ko à 512 Ko. Cette mémoire interne, souvent appelée SRAM, offre un accès extrêmement rapide aux données, idéale pour stocker le code d'exécution courant ou les variables critiques. Pour les besoins plus importants, le système prend en charge la mémoire externe via trois technologies distinctes : la DDR3, la LPDDR4x et l'HyperRAM. La DDR3, bien que plus ancienne, reste une solution économique et fiable pour des volumes de données modérés, avec une bande passante de 800 Mbps. La LPDDR4x, quant à elle, est une mémoire basse consommation très répandue dans les appareils mobiles, offrant une bande passante nettement supérieure de 3,200 Mbps, ce qui la rend adaptée aux applications multimédias ou nécessitant un transfert rapide de données. Enfin, l'HyperRAM, avec ses 500 Mbps, propose une solution simple et peu coûteuse en nombre de broches pour l'extension de mémoire. La capacité totale de mémoire externe peut aller jusqu'à 8 Go, un volume considérable pour un système embarqué, permettant d'exécuter des systèmes d'exploitation complets ou de traiter de grands jeux de données.
Pour optimiser l'accès à ces mémoires, l'architecture intègre des mécanismes de cache sophistiqués. Les caches de niveau 1 (L1) sont configurables, permettant d'équilibrer la latence et la taille selon les besoins. De plus, un cache de niveau 2 (L2) partagé, optionnel et allant de 64 Ko à 512 Ko, peut être activé. Ce cache L2 agit comme un tampon rapide entre les cœurs de calcul et la mémoire principale, réduisant les temps d'attente lors de l'accès aux données fréquemment utilisées. L'optionnalité de la MMU (Unité de Gestion de Mémoire) avec le support du standard SV39 est un point majeur. La MMU permet la virtualisation de la mémoire, une fonctionnalité indispensable pour faire tourner un système d'exploitation comme Linux, qui nécessite une isolation des processus et une gestion fine de la mémoire. Sans cette unité, le système serait limité à des applications temps réel simples ou à des environnements sans système d'exploitation.
Les interfaces d'entrée/sortie sont conçues pour connecter le processeur au monde extérieur. Le système offre jusqu'à 32 broches GPIO (General Purpose Input/Output), permettant de contrôler des périphériques simples comme des LED, des boutons ou des capteurs. Pour la communication avec d'autres composants électroniques, il dispose de cinq maîtres I2C, de trois maîtres SPI et de trois ports UART. L'I2C est idéal pour connecter des capteurs ou des écrans avec peu de fils, le SPI offre des vitesses de transfert élevées pour des mémoires externes ou des écrans, tandis que l'UART est la norme pour la communication série, souvent utilisée pour le débogage ou la connexion à d'autres modules. Ces interfaces sont reliées au cœur du système via les bus standards AXI4 et APB3, garantissant une intégration fluide avec d'autres blocs logiques présents dans le FPGA.
Enfin, le débogage est facilité par la prise en charge des standards RISC-V, avec jusqu'à quatre points d'arrêt matériels. Ces points d'arrêt permettent aux développeurs de suspendre l'exécution du programme à des endroits précis pour inspecter l'état du processeur, une étape indispensable pour identifier et corriger les erreurs. La conception de ce système nécessite l'utilisation du logiciel Efinity, dans sa version 2026.1 ou plus récente, qui fournit les outils nécessaires pour synthétiser, placer et router le cœur logiciel sur le FPGA. En somme, l'Efinix Sapphire RV64 offre une plateforme puissante et adaptable, combinant la flexibilité du logiciel avec la performance du matériel dédié, pour des applications allant du contrôle industriel à l'informatique embarquée avancée.

| Attr | Specs | vérifié |
|---|---|---|
architecture | 64-bit RISC-V | ? non vérifié |
core_count | 1 to 4 cores | ? non vérifié |
max_frequency | 400 MHz | ? non vérifié |
pipeline | 7-stage | ? non vérifié |
l2_cache | 64 KB to 512 KB (optional) | ? non vérifié |
on_chip_ram | 4 KB to 512 KB | ? non vérifié |
external_memory_support | DDR3, LPDDR4x, HyperRAM | ? non vérifié |
max_external_memory | 8 GB | ? non vérifié |
gpio | Up to 32 | ? non vérifié |
interfaces | 5x I2C, 3x SPI, 3x UART | ? non vérifié |
isa_extensions | RV64IMACFD_Zba_Zbc_Zbs | ? non vérifié |
mmu | Optional SV39 | ? non vérifié |
compatibility | Efinix Titanium, Topaz, Trion FPGAs | ? non vérifié |
L'Efinix Sapphire RV64 est un SoC soft-core basé sur le cœur VexiiRiscv, conçu pour les FPGA Efinix des gammes Titanium, Topaz et Trion. Il offre une architecture RISC-V 64 bits configurable jusqu'à 4 cœurs à 400 MHz, intégrant des extensions vectorielles et une MMU optionnelle pour le support Linux.
+ Points forts
["- Architecture RISC-V 64 bits extensible (RV64IMACFD_Zba_Zbc_Zbs) avec support optionnel de la MMU SV39 pour Linux.","- Flexibilité mémoire élevée avec RAM sur puce de 4 à 512 Ko et support externe jusqu'à 8 Go via DDR3, LPDDR4x ou HyperRAM.","- Configuration modulaire permettant de 1 à 4 cœurs, avec cache L2 partagé optionnel et interfaces périphériques variées (I2C, SPI, UART)."]
− Points faibles
["- Nécessite la version Efinity 2026.1 ou plus récente pour la conception.","- Limité aux FPGA Efinix de la série T20 et supérieure.","- La performance dépend fortement de la configuration choisie (nombre de cœurs, caches, extensions activées)."]
- Retour d'expérience expert expert — expert-microdb
- J'ai intégré la Sapphire RV64 sur un Titanium T20. L'implémentation avec 2 cœurs à 350 MHz est fluide. La clé est la MMU SV39 : indispensable pour Linux. Attention, la DDR3 limite souvent la bande passante réelle par rapport au LPDDR4x. Efinity 2026.1 gère bien le pipeline 7 étages, mais le timing … — expert-microdb
- Bon retour. J'utilise cette carte pour un contrôleur industriel. Les 512 Ko de RAM interne suffisent largement pour mon firmware RTOS, ce qui évite la complexité de la DDR. Par contre, ne sous-estimez pas la config des masters I2C/SPI. Si vous activez les extensions FD, le placement routage explose… — membre-forum
Retours et projets de la communauté
- Discussions Reddit — Sapphire RV64 reddit.com
- Articles CNX Software — Sapphire RV64 cnx-software.com
Contenu indisponible pour le moment.
Contenu indisponible pour le moment.
Contenu indisponible pour le moment.
["- Non renseigné"]
- Mise en route de la carte Sapphire RV64 debutant Guide pas à pas pour alimenter, connecter et vérifier le fonctionnement de base de votre carte SoC RISC-V Efinix.
- Contrôler des GPIO sur Sapphire RV64 debutant Apprenez à configurer et piloter les broches d'entrée/sortie générales (GPIO) de votre SoC Sapphire RV64 pour interagir avec le monde physique.
- Automatisation simple avec l'UART sur Sapphire RV64 debutant Apprenez à configurer une interface UART pour envoyer des données sérialisées depuis le cœur RISC-V vers un terminal.
- Mise en route de la Sapphire RV64 sur FPGA Efinix intermediaire Guide étape par étape pour configurer, synthétiser et déboguer le premier bitstream du SoC RISC-V 64 bits sur une carte de développement Efinix.
- Configurer les GPIO et piloter un périphérique sur Sapphire RV64 intermediaire Apprenez à configurer les broches GPIO du SoC Sapphire RV64 via Efinity pour interagir avec des composants externes comme des LED ou des capteurs.
- Déployer un nœud IoT avec Sapphire RV64 : Réseau et Stockage intermediaire Configurez un système embarqué complet sur FPGA Efinix en exploitant les interfaces AXI4 et les extensions RISC-V pour la gestion de données.
- Mise en route du SoC Sapphire RV64 sur FPGA Efinix avance Guide avancé pour configurer et déployer le cœur VexiiRiscv Sapphire RV64 sur une carte Efinix.
- Maîtriser les E/S sur Sapphire RV64 : GPIO et Protocoles avance Configurez et pilotez les interfaces périphériques avancées (GPIO, I2C, SPI) du SoC Sapphire RV64 pour des interactions matérielles complexes.
- Déployer une passerelle IoT temps réel sur Sapphire RV64 avance Configurez le SoC VexiiRiscv pour un traitement réseau critique avec DMA et gestion de la mémoire avancée.
Bibliothèque de code — exemples écrits pour cette carte
gpio_blink_riscv.inoC (RISC-V)uart_echo_riscv.inoC (RISC-V)spi_sensor_read.inoC (RISC-V)i2c_master_write.inoC (RISC-V)timer_interrupt_handler.inoC (RISC-V)i2c-bmp280-temperature-6.inoCspi-flash-storage-7.inoCpwm-buzzer-tone-8.inoCuart-console-log-9.inoCgpio-irq-interrupt-10.inoC