ATPG (acrónimo de generación automática de patrones de prueba y generador automático de patrones de prueba ) es un método o tecnología de automatización del diseño electrónico que se utiliza para encontrar una secuencia de entrada (o prueba) que, al aplicarse a un circuito digital , permite a los equipos de prueba automáticos distinguir entre el comportamiento correcto del circuito y el comportamiento defectuoso causado por defectos. Los patrones generados se utilizan para probar dispositivos semiconductores después de su fabricación o para ayudar a determinar la causa de la falla ( análisis de fallas [ 1 ] ). La efectividad de ATPG se mide por la cantidad de defectos modelados, o modelos de falla , detectables y por la cantidad de patrones generados. Estas métricas generalmente indican la calidad de la prueba (mayor con más detecciones de fallas) y el tiempo de aplicación de la prueba (mayor con más patrones). La eficiencia de ATPG es otra consideración importante que está influenciada por el modelo de falla en consideración, el tipo de circuito bajo prueba ( escaneo completo , secuencial síncrono o secuencial asíncrono), el nivel de abstracción utilizado para representar el circuito bajo prueba (puerta, transferencia de registro, interruptor) y la calidad de prueba requerida .
Lo esencial
Un defecto es un error que se produce en un dispositivo durante el proceso de fabricación. Un modelo de fallos es una descripción matemática de cómo un defecto altera el comportamiento del diseño. Los valores lógicos observados en las salidas primarias del dispositivo, al aplicar un patrón de prueba a un dispositivo bajo prueba (DUT), se denominan salida de dicho patrón. La salida de un patrón de prueba, al probar un dispositivo sin fallos que funciona exactamente como se diseñó, se denomina salida esperada de ese patrón de prueba. Se dice que un patrón de prueba detecta un fallo si la salida de dicho patrón, al probar un dispositivo que presenta únicamente ese fallo, difiere de la salida esperada. El proceso ATPG para un fallo específico consta de dos fases: activación del fallo y propagación del fallo . La activación del fallo establece un valor de señal en el sitio del modelo de fallos que es opuesto al valor producido por el modelo de fallos. La propagación del fallo mueve el valor de señal resultante, o efecto del fallo, hacia adelante al sensibilizar una ruta desde el sitio del fallo hasta una salida primaria.
ATPG puede fallar al menos en dos casos al detectar una falla específica. Primero, la falla puede ser intrínsecamente indetectable, de modo que no existan patrones que permitan detectarla. El ejemplo clásico es un circuito redundante, diseñado para que ninguna falla individual provoque un cambio en la salida. En un circuito de este tipo, cualquier falla individual será inherentemente indetectable.
En segundo lugar, es posible que exista un patrón de detección, pero el algoritmo no pueda encontrarlo. Dado que el problema ATPG es NP-completo (por reducción del problema de satisfacibilidad booleana ), habrá casos en los que existan patrones, pero ATPG se rinda porque tardaría demasiado en encontrarlos (suponiendo , por supuesto, que P≠NP ).
Modelos de fallos
- Suposición de falla única: solo ocurre una falla en un circuito. Si definimos k posibles tipos de falla en nuestro modelo de falla, el circuito tiene n líneas de señal, por la suposición de falla única, el número total de fallas únicas es k×n .
- Suposición de fallas múltiples: pueden ocurrir múltiples fallas en un circuito.
Colapso de falla
Las fallas equivalentes producen el mismo comportamiento defectuoso para todos los patrones de entrada. Cualquier falla individual del conjunto de fallas equivalentes puede representar el conjunto completo. En este caso, se requieren muchas menos de k × n pruebas de fallas para un circuito con n líneas de señal. Eliminar las fallas equivalentes de un conjunto completo de fallas se denomina colapso de fallas.
El modelo de falla atascada
En las últimas décadas, el modelo de fallo más utilizado en la práctica es el de fallo fijo . En este modelo, se supone que una de las líneas de señal de un circuito se mantiene fija en un valor lógico constante, independientemente de las entradas que reciba. Por lo tanto, si un circuito tiene n líneas de señal, existen potencialmente 2n fallos fijos definidos en él, algunos de los cuales pueden considerarse equivalentes. El modelo de fallo fijo es un modelo lógico porque no se asocia información de retardo a la definición del fallo. También se denomina modelo de fallo permanente porque se supone que el efecto del fallo es permanente, a diferencia de los fallos intermitentes , que ocurren (aparentemente) al azar, y los fallos transitorios , que ocurren esporádicamente, dependiendo quizás de las condiciones de funcionamiento (por ejemplo, la temperatura o la tensión de alimentación) o de los valores de los datos (estados de tensión alta o baja) en las líneas de señal circundantes. El modelo de fallo fijo es estructural porque se define a partir de un modelo de circuito estructural a nivel de compuertas.
Un conjunto de patrones con una cobertura del 100 % de fallos permanentes consiste en pruebas para detectar todos los posibles fallos permanentes en un circuito. Una cobertura del 100 % de fallos permanentes no garantiza necesariamente una alta calidad, ya que a menudo se producen fallos de muchos otros tipos (por ejemplo, fallos de cortocircuito, fallos de circuito abierto, fallos de retardo).
fallas en los transistores
Este modelo se utiliza para describir fallos en las compuertas lógicas CMOS. A nivel de transistor, un transistor puede estar atascado en cortocircuito o atascado en circuito abierto. En el caso de cortocircuito, el transistor se comporta como si siempre estuviera conduciendo (o atascado en circuito abierto), mientras que en el caso de circuito abierto, el transistor nunca conduce corriente (o atascado en circuito cerrado). El cortocircuito producirá un cortocircuito entre VDD y VSS.
Superar fallas
Un cortocircuito entre dos líneas de señal se denomina fallo de puenteo. Un puenteo a VDD o Vss equivale a un modelo de fallo fijo. Tradicionalmente, ambas señales, tras el puenteo, se modelaban con una operación lógica AND u OR. Si un controlador domina al otro en una situación de puenteo, el controlador dominante impone la lógica al otro; en tal caso, se utiliza un fallo de puenteo dominante. Para reflejar mejor la realidad de los dispositivos CMOS VLSI, se utiliza un modelo de fallo de puenteo AND dominante u OR dominante. En este último caso, el controlador dominante conserva su valor, mientras que el otro recibe el valor AND u OR de su propio valor y del controlador dominante.
Abre fallos
Fallos de retardo
Las fallas de retardo se pueden clasificar como:
- fallo de retardo de puerta
- Fallo de transición
- Fallo de tiempo de espera
- Fallo de retardo lento/pequeño
- Fallo de retardo de ruta: Este fallo se debe a la suma de todos los retardos de propagación de las compuertas a lo largo de una única ruta. Indica que el retardo de una o más rutas excede el período del reloj. Un problema importante para detectar fallos de retardo es la cantidad de rutas posibles en un circuito bajo prueba (CUT), que en el peor de los casos puede crecer exponencialmente con el número de líneas n del circuito.
ATPG combinado
El método ATPG combinacional permite probar los nodos individuales (o biestables) del circuito lógico sin preocuparse por el funcionamiento del circuito en su conjunto. Durante la prueba, se habilita un modo de escaneo que obliga a conectar todos los biestables de forma simplificada, omitiendo así sus interconexiones habituales. Esto permite utilizar una matriz vectorial relativamente sencilla para probar rápidamente todos los biestables que lo componen, así como para rastrear fallos hasta biestables específicos.
ATPG secuencial
La generación automática de patrones de prueba (ATPG) para circuitos secuenciales busca una secuencia de vectores de prueba para detectar una falla específica en el espacio de todas las secuencias posibles . Se han ideado diversas estrategias y heurísticas para encontrar una secuencia más corta o más rápida. Sin embargo, según los resultados publicados, ninguna estrategia o heurística supera a las demás en todas las aplicaciones o circuitos. Esta observación implica que un generador de pruebas debe incluir un conjunto completo de heurísticas.
Incluso una simple falla permanente requiere una secuencia de vectores para su detección en un circuito secuencial. Además, debido a la presencia de elementos de memoria, la controlabilidad y la observabilidad de las señales internas en un circuito secuencial son, en general, mucho más difíciles que en un circuito lógico combinacional . Estos factores hacen que la complejidad de la generación automática de patrones secuenciales sea mucho mayor que la de la generación automática de patrones combinacionales, donde se agrega una cadena de escaneo (es decir, una cadena de señales conmutable, solo para pruebas) para permitir un acceso sencillo a los nodos individuales.
Debido a la alta complejidad de la generación automática de patrones de prueba (ATPG) secuencial, sigue siendo una tarea desafiante para circuitos grandes y altamente secuenciales que no incorporan ningún esquema de diseño para la comprobabilidad (DFT). Sin embargo, estos generadores de pruebas, combinados con técnicas DFT de bajo costo computacional, como el escaneo parcial , han demostrado cierto éxito en la comprobación de diseños de gran tamaño. Para diseños sensibles al área o al rendimiento, la solución de utilizar ATPG de circuitos secuenciales y escaneo parcial ofrece una alternativa atractiva a la popular solución de escaneo completo, que se basa en ATPG de circuitos combinacionales.
Tecnologías nanométricas
Históricamente, la generación de patrones de prueba (ATPG) se ha centrado en un conjunto de fallos derivados de un modelo de fallos a nivel de puerta lógica. A medida que las tendencias de diseño se orientan hacia la tecnología nanométrica, surgen nuevos problemas en las pruebas de fabricación. Durante la validación del diseño, los ingenieros ya no pueden ignorar los efectos de la diafonía y el ruido de la fuente de alimentación en la fiabilidad y el rendimiento. Las técnicas actuales de modelado de fallos y generación de vectores están dando paso a nuevos modelos y técnicas que consideran la información de temporización durante la generación de pruebas, que son escalables a diseños más grandes y que pueden capturar condiciones de diseño extremas. Para la tecnología nanométrica, muchos de los problemas actuales de validación del diseño se están convirtiendo también en problemas de pruebas de fabricación, por lo que se necesitarán nuevas técnicas de modelado de fallos y ATPG.
Métodos algorítmicos
Probar circuitos integrados de gran escala con una alta cobertura de fallos es una tarea difícil debido a su complejidad. Por ello, se han desarrollado numerosos métodos ATPG diferentes para abordar circuitos combinacionales y secuenciales .
- Los primeros algoritmos de generación de pruebas, como la diferencia booleana y la proposición literal, no eran prácticos para implementar en una computadora.
- El algoritmo D fue el primer algoritmo práctico de generación de pruebas en términos de requisitos de memoria. El algoritmo D [propuesto por Roth en 1966] introdujo la notación D , que se sigue utilizando en la mayoría de los algoritmos ATPG. El algoritmo D intenta propagar el valor de fallo atascado, denotado por D (para SA0) o D (para SA1), a una salida primaria.
- El método de toma de decisiones orientado a rutas (PODEM) es una mejora del algoritmo D. PODEM fue creado en 1981 por Prabhu Goel , cuando se hicieron evidentes las deficiencias del algoritmo D al producirse innovaciones de diseño que daban lugar a circuitos que el algoritmo D no podía implementar.
- El algoritmo Fan-Out Oriented ( FAN ) supone una mejora con respecto a PODEM. Limita el espacio de búsqueda de ATPG para reducir el tiempo de cálculo y acelera el rastreo inverso.
- En ocasiones, se utilizan métodos basados en la satisfacibilidad booleana para generar vectores de prueba.
- La generación de pruebas pseudoaleatorias es el método más sencillo para crear pruebas. Utiliza un generador de números pseudoaleatorios para generar vectores de prueba y se basa en la simulación lógica para calcular buenos resultados de la máquina y en la simulación de fallos para calcular la cobertura de fallos de los vectores generados.
- El Generador Automático de Patrones Espectrales (WASP) basado en ondículas representa una mejora con respecto a los algoritmos espectrales para la generación automática de patrones (ATPG) secuencial. Utiliza heurísticas de ondículas para explorar el espacio, reduciendo así el tiempo de cálculo y acelerando el compactador. Fue propuesto por Suresh Kumar Devanathan de Rake Software y Michael Bushnell de la Universidad de Rutgers. Suresh Kumar Devanathan desarrolló WASP como parte de su tesis en Rutgers.
Conferencias relevantes
ATPG es un tema que se aborda en varias conferencias a lo largo del año. Las principales conferencias en EE. UU. son la International Test Conference y el VLSI Test Symposium , mientras que en Europa el tema se trata en DATE y ETS .
Véase también
Referencias
- Manual de automatización del diseño electrónico para circuitos integrados , por Lavagno, Martin y Scheffer, ISBN 0-8493-3096-3Un estudio del campo, del cual se derivó el resumen anterior, con autorización.
- Análisis de fallos en microelectrónica . Materials Park, Ohio: ASM International. 2004. ISBN 0-87170-804-3.
- ↑ Crowell, G; Press, R. "Uso de técnicas basadas en escaneo para el aislamiento de fallas en dispositivos lógicos". Análisis de fallas en microelectrónica . págs. 132–8 .
- Verificación de circuitos electrónicos