¿Cuál es la diferencia entre las pruebas y la verificación?

15

Todos los libros de texto que he visto explican en gran medida el hecho de que test y verification son dos diferentes conceptos Sin embargo, ninguno de ellos proporciona una distinción clara (o lo suficientemente clara para mí, por fin).

Para proporcionar algo de contexto, estoy interesado en la verificación de los diseños de hardware digital que utilizan lenguajes de diseño de hardware (HDL).

He visto algunas explicaciones que recurren a una diferencia "física" o "tangible": si se trata de un dispositivo fabricado, entonces se está probando. ¿Es esta la historia completa? Si es así, ¿por qué la palabra "prueba" aparece tan a menudo en la verificación (especialmente en verificación funcional, hablamos de casos de prueba, bancos de prueba, DUT (dispositivo bajo prueba), pruebas dirigidas, pruebas aleatorias, etc.)

    
pregunta VHDL Addict

6 respuestas

21

Era un ingeniero de verificación de diseño de ASIC en Qualcomm. De la forma más sencilla que puedo explicarlo:

Pruebas: asegurarse de que un producto funciona, después de haber creado el producto (piense en el control de calidad).

Verificación: asegurarse de que un producto funcione ANTES de que lo hayas creado.

Ambos están probando, solo que la verificación es más complicada porque tiene que encontrar una manera de probar el producto antes de que exista y debe asegurarse de que funciona como está diseñado y de especificar cuando realmente llega fuera.

Por ejemplo, Intel está diseñando su próximo procesador, tienen las especificaciones, tienen los esquemas y las simulaciones. Ellos gastan $ 1 billón de dólares para ir a través de la fabricación y fabricación. Luego el chip regresa y lo prueban y descubren que no funciona. Simplemente tiraron un montón de dinero por la ventana.

Incorpore la verificación. Los ingenieros de verificación crean modelos que simulan el comportamiento del chip, crean el banco de pruebas que probará esos modelos en particular. Obtienen los resultados de estos modelos y luego los comparan con los resultados de RTL (modelo del circuito que se escribe en un lenguaje de diseño de hardware). Si coinciden, las cosas están (generalmente) OK.

Hay varias metodologías diferentes para el proceso de verificación, una popular es Metodología de Verificación Universal (UVM) .

Hay mucha profundidad en el campo y las personas pueden dedicar toda su carrera a ello.

Otro dato aleatorio de información: por lo general, se necesitan 3 ingenieros de verificación para 1 ingeniero de diseño. Eso es lo que todos en el campo dicen de todos modos.

EDITAR: Mucha gente piensa en la verificación como un rol de prueba, pero no lo es; es un rol de diseño en sí mismo porque tiene que entender todas las complejidades de su IC como lo hace un diseñador, y luego tiene que saber cómo diseñar modelos, bancos de pruebas y todos los casos de prueba que cubrirán toda la funcionalidad de las características de su IC , además de intentar golpear cada línea de código RTL para todas las combinaciones de bits posibles. Recuerde que un procesador hoy en día tiene miles de millones de transistores debido al proceso de fabricación que permite que cada vez sean más pequeños (ahora 14nm).

Además, en grandes corporaciones como Intel, AMD, Qualcomm, etc., los diseñadores no diseñan el chip. Normalmente, el arquitecto definirá todas las especificaciones, diseñará los tipos de piezas que deben ir juntas para obtener una función particular con un requisito específico (es decir, velocidad, resolución, etc.), y luego el diseñador codificará eso en RTL. De ninguna manera es un trabajo fácil, simplemente no es tanto el diseño como muchos ingenieros que salen de la escuela piensan que sí. Lo que todos quieren ser es un arquitecto, pero se necesita mucha educación y experiencia para llegar a ese punto. Muchos arquitectos tienen doctorados, y como 15 a 20 años de experiencia en el campo como diseñador. Estas son personas brillantes (y algunas veces locas) que merecen estar haciendo lo que están haciendo, y son buenos en eso. El arquitecto en el primer chip en el que trabajé era un poco incómodo y realmente no seguía algunas normas sociales, pero podía resolver cualquier cosa con la que estuviera atascado con respecto al chip, y algunas veces lo resolvía en su cabeza y le decía para mirar una señal y usted diría, "¿cómo diablos hizo eso?". Luego le pides que te lo explique y él lo hace y te pasa por encima de la cabeza. Realmente me inspiró a leer libros de texto, aunque ya me gradué.

    
respondido por el PGT
6

En mi libro, Verificación es asegurarse de que lo que usted diseñó "haga el trabajo", es decir, tiene un conjunto de cosas que el "dispositivo" debe realizar y la verificación las marca en la lista.

La prueba, sin embargo, es asegurarse de que las cosas que hace el "dispositivo" se hagan correctamente. Tiene un conjunto de funciones y prueba cada función asegurándose de que la función funcione correctamente.

En pocas palabras, la verificación está verificando el diseño y las pruebas están verificando el producto.

    
respondido por el Majenko
4

A partir de un fondo de diseño ASIC (hardware), hay tres términos importantes: validación , verificación y prueba . Las respuestas anteriores generalmente hablan de uno o dos de estos términos, pero no contrastan claramente los tres en la forma en que lo haría. Así es como los entiendo:

  • Validación: ¿la especificación (a menudo un modelo C) cumple con los requisitos del mercado o del cliente?
  • Verificación: ¿la implementación (RTL, netlist o GDS2) coincide con la especificación?
  • Prueba: ¿el dispositivo fabricado coincide con la implementación?
respondido por el Winston Smith
1

Una prueba está diseñada para ver si se cumple una especificación. La verificación es para ver si el dispositivo cumple con las entradas de diseño, es decir, todas las especificaciones. Supongo que hay muchas más interpretaciones, pero esto es lo que he visto en los documentos de orientación de la FIA.

    
respondido por el Scott Seidman
1

Hacemos una distinción entre pruebas de verificación y pruebas de validación. Digamos que estás diseñando un ventilador que enfría algunos equipos. Se realizan pruebas de verificación para asegurarse de que el ventilador cumpla con todos los requisitos de diseño. Así que puedes probar el flujo de aire, el ciclo térmico, la vibración, etc.

Las pruebas de validación aseguran que los requisitos de diseño sean los correctos. ¿Las entradas de diseño que teníamos para el ventilador realmente nos dieron el ventilador que queríamos? Por ejemplo, usted se aseguraría de que el ventilador enfríe el equipo según lo previsto.

    
respondido por el Eric
1

ISO9000 habla de verificación y validación. En el contexto de la verificación ISO9000 significa probar un diseño de prototipo para demostrar que cumple con las expectativas funcionales y de rendimiento. La validación significa que probar la primera ejecución de producción también cumple con las expectativas de diseño. Verifique primero, luego valide es mi pequeña forma de recordar el orden de las cosas.

Varios estándares de software invierten el orden de verificación y validación y esto podría causar confusión, así que ten cuidado.

La conclusión es ... ¿Por qué está probando algo? ¿Es un prototipo de diseño? Si es así, los estándares de calidad tienden a llamar a esta verificación. Si está probando una ejecución de producción por primera vez, los expertos en hardware llaman a esta validación.

Solo mis experiencias personales.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas