Prueba de hardware de FPGA, ¿miles de combinaciones?

1

Mis colegas desde hace mucho tiempo han diseñado un FPGA (usando VHDL) para un propósito especial. Otro colega preparó los escenarios de prueba.

Ahora quieren que pruebe esta placa FPGA siguiendo estos escenarios escritos. El banco de pruebas está listo. Así que no tengo nada que hacer excepto leer estos escenarios, cambiar los interruptores Analógico ubicados en el banco de pruebas (ADC se usa en el banco de pruebas) y ver la salida de DIGITAL en una monitor (una aplicación fue desarrollada para mostrar el resultado del cálculo de FPGA en el monitor de PC)

Mi pregunta es:

¿Cuál es el nombre de este tipo de prueba?

Busqué varias horas en la librería de Amazon para encontrar capítulos de libros escritos para el diseño de FPGA, algo sobre manera real de probar un FPGA sin éxito.

Tengo 5 entradas analógicas y el ADC creará, digamos, 20 variables digitales para el FPGA. Estos escenarios de prueba específicos para esta prueba FPGA no incluyen todas las combinaciones de entrada (2 ^ 20 = 1048576) sino al menos 1000 combinaciones.

Por lo tanto, debería realizar 1000 pruebas manualmente:

leyendo el escenario, cambiando manualmente los valores del interruptor analógico, lea el resultado digital en el monitor)

Pero, ¿qué hay de los FPGA que tienen más entradas? ¿Deberíamos probar rigurosamente todas las combinaciones posibles de las entradas?

Por favor ayúdame. Si conoces un capítulo de un libro que explica la forma en que probamos físicamente (hardware) el FPGA o si usamos otras formas, te lo agradeceré. Las palabras clave me ayudan también

    
pregunta Michelle

2 respuestas

1

Cuando se realiza en simulación, este tipo de prueba se denomina "prueba dirigida". En otras palabras ...

Si pongo los datos A, espero el resultado B.

Si salgo en los datos C, espero el resultado D.

etc ...

(donde todos los conjuntos de datos (A, C, ...) y resultados (B, D, ...) se han determinado de antemano.

Normalmente, uno intentaría encontrar una manera de eliminar al humano (que es leer y verificar el resultado en el monitor) del circuito, en parte porque los humanos son menos confiables que las computadoras y en parte por razones de velocidad.

Sin embargo, la "prueba aleatoria restringida" mencionada por otros es generalmente el camino a seguir si es posible. En esto, genera entradas aleatorias, determina cuál debe ser el resultado para esa entrada (utilizando un modelo independiente del diseño) y verifique que el resultado del FPGA coincida con lo que esperaba. Por lo general, obtendrá una cobertura mucho mejor de esta manera que con las pruebas dirigidas (aunque las pruebas dirigidas pueden ser útiles para las pruebas de tipo "hola mundo" y para atacar casos concretos en las esquinas).

Para las pruebas aleatorias restringidas, realmente necesita un mecanismo automatizado para verificar el resultado.

    
respondido por el David Smith
1

Los dos tipos principales de pruebas son pruebas dirigidas y pruebas aleatorias.

Para las pruebas dirigidas, diseñas cada prueba. Puede variar el orden de las pruebas, pero no hay nuevas pruebas a menos que las escriba. Esto es bueno para las pruebas de Go / No-Go o la emulación del sistema, donde se crean muchas pruebas complejas dirigidas. El mejor caso en este escenario es aleatorizar el orden de las pruebas.

Las pruebas aleatorias asignan al azar una o más variables de entrada al dispositivo bajo prueba. Esto se considera en gran parte como la mejor manera de hacer muchas pruebas.

Las pruebas aleatorias restringidas ponen límites a estas variables.

En el otro lado de su banco, querrá modelar qué deben producir esas entradas como salidas esperadas. Debido a que está utilizando un ADC, puede haber variaciones en la salida digital y deberá tener en cuenta eso en su modelo. Sería mejor hacer mediciones automáticas de la salida digital, tal vez incluso podría pedirle al equipo de diseño una ruta de prueba desde el FPGA y leer el reverso de un registro.

    
respondido por el Jason

Lea otras preguntas en las etiquetas