🛠 Puesta en marcha del SoC Sapphire RV64 en FPGA Efinix

Efinix Sapphire RV64: SoC RISC-V de 64 bits configurable para FPGA · avance · Guide avancé pour configurer et déployer le cœur VexiiRiscv Sapphire RV64 sur une carte Efinix.

Objetivos

Este tutorial tiene como objetivo inicializar el SoC Sapphire RV64 basado en VexiiRiscv en un FPGA Efinix (series Titanium/Topaz/Trion). El objetivo es validar la cadena de compilación, la síntesis en Efinity y la carga del bitstream para obtener un núcleo RISC-V de 64 bits funcional. Nos centraremos en la configuración mínima para un arranque estable, aprovechando capacidades avanzadas como la gestión de memoria y las interfaces de depuración.

Hardware Necesario

Pasos

Abra Efinity y cree un nuevo proyecto seleccionando el FPGA objetivo adecuado. Importe los archivos fuente del SoC Sapphire RV64. Asegúrese de que las restricciones físicas (.pin) coincidan con su placa.

  1. Configuración del Proyecto Efinity

En el archivo de configuración del SoC, active el núcleo VexiiRiscv. Configure el pipeline de 7 etapas y active las extensiones RV64IMACFD_Zba_Zbc_Zbs. Si planea soporte Linux, active la MMU SV39. Establezca la frecuencia objetivo en 400 MHz (máx) para comenzar, o reduzca a 100 MHz para validar el enrutamiento.

  1. Configuración del Núcleo VexiiRiscv

Active la RAM en chip (comience con 64 KB para el bootloader). Configure el controlador de memoria externa. Para la primera prueba, use HyperRAM (500 Mbps) si está disponible, de lo contrario configure DDR3. Verifique los tiempos de memoria en las restricciones.

  1. Configuración de Memoria

Inicie la síntesis lógica. Monitoree los informes de temporización para asegurar que la ruta crítica cumpla con la frecuencia objetivo. En caso de violación, reduzca la frecuencia u optimice el enrutamiento. Una vez que la síntesis tenga éxito, inicie la implementación física.

  1. Síntesis e Implementación

Genere el archivo .bit o .hex final. Este paso convierte el diseño lógico en configuración específica del FPGA.

  1. Generación del Bitstream

Conecte la placa al PC vía JTAG. Use la herramienta de programación Efinity para cargar el bitstream en el FPGA. Una vez programado, el núcleo Sapphire RV64 arranca automáticamente si el bootloader está precargado en ROM o RAM.

  1. Programación y Lanzamiento

Verificación

Abra un terminal serie conectado a la UART configurada. Debería ver mensajes de arranque o un prompt de shell. Use el depurador RISC-V estándar para verificar que el contador de programa (PC) avance. Coloque un punto de interrupción de hardware (hasta 4 disponibles) para inspeccionar el estado de los registros. Se debe confirmar una frecuencia estable de 400 MHz (o valor configurado) mediante un contador de ciclos.

Para Ir Más Allá

Una vez que el núcleo sea funcional, explore la configuración multinúcleo (hasta 4 núcleos). Configure la caché L2 compartida (64-512 KB) para mejorar el rendimiento de memoria. Integre soporte DDR3/LPDDR4x para aplicaciones pesadas. Finalmente, compile un kernel Linux compatible con RV64 con la MMU SV39 habilitada para sistemas operativos completos.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales