Verificación de una conexión master slave de i2c en FPGA basada en bancos de prueba en el entorno de Pytest

Handle

https://riunet.upv.es/handle/10251/238427

Cita bibliográfica

Tortosa Martínez, FJ. (2026). Verificación de una conexión master slave de i2c en FPGA basada en bancos de prueba en el entorno de Pytest. https://riunet.upv.es/handle/10251/238427

Titulación

Grado en Ingeniería de Tecnologías y Servicios de Telecomunicación-Grau en Enginyeria de Tecnologies i Serveis de Telecomunicació

Resumen

[ES] El TFG propuesto se desarrolla durante las prácticas de empresa realizadas en Analog Devices, empresa dedicada al desarrollo de circuito microelectrónicos. Los objetivos principales son crear una API y crear varios bancos de prueba para verificar la conexión i2c de un proyecto actual desarrollado en la empresa. La API utiliza un módulo de Linux que envía o recibe una trama i2c. La API que se desarrolla se encarga de ajustar el envío de esa trama a las especificaciones del diseño, añadiendo los diferentes modos de operación que debe tener el i2c del diseño o añadiendo la escritura y lectura en ráfagas. Para su desarrollo se hace uso de una FPGA de Xilinx con una Daughter Board desarrollada por Analog Devices. En la FPGA se introduce el diseño actual del chip y se configura analógicamente para que se habilite el i2c de esta y poder correr los bancos de prueba. Los bancos de prueba están escritos en Python y se corren mediante la herramienta de Pytest, que permite hacer tareas como imprimir mensajes mediante el print() de python, resumir los errores cazados en las aserciones o incluso generar un report en html para ver los resultados de los test. Esto último es muy útil cuando se ejecutan cientos de tests durante horas para poder ver fácilmente cuales han fallado y en que han fallado. Los bancos de prueba incluyen desde la verificación más simple y funcional de la conexión i2c, hasta tests complejos que mezclan diferentes tipos de escritura y lectura, diferentes modos de operación o pruebas de robustez de direcciones.


[EN] The proposed final degree project is being carried out during an internship at Analog Devices, a company dedicated to the development of microelectronic circuits. The main objectives are to create an API and develop several test benches to verify the I²C connection of a current project being developed at the company. The API uses a Linux module that sends or receives an I²C frame. The API being developed is responsible for adapting the transmission of that frame to the design specifications, adding the different operating modes required by the design’s I²C interface or incorporating burst read and write operations. For its development, a Xilinx FPGA is used along with a daughter board developed by Analog Devices. The current chip design is loaded into the FPGA and configured analogically to enable its I²C interface and run the test suites. The test suites are written in Python and run using the Pytest tool, which allows tasks such as printing messages using Python’s print() function, summarizing errors caught in assertions, or even generating an HTML report to view the test results. The latter is very useful when running hundreds of tests over several hours, as it makes it easy to see which tests failed and where they failed. The test suites range from the simplest, most basic verification of the I²C connection to complex tests that combine different types of read and write operations and different operating modes. The latter is very useful when running hundreds of tests over several hours, as it makes it easy to see which ones have failed and where they failed. The test suites range from the simplest, most basic functional verification of the I2C connection to complex tests that combine different types of read and write operations, different operating modes, or address robustness tests.

Fuente

DOI

Versión del editor

Enlaces relacionados

URL