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

Loading...
Thumbnail Image

Official URL

Full text at PDC

Publication date

2025

Editors

Journal Title

Journal ISSN

Volume Title

Publisher

Citations
Google Scholar

Citation

Abstract

El 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
The 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

Research Projects

Organizational Units

Journal Issue

Description

Trabajo de Fin de Grado en Ingeniería de Computadores, Facultad Informática UCM, Dpto. de Arquitectura de Computadores y Automática, Curso 2024/2025

Keywords