🛠 Mise en route de la Sapphire RV64 sur FPGA Efinix
Objectifs
Ce tutoriel vise à initialiser le SoC soft-core Sapphire RV64 sur une FPGA Efinix (gammes Titanium, Topaz ou Trion T20+). Vous apprendrez à configurer le cœur VexiiRiscv, générer le bitstream via Efinity, et valider le fonctionnement via l'interface UART.
Matériel nécessaire
- Carte FPGA Efinix (Titanium, Topaz ou Trion T20 ou supérieur).
- Logiciel Efinity version 2026.1 ou plus récente.
- Câble USB pour la programmation et l'alimentation.
- Terminal série (PuTTY, Minicom ou équivalent).
Étapes
- Configuration du projet : Lancez Efinity et créez un nouveau projet. Sélectionnez le composant FPGA cible correspondant à votre carte. Assurez-vous que la version d'Efinity est bien >= 2026.1.
- Intégration du cœur : Ajoutez l'IP Sapphire RV64 à votre projet. Dans la configuration, sélectionnez le cœur VexiiRiscv. Pour ce premier test, configurez 1 cœur à 400 MHz avec les extensions RV64IMACFD activées. Activez la RAM sur puce à 512 Ko pour le stockage du firmware.
- Pérophériques : Configurez au moins une interface UART (baud rate 115200) et une interface JTAG pour le débogage. Si votre carte dispose de DDR3 ou LPDDR4x, vous pouvez l'activer, mais la RAM interne suffit pour le test initial.
- Synthèse et Implémentation : Générez le bitstream. Surveillez les rapports de timing pour vérifier que le pipeline à 7 étages tient la fréquence de 400 MHz sans violation.
- Programmation : Chargez le bitstream sur la FPGA via le câble USB.
- Connexion série : Ouvrez un terminal série sur le port COM associé à l'UART configurée. Réinitialisez la carte pour lancer le boot.
Vérification
Vous devez voir s'afficher le message de bienvenue du bootloader dans le terminal série. Utilisez les points d'arrêt matériels (jusqu'à 4 disponibles) via l'interface JTAG pour suspendre l'exécution et inspecter les registres du cœur RISC-V, confirmant ainsi que le pipeline fonctionne correctement.
Autres tutoriels pour cette carte
- Mise en route de la carte Sapphire RV64
- Contrôler des GPIO sur Sapphire RV64
- Automatisation simple avec l'UART sur Sapphire RV64
- Configurer les GPIO et piloter un périphérique sur Sapphire RV64
- Déployer un nœud IoT avec Sapphire RV64 : Réseau et Stockage
- Mise en route du SoC Sapphire RV64 sur FPGA Efinix
Exemples de code 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.inoC