🛠 Desplegar una pasarela IoT en tiempo real en Sapphire RV64

Efinix Sapphire RV64: SoC RISC-V de 64 bits configurable para FPGA · avance · Configurez le SoC VexiiRiscv pour un traitement réseau critique avec DMA et gestion de la mémoire avancée.

Objectifs

Este tutorial tiene como objetivo configurar el núcleo VexiiRiscv como una puerta de enlace IoT de alto rendimiento. Aprovecharemos las capacidades de procesamiento vectorial (extensiones Zba/Zbc/Zbs) y la gestión de memoria para minimizar la latencia durante las transferencias de paquetes de red. El enfoque está en optimizar el pipeline de 7 etapas para el procesamiento de flujos de datos en tiempo real, utilizando interfaces AXI4 para DMA y GPIOs para señalización de hardware.

Matériel nécessaire

Étapes

  1. Configuración del Núcleo: En Efinity, configure VexiiRiscv con 1 núcleo a 400 MHz. Active las extensiones Zba/Zbc/Zbs para acelerar las operaciones de desplazamiento y conteo de bits, cruciales para el análisis de encabezados de red. Active la MMU SV39 si usa un SO de tiempo real.
  1. Gestión de Memoria: Configure la caché L2 compartida a 512 KB para maximizar la retención de datos de red. Asigne una región de memoria no cacheable para buffers DMA para evitar problemas de coherencia de caché durante las transferencias.
  1. Implementación de DMA: Conecte el controlador DMA vía el bus AXI4. Configure los descriptores de transferencia para mover paquetes desde el MAC Ethernet a la RAM externa sin intervención de la CPU.
  1. Manejo de Interrupciones: Configure las interrupciones para DMA y GPIOs. Use GPIOs para activar acciones físicas (LEDs, relés) basadas en el contenido del paquete procesado.
  1. Compilación y Carga: Compile el firmware con optimizaciones RV64GC. Cargue el binario vía JTAG. Use los 4 puntos de interrupción de hardware para monitorear rutinas de procesamiento críticas.

Vérification

Use un analizador lógico para verificar las señales de reloj y datos en el bus AXI4. Confirme que la CPU permanece inactiva durante las transferencias DMA. Verifique la latencia de procesamiento de paquetes mediante contadores de ciclos del núcleo.

Pour aller plus loin

Explore el uso de múltiples núcleos (hasta 4) para paralelizar el procesamiento de múltiples flujos de red. Pruebe el rendimiento con HyperRAM para un consumo reducido.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales