Evaluación de SoftCore PicoRV32 en TinyFPGABX

"En este documento se evalúa al procesador PicoRV32 por medio del SoC PicoSoC en la TinyFPGA BX. Para esto, se prueba la tarjeta TinyFPGA BX utilizando un ejemplo de Blink Led en Verilog para familiarizarse con esta. Luego, se prueba el SoC PicoSoC con un proyecto de Blink Led utilizando el pro...

Full description

Autores:
Sarmiento Pinilla, Carlos Mario
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2019
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
spa
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/44607
Acceso en línea:
http://hdl.handle.net/1992/44607
Palabra clave:
Controladores programables
Verilog (Lenguaje descriptivo de hardware de computadores)
Microcontrolador PicoRV32
Circuitos electrónicos
Ingeniería
Rights
openAccess
License
https://repositorio.uniandes.edu.co/static/pdf/aceptacion_uso_es.pdf
Description
Summary:"En este documento se evalúa al procesador PicoRV32 por medio del SoC PicoSoC en la TinyFPGA BX. Para esto, se prueba la tarjeta TinyFPGA BX utilizando un ejemplo de Blink Led en Verilog para familiarizarse con esta. Luego, se prueba el SoC PicoSoC con un proyecto de Blink Led utilizando el procesador PicoRV32. A partir de este proyecto se realizan desarrollos personalizados en los que se incluyen funcionalidades tales como punto flotante, negativos, etc. Paralelamente se realiza una implementación de un proyecto de robótica en Arduino. Este proyecto utiliza odometría, así como funciones exponenciales y similares para guiar un robot desde un punto inicial hasta un punto final. Se escogió al Arduino como comparación al tener una manera similar de programación en C, así como múltiples funciones nativas y un procesador de igual velocidad al de la TinyFPGA. Se desarrollaron módulos en Verilog personalizados de Clock, PWM y lectura de Encoders para poder utilizar el paralelismo y velocidad de Verilog como soporte al algoritmo implementado. Se desarrollaron métricas personalizadas para comparar los 2 procesadores, estas métricas incluyen los siguientes puntos a evaluar: Tiempo de acceso a memoria, Tiempo de ciclo del algoritmo, potencia consumida, error final de llegada, tiempo final de llegada y memoria utilizada. En cuanto al algoritmo, se realizaron 3 caminos diferentes para probar: punto delante, punto detrás y zig-zag. En el Arduino se tomaron datos de todas estas métricas. En la TinyFPGA se tomaron datos de todas las métricas excepto error final de llegada y tiempo final de llegada, debido a que el algoritmo nunca lograba converger. En todos los casos excepto consumo de potencia, el Arduino logró obtener mejores resultados que en la TinyFPGA, pero se es necesario realizar una implementación ASIC para obtener una mejor comparación en otras tecnologías posiblemente con resultados diferentes."--Tomado del Formato de Documento de Grado.