Evaluación de soft-cores RISC-V en FPGAs con fines didácticos

Índice general Resumen III 1. Introducción General 1 1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . ....

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Benzal, Diego Gastón
Otros Autores: Majorel Padilla, Nicolás
Formato: Tesis
Lenguaje:Español
Publicado: Universidad Nacional de Tucumán , Facultad de Ciencias Exactas y Tecnología, Departamento de Ingeniería Electrónica 2025
Materias:
Acceso en línea:https://ridunt.unt.edu.ar/handle/123456789/1586
Aporte de:
id I91-R383-123456789-1586
record_format dspace
institution Universidad Nacional de Tucumán
institution_str I-91
repository_str R-383
collection Repositorio institucional digital (UNT)
language Español
topic PROYECTO FINAL
RISC-V
FPGAS
SOFT-CORES
MICROARQUITECTURA
EDUCACIÓN
BENCHMARKS
LITEX
spellingShingle PROYECTO FINAL
RISC-V
FPGAS
SOFT-CORES
MICROARQUITECTURA
EDUCACIÓN
BENCHMARKS
LITEX
Benzal, Diego Gastón
Evaluación de soft-cores RISC-V en FPGAs con fines didácticos
topic_facet PROYECTO FINAL
RISC-V
FPGAS
SOFT-CORES
MICROARQUITECTURA
EDUCACIÓN
BENCHMARKS
LITEX
description Índice general Resumen III 1. Introducción General 1 1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Marco teórico 3 2.1. RISC-V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1. ISA RISC-V - ¿Qué significa que sea libre? . . . . . . . . . . . . . . . 3 2.1.2. Comparaciones con otros ISAs . . . . . . . . . . . . . . . . . . . . . . 4 2.1.3. Extensiones del ISA RISC-V . . . . . . . . . . . . . . . . . . . . . . . 5 Conjunto base RV32I . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Extensión M (Multiplicación y División) . . . . . . . . . . . . . . . . . 5 Extensión A (Operaciones Atómicas) . . . . . . . . . . . . . . . . . . 5 Extensión C (Instrucciones Comprimidas) . . . . . . . . . . . . . . . . 5 Extensión F (Punto Flotante de Precisión Simple) . . . . . . . . . . . 6 Extensión D (Punto Flotante de Doble Precisión) . . . . . . . . . . . . 6 Nomenclatura de las extensiones . . . . . . . . . . . . . . . . . . . . . 6 2.2. FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1. Estructura interna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2. Elección de placas de desarrollo para el trabajo . . . . . . . . . . . . . 8 2.2.3. EDU-CIAA-FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.4. Terasic DE10-Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.5. Digilent Arty Z7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.6. TUL PYNQ Z2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.7. Resumen comparativo de las placas elegidas . . . . . . . . . . . . . . . 16 2.3. Soft-cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1. Qué es un soft-core . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.2. FemtoRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.3. NEORV32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.4. Rocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4. Lenguajes de descripción de hardware . . . . . . . . . . . . . . . . . . . . . . 20 2.4.1. Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.2. VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.3. Chisel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.5. Toolchains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.1. Toolchain RISC-V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.2. Toolchains en FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.5.3. Alternativas para cargar programa a un soft-core . . . . . . . . . . . . 29 Carga desde memoria ROM . . . . . . . . . . . . . . . . . . . . . . . 29 Carga por interfaz serial . . . . . . . . . . . . . . . . . . . . . . . . . 31 VIII Carga desde memoria flash SPI . . . . . . . . . . . . . . . . . . . . . 31 Carga por red (Ethernet) . . . . . . . . . . . . . . . . . . . . . . . . . 31 Carga desde tarjeta SD o dispositivos de almacenamiento masivo . . . 32 2.6. LiteX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3. Diseño e Implementación 35 3.1. Flujo general de adaptación de un soft-core . . . . . . . . . . . . . . . . . . . 35 3.2. Pre-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.3. Utilización de LiteX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.1. Utilización de LiteX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.2. Generación de un SoC con un soft-core RISC-V . . . . . . . . . . . . . 37 3.3.3. Configuración de UART para comunicación por terminal serie . . . . . 39 3.3.4. Generación de un SoC con código cargado en ROM . . . . . . . . . . 40 Procedimiento detallado . . . . . . . . . . . . . . . . . . . . . . . . . 40 Consideraciones importantes sobre la memoria . . . . . . . . . . . . . 41 Estructura de archivos del proyecto . . . . . . . . . . . . . . . . . . . 42 3.4. Adaptación de soft-core en EDU-FPGA . . . . . . . . . . . . . . . . . . . . . 42 3.4.1. Adaptación de FemtoSoC para EDU-FPGA . . . . . . . . . . . . . . . 42 3.4.2. Consideraciones sobre la memoria flash en EDU-FPGA . . . . . . . . . 45 3.4.3. Carga de programas en flash de FemtoSOC en EDU-FPGA . . . . . . 46 3.5. Uso de Linux en un soft-core . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5.1. Requisitos de hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5.2. Generación de imagen de boot . . . . . . . . . . . . . . . . . . . . . . 48 3.5.3. Inconvenientes en Arty Z7 . . . . . . . . . . . . . . . . . . . . . . . . 48 3.5.4. Inconvenientes en PYNQ Z2 y Zynq 7000 . . . . . . . . . . . . . . . . 49 3.5.5. Inconvenientes en DE10-Lite . . . . . . . . . . . . . . . . . . . . . . . 49 4. Ensayos y Resultados 51 4.1. Medición de performance de los soft-cores . . . . . . . . . . . . . . . . . . . . 51 4.1.1. Alternativas para medir la performance de un núcleo . . . . . . . . . . 51 4.1.2. CoreMark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.1.3. Adaptación de CoreMark a una plataforma específica . . . . . . . . . . 52 4.1.4. Resultados de CoreMark para cada combinación núcleo-placa FPGA . . 58 4.2. Resultados de síntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5. Conclusiones 63 5.1. Conclusiones generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.2. Próximos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Bibliografía 65
author2 Majorel Padilla, Nicolás
author_facet Majorel Padilla, Nicolás
Benzal, Diego Gastón
format Thesis
author Benzal, Diego Gastón
author_sort Benzal, Diego Gastón
title Evaluación de soft-cores RISC-V en FPGAs con fines didácticos
title_short Evaluación de soft-cores RISC-V en FPGAs con fines didácticos
title_full Evaluación de soft-cores RISC-V en FPGAs con fines didácticos
title_fullStr Evaluación de soft-cores RISC-V en FPGAs con fines didácticos
title_full_unstemmed Evaluación de soft-cores RISC-V en FPGAs con fines didácticos
title_sort evaluación de soft-cores risc-v en fpgas con fines didácticos
publisher Universidad Nacional de Tucumán , Facultad de Ciencias Exactas y Tecnología, Departamento de Ingeniería Electrónica
publishDate 2025
url https://ridunt.unt.edu.ar/handle/123456789/1586
work_keys_str_mv AT benzaldiegogaston evaluaciondesoftcoresriscvenfpgasconfinesdidacticos
_version_ 1843576985050152960
spelling I91-R383-123456789-15862025-09-01T12:43:45Z Evaluación de soft-cores RISC-V en FPGAs con fines didácticos Benzal, Diego Gastón Majorel Padilla, Nicolás PROYECTO FINAL RISC-V FPGAS SOFT-CORES MICROARQUITECTURA EDUCACIÓN BENCHMARKS LITEX Índice general Resumen III 1. Introducción General 1 1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Marco teórico 3 2.1. RISC-V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1. ISA RISC-V - ¿Qué significa que sea libre? . . . . . . . . . . . . . . . 3 2.1.2. Comparaciones con otros ISAs . . . . . . . . . . . . . . . . . . . . . . 4 2.1.3. Extensiones del ISA RISC-V . . . . . . . . . . . . . . . . . . . . . . . 5 Conjunto base RV32I . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Extensión M (Multiplicación y División) . . . . . . . . . . . . . . . . . 5 Extensión A (Operaciones Atómicas) . . . . . . . . . . . . . . . . . . 5 Extensión C (Instrucciones Comprimidas) . . . . . . . . . . . . . . . . 5 Extensión F (Punto Flotante de Precisión Simple) . . . . . . . . . . . 6 Extensión D (Punto Flotante de Doble Precisión) . . . . . . . . . . . . 6 Nomenclatura de las extensiones . . . . . . . . . . . . . . . . . . . . . 6 2.2. FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1. Estructura interna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2. Elección de placas de desarrollo para el trabajo . . . . . . . . . . . . . 8 2.2.3. EDU-CIAA-FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.4. Terasic DE10-Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.5. Digilent Arty Z7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.6. TUL PYNQ Z2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.7. Resumen comparativo de las placas elegidas . . . . . . . . . . . . . . . 16 2.3. Soft-cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1. Qué es un soft-core . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.2. FemtoRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.3. NEORV32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.4. Rocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4. Lenguajes de descripción de hardware . . . . . . . . . . . . . . . . . . . . . . 20 2.4.1. Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.2. VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.3. Chisel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.5. Toolchains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.1. Toolchain RISC-V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.2. Toolchains en FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.5.3. Alternativas para cargar programa a un soft-core . . . . . . . . . . . . 29 Carga desde memoria ROM . . . . . . . . . . . . . . . . . . . . . . . 29 Carga por interfaz serial . . . . . . . . . . . . . . . . . . . . . . . . . 31 VIII Carga desde memoria flash SPI . . . . . . . . . . . . . . . . . . . . . 31 Carga por red (Ethernet) . . . . . . . . . . . . . . . . . . . . . . . . . 31 Carga desde tarjeta SD o dispositivos de almacenamiento masivo . . . 32 2.6. LiteX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3. Diseño e Implementación 35 3.1. Flujo general de adaptación de un soft-core . . . . . . . . . . . . . . . . . . . 35 3.2. Pre-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.3. Utilización de LiteX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.1. Utilización de LiteX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.2. Generación de un SoC con un soft-core RISC-V . . . . . . . . . . . . . 37 3.3.3. Configuración de UART para comunicación por terminal serie . . . . . 39 3.3.4. Generación de un SoC con código cargado en ROM . . . . . . . . . . 40 Procedimiento detallado . . . . . . . . . . . . . . . . . . . . . . . . . 40 Consideraciones importantes sobre la memoria . . . . . . . . . . . . . 41 Estructura de archivos del proyecto . . . . . . . . . . . . . . . . . . . 42 3.4. Adaptación de soft-core en EDU-FPGA . . . . . . . . . . . . . . . . . . . . . 42 3.4.1. Adaptación de FemtoSoC para EDU-FPGA . . . . . . . . . . . . . . . 42 3.4.2. Consideraciones sobre la memoria flash en EDU-FPGA . . . . . . . . . 45 3.4.3. Carga de programas en flash de FemtoSOC en EDU-FPGA . . . . . . 46 3.5. Uso de Linux en un soft-core . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5.1. Requisitos de hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5.2. Generación de imagen de boot . . . . . . . . . . . . . . . . . . . . . . 48 3.5.3. Inconvenientes en Arty Z7 . . . . . . . . . . . . . . . . . . . . . . . . 48 3.5.4. Inconvenientes en PYNQ Z2 y Zynq 7000 . . . . . . . . . . . . . . . . 49 3.5.5. Inconvenientes en DE10-Lite . . . . . . . . . . . . . . . . . . . . . . . 49 4. Ensayos y Resultados 51 4.1. Medición de performance de los soft-cores . . . . . . . . . . . . . . . . . . . . 51 4.1.1. Alternativas para medir la performance de un núcleo . . . . . . . . . . 51 4.1.2. CoreMark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.1.3. Adaptación de CoreMark a una plataforma específica . . . . . . . . . . 52 4.1.4. Resultados de CoreMark para cada combinación núcleo-placa FPGA . . 58 4.2. Resultados de síntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5. Conclusiones 63 5.1. Conclusiones generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.2. Próximos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Bibliografía 65 Resumen Este trabajo tiene como objetivo analizar el funcionamiento de implementaciones existentes de núcleos RISC-V en distintas placas de desarrollo FPGA disponibles comercialmente. El fin es determinar, a partir de los resultados obtenidos, la mejor de las placas de desarrollo FPGA analizadas desde el punto de vista técnico-económico a la hora de experimentar con tópicos de microarquitectura. A partir de esto, se podrá diseñar laboratorios experimentales para el Laboratorio de Microprocesadores de la FACET, orientados a Ingeniería en Computación o para una nueva asignatura optativa para esa carrera y para Ingeniería Electrónica. Se detalla cómo se adaptó cada núcleo para las placas de cada fabricante. Por otro lado, se analizan herramientas como LiteX, que permiten simplificar en gran medida este proceso deadaptación. Los benchmarks y reportes de síntesis ayudan a justificar la placa de desarrollo elegida para los fines didácticos propuestos. 2025-07-02T15:09:01Z 2025 Thesis https://ridunt.unt.edu.ar/handle/123456789/1586 es application/pdf Universidad Nacional de Tucumán , Facultad de Ciencias Exactas y Tecnología, Departamento de Ingeniería Electrónica