¿A qué se refieren los términos cobertura de código y cobertura funcional cuando se trata de verificación de diseño digital?

1

Parece que verificar un diseño es una tarea más compleja que el diseño en sí mismo y demora mucho más en realizarse. Incluso es posible que tengamos que crear el banco de pruebas muy al banco de pruebas original que prueba el DUT.

De todos modos, parece que hay mucha terminología involucrada en esto también y en este punto solo deseo saber qué es cobertura de código y especialmente cobertura funcional . Estos términos también se usan con referencia a SystemVerilog sobre el que estoy tratando de leer.

Editar:

Sólo una pregunta más aquí. ¿Qué es una "configuración" en systemverilog? El libro dice "Generar configuración: Aleatorizar la configuración del DUT y el entorno circundante". ¿Qué significa eso?

    
pregunta quantum231

2 respuestas

2

Cobertura de código es una métrica que le indica si ha ejecutado cada línea de código en la implementación de su diseño. Hay una serie de otras métricas para la cobertura de código que las herramientas pueden calcular fácilmente para usted de manera no intrusiva (por ejemplo, cada uno ha cambiado a sus estados verdadero y falso). La teoría es que no se pudo haber probado un código que nunca se ejecutó. Pero la cobertura del código no le dice nada sobre la corrección del código que se ejecutó. Por lo tanto, es una métrica de verificación necesaria pero insuficiente.

Cobertura funcional es una métrica que le indica si ha probado toda la funcionalidad requerida de un diseño. Supuestamente, cuando alguien se sienta para crear un diseño, tiene una especificación que enumera todas las características que debe proporcionar el diseño. Hay varias formas de recopilar datos de cobertura funcional, pero normalmente es necesario realizar un seguimiento de una prueba para cada característica o conjunto de características, y que la prueba sea exitosa para marcar una característica como cubierta funcionalmente . No se necesita ningún conocimiento de la implementación del diseño.

Puede consultar nuestro Libro de recetas de cobertura para obtener más información.

    
respondido por el dave_59
2

La cobertura de código significa que ha verificado todas las líneas de código en el diseño. Por ejemplo, si hay una declaración if , ha verificado ambas ramas.

La cobertura funcional es donde se han verificado todos los escenarios en los que se utilizará el diseño. Estos escenarios son generalmente desde un punto de vista del usuario o del sistema.

Para dar otro punto de vista, estos son similares a las pruebas de caja blanca frente a las pruebas de caja negra.

La prueba de caja blanca (también llamada prueba de caja transparente) es donde usted conoce los aspectos internos del diseño y está probando todo desde este punto de vista. Una forma de esto es la prueba de cobertura de código.

Black-box es donde el probador / prueba no conoce las partes internas y está tratando de determinar si el diseño cumple con las especificaciones de diseño desde el punto de vista del usuario. Esta es una prueba funcional.

    
respondido por el caveman

Lea otras preguntas en las etiquetas