🛠 Puesta en marcha de Sapphire RV64 en FPGA Efinix

Efinix Sapphire RV64: SoC RISC-V de 64 bits configurable para FPGA · 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.

Objetivos

Este tutorial tiene como objetivo inicializar el SoC soft-core Sapphire RV64 en un FPGA Efinix (series Titanium, Topaz o Trion T20+). Aprenderá a configurar el núcleo VexiiRiscv, generar el bitstream mediante Efinity y validar el funcionamiento a través de la interfaz UART.

Hardware necesario

Pasos

  1. Configuración del proyecto: Inicie Efinity y cree un nuevo proyecto. Seleccione el componente FPGA objetivo que coincida con su placa. Asegúrese de que la versión de Efinity sea >= 2026.1.
  2. Integración del núcleo: Añada la IP Sapphire RV64 a su proyecto. En la configuración, seleccione el núcleo VexiiRiscv. Para esta primera prueba, configure 1 núcleo a 400 MHz con las extensiones RV64IMACFD activadas. Active 512 KB de RAM en chip para el almacenamiento del firmware.
  3. Periféricos: Configure al menos una interfaz UART (115200 baudios) y una interfaz JTAG para depuración. Si su placa tiene DDR3 o LPDDR4x, puede activarla, pero la RAM interna es suficiente para la prueba inicial.
  4. Síntesis e implementación: Genere el bitstream. Supervise los informes de temporización para verificar que el pipeline de 7 etapas alcanza la frecuencia de 400 MHz sin violaciones.
  5. Programación: Cargue el bitstream en el FPGA mediante el cable USB.
  6. Conexión serie: Abra un terminal serie en el puerto COM asociado a la UART configurada. Reinicie la placa para iniciar el proceso de arranque.

Verificación

Debe ver el mensaje de bienvenida del bootloader en el terminal serie. Utilice los puntos de interrupción de hardware (hasta 4 disponibles) a través de la interfaz JTAG para suspender la ejecución e inspeccionar los registros del núcleo RISC-V, confirmando así que el pipeline funciona correctamente.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales