Diseño de hardware con PYTHON: construcción y evaluación de núcleos computacionales con PYMTL

dc.contributor.advisorDel Barrio García, Alberto Antonio
dc.contributor.advisorMurillo Montero, Raúl
dc.contributor.authorLópez Carrión, Jorge
dc.contributor.authorArellano Jorge, Raúl
dc.date.accessioned2025-09-15T14:40:09Z
dc.date.available2025-09-15T14:40:09Z
dc.date.issued2025
dc.degree.titleGrado en ingeniería de computadores
dc.descriptionTrabajo de Fin de Grado en Ingeniería de Computadores, Facultad Informática UCM, Dpto. de Arquitectura de Computadores y Automática, Curso 2024/2025
dc.description.abstractEl presente estudio se centra en la automatización del diseño y verificación de hardware, poniendo especial énfasis en el uso de PyMTL3, un framework open-source basado en Python. El proyecto comienza con una revisión del flujo tradicional de diseño hardware y la motivación para adoptar técnicas de síntesis de alto nivel (HLS), comparando herramientas comerciales y de código abierto como FloPoCo, Bambu, Rust-HDL y Vivado HLS, diferenciando entre las que parten de RTL y las que trabajan desde lenguajes de alto nivel como C/C++ o Python. Posteriormente, se analiza en detalle PyMTL3, mostrando sus capacidades para modelar hardware a nivel funcional, ciclo a ciclo y RTL dentro de un entorno unificado. Se describen sus mecanismos de simulación y verificación integrados, su flujo de generación automática de hardware y las ventajas introducidas por el motor de simulación optimizado Mamba. El trabajo incluye implementaciones prácticas diseñadas y elaboradas por nosotros de diversos casos de estudio, como una ALU, un producto escalar (dot product), una multiplicación matricial (GEMM) y un filtro Laplacian y Gaussian para procesamiento de imágenes. Se detallan tanto las estrategias de verificación como los resultados de síntesis obtenidos, evaluando métricas de calidad como el PSNR y el SSIM en aplicaciones de imagen, y analizando el rendimiento, área y consumo energético de los diseños generados. Finalmente, se concluye que PyMTL3 es una herramienta potente y versátil para el diseño hardware moderno, capaz de ofrecer un flujo de desarrollo eficiente y modular, favoreciendo un equilibrio óptimo entre nivel de abstracción, calidad del diseño y complejidad de implementación. Todo el código desarrollado se encuentra en nuestro repositorio de Github: https://github.com/Jorglo03/TFG-PYMTL3
dc.description.abstractThe present study focuses on the automation of hardware design and verification, with a special emphasis on the use of PyMTL3, an open-source Python-based framework. The project begins with a review of the traditional hardware design flow and the motivation for adopting high-level synthesis (HLS) techniques, comparing commercial and open-source tools such as FloPoCo, Bambu, Rust-HDL, and Vivado HLS, differentiating between those based on RTL and those working from high-level languages like C/C++ or Python. Subsequently, PyMTL3 is analyzed in detail, showcasing its capabilities to model hardware at the functional, cycle-accurate, and RTL levels within a unified environment. Its integrated simulation and verification mechanisms, automatic hardware generation flow, and the advantages introduced by the optimized Mamba simulation engine are described. The thesis includes practical implementations designed and developed by us of various case studies, such as an ALU, a dot product, a matrix multiplication (GEMM), and a Laplacian and Gaussian filter for image processing. Both the verification strategies and the obtained synthesis results are detailed, evaluating quality metrics such as PSNR and SSIM in image applications, and analyzing the performance, area, and power consumption of the generated designs. Finally, the conclusion emphasizes that PyMTL3 is a powerful and versatile tool for modern hardware design, capable of offering an efficient and modular development flow, promoting an optimal balance between abstraction level, design quality, and implementation complexity. All the developed code can be found in our GitHub repository: https://github.com/Jorglo03/TFG-PYMTL3
dc.description.departmentDepto. de Arquitectura de Computadores y Automática
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.identifier.urihttps://hdl.handle.net/20.500.14352/123938
dc.language.isospa
dc.page.total78
dc.rights.accessRightsopen access
dc.subject.cdu004(043.3)
dc.subject.keywordPyMTL
dc.subject.keywordPython
dc.subject.keywordOpen-source
dc.subject.keywordHLS
dc.subject.keywordEDA
dc.subject.keywordVerilog
dc.subject.keywordPipeline
dc.subject.keywordSimulación
dc.subject.keywordC++
dc.subject.keywordPyMTL
dc.subject.keywordPython
dc.subject.keywordOpen-source
dc.subject.keywordHLS
dc.subject.keywordEDA
dc.subject.keywordVerilog
dc.subject.keywordPipeline
dc.subject.keywordSimulation
dc.subject.keywordC++
dc.subject.ucmInformática (Informática)
dc.subject.unesco33 Ciencias Tecnológicas
dc.titleDiseño de hardware con PYTHON: construcción y evaluación de núcleos computacionales con PYMTL
dc.titleHardware design with PYTHON: construction and evaluation of computational kernels with PYMTL
dc.typebachelor thesis
dc.type.hasVersionAM
dspace.entity.typePublication
relation.isAdvisorOfPublication53f86d34-b560-4105-a0bc-a8d1994153ab
relation.isAdvisorOfPublicationd08b5d10-697d-4104-9cb1-1fc7db6ecec6
relation.isAdvisorOfPublication.latestForDiscovery53f86d34-b560-4105-a0bc-a8d1994153ab

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Diseño_ hardware_Python.pdf
Size:
15.23 MB
Format:
Adobe Portable Document Format