Evaluación de soft-cores RISC-V en FPGAs con fines didácticos
| dc.contributor.director | Majorel Padilla, Nicolás | |
| dc.creator | Benzal, Diego Gastón | |
| dc.date.accessioned | 2025-07-02T15:09:01Z | |
| dc.date.issued | 2025 | |
| dc.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 | |
| dc.description.abstract | 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. | |
| dc.identifier.citation | Benzal, D. G. (2025). Evaluación de soft-cores RISC-V en FPGAs con fines didácticos [Informe del Trabajo de Graduación de la carrera de Ingeniería Electrónica, Universidad Nacional de Tucumán, Facultad de Ciencias Exactas y Tecnología]. | |
| dc.identifier.uri | https://ridunt.unt.edu.ar/handle/123456789/1586 | |
| dc.language.iso | es | |
| dc.publisher | Universidad Nacional de Tucumán , Facultad de Ciencias Exactas y Tecnología, Departamento de Ingeniería Electrónica | |
| dc.subject | PROYECTO FINAL | |
| dc.subject | RISC-V | |
| dc.subject | FPGAS | |
| dc.subject | SOFT-CORES | |
| dc.subject | MICROARQUITECTURA | |
| dc.subject | EDUCACIÓN | |
| dc.subject | BENCHMARKS | |
| dc.subject | LITEX | |
| dc.subject.other | Ingeniero Electrónico | |
| dc.title | Evaluación de soft-cores RISC-V en FPGAs con fines didácticos | |
| dc.type | Thesis |
Archivos
Bloque original
1 - 1 de 1
Cargando...
- Nombre:
- Memoria TDG - Diego Gaston Benzal.pdf
- Tamaño:
- 4.82 MB
- Formato:
- Adobe Portable Document Format
Bloque de licencias
1 - 1 de 1
Cargando...
- Nombre:
- license.txt
- Tamaño:
- 499 B
- Formato:
- Item-specific license agreed to upon submission
- Descripción:

