Resumen:
|
[ES] El presente Trabajo Fin de Máster ha sido desarrollado dentro de la empresa Maxlinear. Su objetivo principal es desarrollar una metodología que permita el uso del lenguaje de programación Python en un entorno de ...[+]
[ES] El presente Trabajo Fin de Máster ha sido desarrollado dentro de la empresa Maxlinear. Su objetivo principal es desarrollar una metodología que permita el uso del lenguaje de programación Python en un entorno de verificación UVM. Esto posibilita la creación de un conjunto de scripts de Python para la verificación ASIC en un entorno UVM, que posteriormente serán utilizados en un entorno de pruebas real, usando los mismos tests de verificación sobre el ASIC a nivel RTL y sobre el ASIC ya construido.
Esta metodología se ha desarrollado con el objetivo de verificar el ASIC, una vez fabricado, en el menor tiempo posible. La verificación en un entorno UVM aporta un mayor control en la generación de situaciones de test y en la comprobación automática del correcto funcionamiento de todas las señales del ASIC. Además, la metodología propuesta en el presente TFM permite verificar los propios scripts de Python antes de ser usados en un entorno de pruebas real. Esto facilita la verificación del entorno de pruebas antes de la fabricación del chip, eliminando la necesidad de una implementación y verificación en FPGA, verificación que es lenta y, a veces, incompatible con determinados diseños.
Para llevar a cabo esta nueva metodología, es necesario exportar una serie de funciones o tasks definidas en SystemVerilog a Python. Para ello, se ha utilizado la interfaz DPI (Direct Programming Interface) entre SystemVerilog y el lenguaje C, que permite llamar funciones de C desde SystemVerilog y exportar otras desde SystemVerilog para que sean llamadas desde C. Posteriormente, mediante la herramienta SWIG (Simplified Wrapper and Interface Generator), se generará un banco de pruebas en Python que permitirá acceder a las funciones generadas en C que se comunican con el banco de pruebas en UVM o con el banco de pruebas físico.
[-]
[EN] This Master's Thesis has been developed within the company Maxlinear. Its main objective is to develop a methodology that allows the use of the Python programming language in a UVM verification environment. This enables ...[+]
[EN] This Master's Thesis has been developed within the company Maxlinear. Its main objective is to develop a methodology that allows the use of the Python programming language in a UVM verification environment. This enables the creation of a set of Python scripts for ASIC verification in a UVM environment, which will later be used in a real test environment, using the same verification tests on the ASIC at RTL level and on the ASIC already built.
This methodology has been developed with the objective of verifying the ASIC, once built, in the shortest possible time. The verification in a UVM environment provides greater control in the generation of test situations and in the automatic verification of the correct operation of all the ASIC signals. In addition, the methodology proposed in this Thesis allows to verify the Python scripts themselves before being used in a real test environment. This facilitates the verification of the test environment prior to chip fabrication, eliminating the need for FPGA implementation and verification, which is time-consuming and sometimes incompatible with certain designs.
To develop this new methodology, it is necessary to export a series of functions or tasks defined in SystemVerilog to Python. For this purpose, the DPI (Direct Programming Interface) between SystemVerilog and the C language has been used, which allows calling C functions from SystemVerilog and exporting others from SystemVerilog to be called from C. Subsequently, using the SWIG (Simplified Wrapper and Interface Generator) tool, a Python test bench will be generated that will allow access to the functions generated in C that communicate with the UVM test bench or with the physical test bench.
[-]
|