En el ámbito del diseño de circuitos integrados, el proceso de asegurar que la intención
del diseño es mapeada correctamente en su implementación se denomina verificación funcional.
En este contexto, los errores lógicos son discrepancias entre el comportamiento previsto del
dispositivo y su comportamiento observado.
La verificación funcional es hoy en día el cuello de botella del flujo de diseño digital y la simulación
de eventos discretos sigue siendo la técnica de verificación más utilizada, principalmente
debido a que es la única aplicable a sistemas grandes y complejos.
En este trabajo se aborda, mediante un enfoque teórico práctico, dos de los conceptos más
relevantes de la verificación funcional de hardware basada en simulación, esto es, la arquitectura
de los testbenches, los cuales le dan soporte práctico a dicha técnica y los modelos de cobertura
funcional, los cuales definen las funcionalidades y escenarios que deben ser probados guiando de
esta forma la creación de pruebas y el respectivo progreso del proceso de verificación.
En primer lugar, se encara la temática de la arquitectura de los testbenches modernos identificando
las propiedades deseadas de los mismos, reusabilidad y facilidad para aumentar el nivel
de abstracción. En función de estas dos propiedades se selecciona la metodología de Universal
Verification Methodology (UVM) para el diseño, análisis e implementación de dos testbenches.
En segundo lugar, dada la problemática del crecimiento del espacio de prueba de los diseños
modernos y la subsecuente dificultad para generar modelos de cobertura adecuados para los
mismos a partir de sus especificaciones, se introduce un método empírico de caja negra para
derivar un modelo de cobertura para diseños dominados por el control. Este método está basado
en la utilización de un modelo abstracto de la funcionalidad del dispositivo bajo prueba
(DUV, sigla en inglés de Device Under Verification). Este modelo facilita la extracción de conjuntos
de secuencias de prueba, los cuales representan el modelo de cobertura funcional. Dada
la complejidad de los posibles espacios de prueba generados, las conocidas técnicas de Testing
de Software, partición en clases de equivalencia y análisis de valores límites, son aplicadas para
reducirlos. Adicionalmente, se desarrolla una notación formal para expresar las secuencias de
prueba equivalentes extraídas del modelo. Por ultimo se aplica el método de derivación de modelo de cobertura funcional presentado para obtener casos de prueba relevantes para un modulo de buffer FIFO, y se utiliza el testbench implementado para darle soporte a la ejecución de dichos casos de prueba, implementando las pruebas derivadas y los correspondientes puntos de cobertura, combinando de esta forma los dos conceptos abordados. / In the integrated circuit design field, the process of assuring that the design intent is properly
mapped in its implementation is known as functional verification. In this context, logic errors
are discrepancies between the device’s expected behavior and its observed behavior.
The functional verification of a design is now a days the bottleneck of the digital design flow
and discrete event simulation still is the most used verification technique, mostly because it is
the only technique which is applicable to big and complex systems.
In this work, through a theoretical and practical approach, two of the most relevant simulation
based hardware functional verification concepts are addressed. Those concepts are, the
testbench architecture, which gives practical support to the simulation technique, and the functional
coverage model, which defines the functionalities and scenarios that should be tested,
guiding the creation of tests and the measurement of the verification process’s progress.
In first place, modern testbench architectures are studied identifying their desired properties,
which are reusability and the facility to raise the level of abstraction. According to these
properties the Universal Verification Methodology (UVM) is chosen for the design, analysis and
implementation of two testbenches.
In second place, given the test space growth challenge of modern designs and the subsequent
difficulty for generating their appropriate coverage models from their specifications, an empirical
black box method is introduced for the creation of coverage models for control dominated
designs. This method is based in the definition of a functional model of the DUV (Design Under
Verification) which facilitates the extraction of sets of test sequences which define a functional
coverage model. Given the complexity of the test space, the well known software testing techniques,
equivalence class partition and limit value analysis, are applied to reduce it. A formal
notation is developed in order to express equivalent test sequences.
Lastly, the presented functional coverage creation method is applied to a FIFO (First Input
First Output) buffer module in order to obtain relevant test sequences, and one of the previously
implemented testbench is used to give support to the execution of those test cases, implementing
the test sequences and its corresponding coverage points, combining in this manner both of this
work addressed concepts.
Identifer | oai:union.ndltd.org:uns.edu.ar/oai:repositorio.bc.uns.edu.ar:123456789/2560 |
Date | 30 November 2015 |
Creators | Francesconi, Juan I. |
Contributors | Julián, Pedro, Rodríguez, Agustín |
Publisher | Universidad Nacional del Sur |
Source Sets | Universidad Nacional del Sur |
Language | Spanish |
Detected Language | Spanish |
Type | Electronic Thesis or Dissertation, Text |
Rights | 2 |
Page generated in 0.0095 seconds