You are on page 1of 19

Presentación de pruebas de fallos

en Dsch versión 3.5
Este documento presenta el concepto de fallas de simulación a nivel lógico en
Dsch35. Se describen los mecanismos de inyección de fallos de lógica, la
simulación y la extracción óptima de prueba del vector. Las funciones de
prueba de Dsch35 se ilustran con una serie de diseños lógicos.

1 INTRODUCCIÓN
Los diseños de circuitos integrados lógicos en la tecnología CMOS se están
volviendo más y más complejo, ya que VLSI (integración a muy gran escala) es
el interés de muchos usuarios y fabricantes de electrónica de IC. Un problema
común a resolver por los diseñadores, fabricantes y usuarios es la prueba de
estos circuitos integrados. En esta nota de aplicación, se introduce el concepto
de falla, concentrándonos en las hipótesis stuck-at-0 y stuck-at-1, y mostrar
cómo pueden aparecer estos fallos. Luego, utilizando DSCH, mostramos cómo
construir una tabla de verdad de referencia, y la manera de simular estas fallas
aplicadas a los nodos de entrada y salida del circuito bajo prueba.
Investigamos cómo los patrones de prueba detectan dichos errores. El objetivo
final es clasificar la eficacia de patrones de prueba, con el fin de seleccionar los
vectores de prueba más eficientes, y por lo tanto reducir el número de
patrones de prueba.
1.1 Prueba de un IC
La prueba de un circuito integrado se puede expresar mediante la
comprobación de si sus salidas corresponden a las entradas aplicadas a la
misma. Si la prueba es positiva, entonces el sistema es bueno para usarse. Si
las salidas son diferentes de lo esperado, la IC es rechazado (Go / No Go
test). El diagnóstico se puede aplicar a la misma, con el fin de señalar e
identificar las causas del problema.
La prueba se aplica para detectar fallas después de varias operaciones: diseño,
fabricación, envasado, como se ilustra en la figura 1. Si se considera una
estrategia de prueba a nivel de CI, el fallo se puede detectar en las etapas de
diseño del sistema inicial, ubicarlo y eliminarlo a muy bajo costo. Cuando el
chip defectuoso está soldado en una placa de circuito impreso, el coste para
remediar el fallo se multiplica por diez. Y estos factores de costos continuan
aplicándose hasta que el sistema se ha montado y embalado y enviado a los
usuarios finales, como se ilustra en la Figura 2.

. pero sólo para los circuitos de pocas entradas. Figura 2: Coste de prueba (La regla de diez) La primera idea para poner a prueba un circuito de entrada N sería aplicar un contador de N bits a las entradas (controlabilidad). y es muy eficiente. La compactación de prueba se refiere al proceso de reducir el número de patrones de prueba en un conjunto de prueba sin reducir su cobertura de fallas. nuestro objetivo es obtener el menor número posible de patrones de prueba que garantiza más alta cobertura de fallas.Figura 1: Típico flujo de producción de un CI Estos factores de costos continúan aplicándose hasta que el sistema ha sido ensamblado y empaquetado y luego enviado a los usuarios. y observar las salidas de control (observabilidad). Dada una serie de fallos en el circuito bajo prueba (CUT). luego generar todas las 2N combinaciones. 3). Esto se denomina "pruebas exhaustivas" (Fig. esta técnica toma mucho tiempo cuando el número de entradas aumenta. Sin embargo.

Varios defectos generalmente se asignan a un modelo de falla.Figura 3: El tiempo de prueba exhaustiva se convierte en prohibitivo con un gran número de entradas de IC Un patrón de prueba (o vector de prueba) para una fallo f en un circuito C es una combinación de entrada para las que la salida(s) de C es diferente cuando f está presente asi como cuando no lo está. y se llama un mapeo muchosa-uno. y Cf (x) es la respuesta del circuito defectuoso.2.2 Prueba de fallos 1. 4).1 Modelo de falla Los modos de fallo se manifiestan en el nivel lógico como valores de señales incorrectas. 1. Un fallo es un modelo que representa el efecto de un fallo por medio del cambio que se produce en la señal del sistema. Un vector de prueba x detecta una fallo F si: C(x)  Cf(x) = 1 Dónde: C (x) es la respuesta del circuito libre de fallos. algunos defectos también pueden ser representados por más de un modelo de fallo. Es posible señalar los modelos de fallo más comúnmente utilizados (Tabla 1). Figura 4: Un patrón de prueba detecta un fallo si la respuesta libre de errores es diferente de la respuesta defectuosa. . (fig. Los modelos de fallo tienen la ventaja de ser una representación más manejable que los modos de falla física. Sin embargo.

debe ser útil en la detección de los defectos. . La razón para continuar usando el modelo de falla stuck-at es el hecho de que ha sido satisfactorio en el pasado. un fallo puede no representar a todos los fracasos. cuya naturaleza no cambian antes.2 Fallas Stuck-at Como se mencionó anteriormente. el fallo no tiene que ser una representación exacta de los defectos. Estas fallas afectan el comportamiento funcional del sistema de forma permanente. 1. Consideramos aquí las fallas permanentes que son fallas continuas y estables.Tabla 1: Modelos de falla más comúnmente utilizados Como modelo. Sin embargo. el modelo de falla más común asume el single stuck-at (SSF) a pesar de que está claro que este modelo no representa con exactitud todos los fallos físicos reales. sino más bien. durante y después de la prueba. Otros fallos tales como fallas temporales o fallas intermitentes no se consideran en esta nota de aplicación. como con cualquier modelo. Además. Estas fallas son usualmente localizadas y pueden ser modelados. Por ejemplo.2. un single stuck-at fault (SSF) representa una línea en el circuito que se fija al valor lógico 0 o 1. Además se discutirá un poco más cerca de los modelos de falla que se han traído en la Tabla 1. los conjuntos de prueba que se han generado para este tipo de fallo han sido eficaces en la detección de otros tipos de fallos.

Figura6: Origen físico de las fallas “Open” y “Short” . N s/0. todos tienen el mismo significado. 1.3 Otros fallos La fabricación de interconexiones puede dar lugar a interrupciones o atajos.La figura 5 ilustra un posible origen de un nodo pegado a tensión 0 (stuck-at 0): la implementación está cerca de un nodo VSS (aquí situado cerca. misma capa). La figura 6 ilustra el caso de Fallas "Open" y "Short". el fallo "stuck-at 0" se puede escribir: N s-a-0. N/0 ó N@0 En DSCH. Hay varias formas de designar fallas stuck-at. Figura 5: el origen físico de un nodo con falla stuck-at 0.2. Considerando un nodo N. que no se consideran en DSCH para simulaciones de fallos. y un puente de metal defectuosa hace una conexión robusta a la tierra. que puede tener consecuencias catastróficas en el comportamiento del circuito integrado. utilizaremos "N@0" para el nodo N stuck-at 0 y "N@1" para el nodo N stuck-at-1.

La cobertura de fallos (FC) es la medida de la capacidad de un equipo de prueba T para detectar un determinado conjunto de fallas que pueden ocurrir en el DUT (Dispositivo bajo prueba). Los valores típicos exigidos son menos de 200 DPM.2.4 Pruebas y cobertura de fallas La prueba es el proceso de determinar si un dispositivo funciona correctamente o no. Vamos a tratar de lograr una FC = 1.5. .1 Primeros pasos En DSCH versión 3. 2 Módulo de pruebas en DSCH 2.02%. y haga clic en "Simulate" → "Logic Circuit Testing". DL= 1 – Y (1­FC) Donde el FC se refiere a la cobertura real de defectos (probabilidad de que T detecte o no cualquier posible fallo en F) y DL es la DPM (defectos por millón). que incluye 2 entradas y una salida. o un 0. que es una cobertura fallos del 100%. construir un circuito sencillo. FC= (#detected faults)/ (#possible faults) 1) Nivel de defectos y cobertura de fallos El nivel de defectos (DL) es la fracción de partes malas de todas las partes que pasan las pruebas. La cuestión es ¿Cuantas pruebas de un CI serán suficientes? El rendimiento (Y) se define como la relación entre el número de matrices buenas por oblea con el número de matrices totales por oblea. 6.1. como se muestra en la figura.

En esta etapa.SCH) Haga clic en "Logic Simulatión". DSCH siempre clasifica las entradas en orden alfabético. dos entradas A y B se enumeran. con un período multiplicado por 2 con el fin de cubrir toda la tabla de verdad en una sola simulación. el valor de la salida todavía no se ha calculado y dispuesto.Figura 7: Introducción a DSCH La pantalla mostrada en la figura. y luego clic en "Chronograms" para ver cómo DSCH ha simulado el circuito: los relojes han sido asignados automáticamente a las entradas. seguidos de las salidas también clasificadas por orden alfabético. 8 corresponde a la construcción de la tabla de verdad de referencia. Figura 8: Construcción de la tabla de verdad de referencia (test/And2_test. En el caso de la compuerta AND. se muestran todas las entradas y salidas. En la tabla situada en la parte izquierda de la pantalla. Haga clic en "Extract Truth-table" para .

s@0 se aplica a todas las entradas. Las dos fallas consideradas aquí son A@0 y B@0. 9). 10. respectivamente 00. Figura 9: Cálculo de la tabla de verdad de referencia de la simulación lógica (test/And2_test. cada una correspondiente a un vector de prueba para las entradas AB. o ambos).llenar la tabla con los valores obtenidos en los cronogramas de la simulación lógica del circuito (Fig. 01. . Entrar a la pestaña "2 . Como tenemos 2 entradas.SCH) Haga clic en "Next". Seleccione el tipo de fallo (stuck-at-0. 10 corresponde a la inyección de fallos.Inyect Fault". Haga clic en "Generate Faults" para enumerar los defectos deseados en la red de prueba del vector situado a la izquierda de la pantalla. stuck-at-1. tenemos 4 columnas. y se observa la primera salida declarada en la lista. los nodos en los que se aplicaran estos modelos y la salida considerada para la prueba. Por defecto. y 11. Observe que cada columna corresponde a un vector de prueba. El menú que se muestra en la figura.

SCH) Figura 11: Dos simulaciones lógicas son necesarios para extraer la respuesta a los fallos A@0 y B@0 (test/And2_test. procedemos como sigue: . . la salida C es 0. y. Haga clic en "Chronograms" para ver la respuesta.Figure 10: Definir el tipo de fallo y los nodos de interés (test/And2_test.SCH) Con el fin de calcular la respuesta del circuito a los fallos A@0 y B@0 .A@0". El nodo A es stuck-at-0.Haga clic en "Simulate fault n°1 . en consecuencia.

La respuesta del circuito para el segundo fallo también se transfiere. . Figura 13: respuesta del circuito a A @ 0 y B @ 0 (test/And2_test. como se muestra en la figura. .Figura 12: El Cronograma muestra el nodo A en stuck-at-0 (test/And2_test. y aplicando a las entradas y salidas. se obtiene la siguiente respuesta a las 6 fallas: . 13.Haga clic en " Extract Fault Response”.SCH) Al seleccionar "Stuck-at 0 & Stuck-at 1".Haga clic en "Extract Fault Response".SCH) . Los valores lógicos se transfieren a la línea correspondiente.Haga clic en "Simulate fault n°2 .B@0".

Esto significa que la aplicación de 11 a las entradas A. B conduce a un resultado en C diferente del valor lógico de referencia 1 (línea "C (Fault-libre)". Haga clic en " Highlight Detection Vectors ". 14.Figura 13: respuesta del circuito para todas las posible fallas stuck-at (test/And2_test. Ir a la pestaña "3 . podemos ver que no todos los vectores de prueba tienen la misma eficiencia de detección.SCH) Haga clic en "Next". que permite que el vector de prueba 11 para alertar al usuario de la posibilidad . Figura 14: Puntuación de detección para todos los patrones de prueba (test/And2_test. El vector de prueba <11> (última columna) es capaz de detectar 4 fallos sobre el total de 6.Analyse Vectors". A partir de los resultados calculados en la figura.SCH).

Una aplicación práctica en DSCH se observa en la figura. el primero de falla / no falla. una combinación NandOr y un sumador completo. 10 y 11. C@0.de 4 posible fallos: A@0. Figura 15: Principios de inyección de fallos . 01. B@1. Todos los fallos se pueden probados (100% de cobertura) usando tres vectores:. el segundo para s@0 / s@1.1 Circuito NAND-OR El circuito NAND-OR es una simple combinación de una puerta NAND de 2 entradas y una puerta OR. B@0. El concepto de inyección de fallo manual se presenta en la figura 15. La inyección de fallos en un nodo N consiste en la apertura de la conexión y la inserción de un circuito multiplexor. basado en dos multiplexores. Se propone un ejemplo de s@0 y s@1 circuito de inyección. 16. 3. 3 Estudios de caso En esta sección se investiga la prueba de dos circuitos.

Inject Fault". 18). .SCH) Figura 18: Cálculo de la tabla de verdad de referencia de la simulación lógica (test / NandOr_test. .Figura 16: inyección manual de fallos en un circuito (test / NandOr_fault.SCH) Figure 17: Simulación (test/NandOr_fault. Desplazarse a la pestaña"2 .Haga clic en "Logic Simulation" y "Extract Truth-table" para llenar la tabla con los valores obtenidos en los cronogramas de simulación lógica del circuito (fig. son posibles 10 fallas stuck-at.Haga clic en "Simulate"  "Lógic Circuit Testing".Haga clic en "Next". si a ello se suma el nodo interno que une la salida NAND2 a la entrada OR. por lo tanto.SCH) El circuito Nand-Or tiene 5 nodos.sch" . .Haga clic en "File"  "Open" y seleccione "Test \ Nandor-test. .

En el menú de parámetros. 19). Haga clic en "Chronograms" para ver la respuesta. seleccione el tipo de falla "s@0 & s@1".Haga clic en “Highlight Detection Vectors”. 20. Ir a la pestaña "3 – Analyse vectors".A@0". El resultado se muestra en la figura.Haga clic en "Simulate faults n°1 . Figura 20: Eficiencia del vector de detección (prueba / NandOr_test. Figura 19: Cálculo de la respuesta a la inyección de fallos (test / NandOr_test. 19).Repita los dos últimos pasos hasta que se complete la tabla (Fig. .Haga clic en "Extract Fault Response".Haga clic en "Next".SCH) .SCH) . . Los valores lógicos se transfieren a la línea correspondiente.. y aplicarlo a "All nodes" (Fig. ". .Haga clic en "Generate Faults" para enumerar los defectos deseados en la red de prueba del vector. . .

Haga clic en "Simulate"  "Logic Circuit Testing".SCH) El procedimiento para la inyección de errores y el análisis es como sigue: .Haga clic en "Next"  "Open" y seleccione "Test \ Fadd-test. de 100 detecta B@1 y Nandor@0 (2/8 fallos). . 110.sch" . 22). B@0.- El El El El vector vector vector vector de 110 detecta un A@0. 21 incluye 3 entradas y 2 salidas. 010 detecta el fallo A@1.2 Circuito Sumador Completo El circuito sumador completo propuesto en la figura. . Esta implementación esta basada en compuertas XOR y NAND. C@1 y Nandor@1 (4/8 fallas). Figure 21: Sumador complete basado en compuertas XOR y NAND (test/Fadd_test. de 111 detecta el fallo restante C@0. Haga clic en "Chronograms" para observar la simulación lógica que sirve de referencia para llenar la tabla de verdad. Por lo tanto 4 vectores de prueba (010. 100. 111) detectan todas las fallas stuck-at (tiempo de la prueba será la media de una prueba exhaustiva).Haga clic en "Logic Simulation" y " Extract Truth-table " para llenar la tabla con los valores obtenidos en los cronogramas de la simulación lógica del circuito (Fig. Observe el retraso debido a las puertas lógicas que desicroniza las señales. 3.

Inject Fault". .En el menú de parámetros. La primera línea corresponde a los 8 vectores de prueba. Ir a la pestaña "2 . Figura 23: Eficiencia del vector de detección (test / Fadd_test.Figura 22: Cálculo de la tabla de verdad de referencia de la simulación lógica (test / Fadd_test. seleccione el tipo de fallo "s@0 & s@1".Haga clic en "Next". y seleccionar la salida "Sum" (Fig. Tenemos 10 fallos posibles. que se aplican a "todas las estaciones". El valor sin fallos se observa en la segunda línea de la tabla.SCH) .SCH) . 23).

Repita los dos últimos pasos hasta que se complete la tabla. . La mejor cobertura de fallo es del 80%. sólo tenemos un Drenaje short/cut a / de Fuente del transistor MOS.. 5 Conclusión . 5. rompiendo el contacto de metal / poly . Haga clic en "Chronograms" para ver la respuesta. Esta lista de fallos puede ser generada antes de la inyección de defectos o especificada por el diseñador (para una tecnología dada). Fig. El resultado se muestra en la figura 25. La colocación de una resistencia (que modela la opción predeterminada) entre dos nodos y para simular los valores (pocos ohmios: shorts) a un valor infinito (open). Podemos sustituir el espacio por "una corta resistencia" para simular fallas puente de circuito abierto (resistencia infinita) a cortocircuito (resistencia cero) especialmente si esto es posible con Microwind3. Esto se puede lograr a través del comando "parametric analysis” de Microwind3. por tanto. Ir a la pesataña "3 . La idea es modelar el fallo con un espacio (a una capa específica) y luego moverlo en el diseño. simularlo con SPICE y observar su efecto en el comportamiento eléctrico del circuito.Haga clic en "Next". ya que permite la inserción y la simulación de los elementos pasivos en un diseño. se puede tratar sólo los defectos probables (2 nodos vecinos de la misma capa. Establecer hasta el nivel eléctrico del diseño (diseñado en Microwind3) mediante el archivo SPICE extraído de diseño. Sin embargo. Por lo tanto 2 vectores de prueba detectan todos los fallos stuck-at (por ejemplo 000..Todos los vectores alcanzan la puntuación 4/10 (Véase. Sugerimos. puede ser difícil de implementar. 4. 111). Para corto resistivos entre dos nodos en el circuito (puente fallas). Los valores lógicos se transfieren a la línea correspondiente.). 4 Inyección de fallos en Microwind3: Nivel de diseño Nuestra perspectiva para continuar este trabajo con un módulo para la inyección de fallos a nivel de diseño utilizando Microwind3.Haga clic en "Simulate faults n°1 ..Haga clic en "Generate Faults" para enumerar los defectos deseados en la red de prueba del vector. la corriente IDDQ se puede utilizar para determinar la función correcta. . Considere modelos de fallas en este nivel de abstracción que son los MOS stuck-on/open y/o fallos de puente.Haga clic en " Extract Fault Response”. . . Para los MOS on / open. 3.Analyse vectors". Este análisis puede ser realizado por el diseñador o automáticamente por la herramienta. en comparación con el circuito libre de defectos (de referencia). que la inyección de fallos a nivel de diseño sigue los siguientes pasos: 1.Haga clic en " Highlight Detection Vectors ". 23). 6. La idea del espacio es bueno. 2. Finalmente. para analizar el efecto de cada defecto. con el fin de clasificar los defectos por tipo: catastrófico / paramétrico / lógica. excepto Carry@0 y Carry@1 que no están en el mismo camino. .A@0".

NAND. X2. Fallo colapso de pegado-en fallos se basa en el hecho de que un SA0 en la entrada a una puerta Y (NAND) es equivalente a la S @ 0 (S @ 1) en la salida de la puerta. OR. un S @ 1 en la entrada a una puerta OR (NI) es equivalente a la S @ 1 (S @ 0) a la salida de la puerta. el número de colapsado engreída a fallas en cualquier circuito combinacional construido a partir de puertas lógicas elementales (AND.Multiplexor Diseñar el siguiente circuito. NOR.2 Ejercicio 2 . una puerta complejo y un sumador completo. un S @ 0 (S @ 1) en la entrada es equivalente a la SA1 (S @ 0) a la salida del inversor. Inyectar atrapado-en fallos en X1. Por lo tanto. X3 y Y.Fallo colapso Stuck-en el colapso de fallo típicamente reduce el número total de averías en un 50 a 60% [Bushnell 2000]. 6 Ejercicios 6. y el inversor) viene dada por: Cantidad de errores colapsadas = 2 × (número de OP + número de fanout tallos) + Número de puerta (incluyendo inversor) entradas . Cuál vectores de prueba se harían con una cobertura de la culpa del 100%? 6. una engreída en falta en la fuente (salida de la puerta de conducción) de una red de conductores de salida libre es equivalente a la misma falla atascado-en el destino (entrada de puerta siendo impulsado).Esta nota de aplicación ha descrito una nueva característica de DSCH vinculado con inyección de fallos y simulación a nivel lógico. Los mecanismos para la inyección de errores de lógica. Del mismo modo. Para un inversor.1 Ejercicio 1 . la simulación y la extracción óptima vector de prueba se han descrito e ilustrado en una puerta Y.Número total de inversores . Por otra parte.

application note. Sicard. McGraw Hill India.microwind. July 2006. INSA editor. 450 pages. S. Sicard “Microwind User’s Manual.Una serie de interesantes propiedades están asociadas con la detección de pegada-a fallas en los circuitos lógicos combinacionales.microwind. www. July 2005. www.org.Evaluar el número de fallos colapsadas (respuesta: 10) 7 Referencias [Chen2002] Cheng-Wen Wu.org [Sicard2006a] E.1”. Ben Dhia “Basic CMOS cell design”. application note. lite version 3. Sicard “Introducing 65-nm technology in Microwind3”. EE. Por ejemplo. Sicard “Introducing 90-nm technology in Microwind3”. Lab for Reliable Computing (LaRC). dos de tales propiedades se describen por las siguientes teoremas: Teorema 1 Un conjunto de vectores de prueba que detecta todas las fallas individuales pegadas-a en todas las entradas principales de un circuito lógico combinacional-fanout libre detectará todos los errores individuales pegadas-en en ese circuito. June 2005 (international edition at McGraw Hill professional series in 2007) [Sicard2005b] E. 2006 [Sicard2006b] E. Teniendo en cuenta el siguiente ejemplo: .microwind. NTHU 2002 [Sicard2005a] E.org . www. ISBN 0-07-0599335. Teorema 2 Un conjunto de vectores de prueba que detectan todos los fallos individuales pegadas-a en todas las entradas principales y todas las ramas fanout de un circuito lógico combinacional detectará todos los errores individuales pegadasen en ese circuito.