El diseño para pruebas o diseño para testabilidad ( DFT ) consiste en técnicas de diseño de circuitos integrados que añaden características de testabilidad al diseño de un producto de hardware. Las características añadidas facilitan el desarrollo y la aplicación de pruebas de fabricación al hardware diseñado. El objetivo de las pruebas de fabricación es validar que el hardware del producto no contenga defectos de fabricación que puedan afectar negativamente al correcto funcionamiento del producto.
Las pruebas se aplican en varios pasos del flujo de fabricación de hardware y, para ciertos productos, también se pueden utilizar para el mantenimiento de hardware en el entorno del cliente. Las pruebas generalmente están impulsadas por programas de prueba que se ejecutan utilizando equipos de prueba automáticos (ATE) o, en el caso del mantenimiento del sistema, dentro del propio sistema ensamblado. Además de encontrar e indicar la presencia de defectos (es decir, la prueba falla), las pruebas pueden registrar información de diagnóstico sobre la naturaleza de las fallas de prueba encontradas. La información de diagnóstico se puede utilizar para localizar la fuente de la falla.
En otras palabras, la respuesta de los vectores (patrones) de un circuito en buen estado se compara con la respuesta de los vectores (que utilizan los mismos patrones) de un DUT (dispositivo bajo prueba). Si la respuesta es la misma o coincide, el circuito es bueno. De lo contrario, el circuito no está fabricado como se pretendía.
La DFT desempeña un papel importante en el desarrollo de programas de prueba y como interfaz para la aplicación de pruebas y diagnósticos. La generación automática de patrones de prueba , o ATPG, es mucho más sencilla si se han implementado reglas y sugerencias DFT adecuadas.
Las técnicas DFT se han utilizado al menos desde los primeros días de los equipos de procesamiento de datos eléctricos/electrónicos. Los primeros ejemplos de la década de 1940/50 son los interruptores e instrumentos que permitían a un ingeniero "escanear" (es decir, sondear selectivamente) el voltaje/corriente en algunos nodos internos en una computadora analógica [escaneo analógico]. La DFT a menudo se asocia con modificaciones de diseño que proporcionan un acceso mejorado a los elementos del circuito interno de modo que el estado interno local se puede controlar ( controlabilidad ) y/o observar ( observabilidad ) más fácilmente. Las modificaciones de diseño pueden ser de naturaleza estrictamente física (por ejemplo, agregar un punto de prueba físico a una red) y/o agregar elementos de circuito activos para facilitar la controlabilidad/observabilidad (por ejemplo, insertar un multiplexor en una red). Si bien las mejoras de controlabilidad y observabilidad para los elementos del circuito interno definitivamente son importantes para la prueba, no son el único tipo de DFT. Otras pautas, por ejemplo, tratan las características electromecánicas de la interfaz entre el producto bajo prueba y el equipo de prueba. Algunos ejemplos son las pautas para el tamaño, la forma y el espaciado de los puntos de prueba, o la sugerencia de agregar un estado de alta impedancia a los controladores conectados a las redes probadas de modo que se mitigue el riesgo de daños por conducción inversa.
A lo largo de los años, la industria ha desarrollado y utilizado una gran variedad de pautas más o menos detalladas y más o menos formales para las modificaciones de circuitos DFT deseadas y/o obligatorias. La comprensión común de DFT en el contexto de la automatización del diseño electrónico (EDA) para la microelectrónica moderna está determinada en gran medida por las capacidades de las herramientas de software DFT comerciales, así como por la experiencia y los conocimientos de una comunidad profesional de ingenieros DFT que investigan, desarrollan y utilizan dichas herramientas. Gran parte del conjunto de conocimientos relacionados con DFT se centra en los circuitos digitales, mientras que la DFT para circuitos analógicos/de señal mixta queda algo relegada.
La DFT afecta y depende de los métodos utilizados para el desarrollo de pruebas, la aplicación de pruebas y el diagnóstico.
La mayoría de las DFT con soporte de herramientas que se practican en la industria hoy en día, al menos para circuitos digitales, se basan en un paradigma de prueba estructural . La prueba estructural no intenta directamente determinar si la funcionalidad general del circuito es correcta. En cambio, intenta asegurarse de que el circuito se haya ensamblado correctamente a partir de algunos bloques de construcción de bajo nivel como se especifica en una lista de conexiones estructural. Por ejemplo, ¿están presentes todas las puertas lógicas especificadas , funcionando correctamente y conectadas correctamente? La estipulación es que si la lista de conexiones es correcta y la prueba estructural ha confirmado el ensamblaje correcto de los elementos del circuito, entonces el circuito debería funcionar correctamente.
Tenga en cuenta que esto es muy diferente de las pruebas funcionales , que intentan validar que el circuito bajo prueba funciona de acuerdo con su especificación funcional. Esto está estrechamente relacionado con el problema de verificación funcional de determinar si el circuito especificado por la lista de conexiones cumple con las especificaciones funcionales, suponiendo que esté construido correctamente.
Una ventaja del paradigma estructural es que la generación de pruebas puede centrarse en probar un número limitado de elementos de circuitos relativamente simples en lugar de tener que lidiar con una multiplicidad de estados funcionales y transiciones de estado que crece exponencialmente. Si bien la tarea de probar una sola puerta lógica a la vez parece simple, hay un obstáculo que superar. En los diseños altamente complejos de hoy, la mayoría de las puertas están profundamente integradas, mientras que el equipo de prueba solo está conectado a las entradas/salidas (E/S) primarias y/o algunos puntos de prueba físicos. Por lo tanto, las puertas integradas deben manipularse a través de capas intermedias de lógica. Si la lógica intermedia contiene elementos de estado, entonces el problema de un espacio de estado que crece exponencialmente y la secuencia de transición de estado crea un problema irresoluble para la generación de pruebas. Para simplificar la generación de pruebas, la DFT aborda el problema de la accesibilidad al eliminar la necesidad de secuencias de transición de estado complicadas cuando se intenta controlar y/u observar lo que sucede en algún elemento interno del circuito. Dependiendo de las opciones de DFT elegidas durante el diseño/implementación del circuito, la generación de pruebas estructurales para circuitos lógicos complejos puede ser más o menos automatizada o autoautomatizada [1] [1] Archivado el 13 de octubre de 2013 en Wayback Machine . Por lo tanto, un objetivo clave de las metodologías DFT es permitir a los diseñadores hacer concesiones entre la cantidad y el tipo de DFT y el costo/beneficio (tiempo, esfuerzo, calidad) de la tarea de generación de pruebas.
Otro beneficio es diagnosticar un circuito en caso de que surja algún problema en el futuro. Es como agregar algunas características o disposiciones en el diseño para que el dispositivo pueda probarse en caso de que surja algún fallo durante su uso.
Uno de los desafíos que enfrenta la industria es mantenerse al día con los rápidos avances en la tecnología de chips (número/tamaño/ubicación/espaciado de E/S, velocidad de E/S, número/velocidad/potencia de circuitos internos, control térmico, etc.) sin verse obligado a actualizar continuamente el equipo de prueba. Por lo tanto, las técnicas de DFT modernas tienen que ofrecer opciones que permitan probar chips y ensamblajes de próxima generación en equipos de prueba existentes y/o reducir los requisitos/costos de nuevos equipos de prueba. Como resultado, las técnicas de DFT se actualizan continuamente, como la incorporación de compresión, para asegurarse de que los tiempos de aplicación del probador se mantengan dentro de ciertos límites dictados por el objetivo de costo para los productos bajo prueba.
En particular, en el caso de las tecnologías de semiconductores avanzadas, se espera que algunos de los chips de cada oblea fabricada contengan defectos que los hagan no funcionales. El objetivo principal de las pruebas es encontrar y separar esos chips no funcionales de los que funcionan completamente, lo que significa que una o más respuestas capturadas por el evaluador de un chip no funcional bajo prueba difieren de la respuesta esperada. Por lo tanto, el porcentaje de chips que no superan la prueba debe estar estrechamente relacionado con el rendimiento funcional esperado para ese tipo de chip. Sin embargo, en la realidad, no es raro que todos los chips de un nuevo tipo que llegan a la planta de pruebas por primera vez fallen (la llamada situación de rendimiento cero). En ese caso, los chips deben pasar por un proceso de depuración que intenta identificar la razón de la situación de rendimiento cero. En otros casos, la falla de la prueba (porcentaje de fallas de la prueba) puede ser mayor de lo esperado/aceptable o fluctuar repentinamente. Nuevamente, los chips deben someterse a un proceso de análisis para identificar la razón de la falla de la prueba excesiva.
En ambos casos, la información vital sobre la naturaleza del problema subyacente puede estar oculta en la forma en que fallan los chips durante la prueba. Para facilitar un mejor análisis, se recopila información adicional sobre los fallos, además de un simple aprobado/reprobado, en un registro de fallos. El registro de fallos normalmente contiene información sobre cuándo (por ejemplo, ciclo del probador), dónde (por ejemplo, en qué canal del probador) y cómo (por ejemplo, valor lógico) falló la prueba. Los diagnósticos intentan derivar del registro de fallos en qué ubicación lógica/física dentro del chip es más probable que haya comenzado el problema. Al ejecutar una gran cantidad de fallos a través del proceso de diagnóstico, llamado diagnóstico de volumen, se pueden identificar los fallos sistemáticos.
En algunos casos (por ejemplo, placas de circuitos impresos , módulos multichip (MCM), memorias integradas o independientes ) puede ser posible reparar un circuito defectuoso que se esté probando. Para ello, el equipo de diagnóstico debe encontrar rápidamente la unidad defectuosa y crear una orden de trabajo para repararla o reemplazarla.
Los métodos de DFT pueden ser más o menos favorables al diagnóstico. Los objetivos relacionados de DFT son facilitar/simplificar la recopilación de datos de fallas y el diagnóstico hasta el punto de permitir la selección inteligente de muestras para el análisis de fallas (FA), así como mejorar el costo, la precisión, la velocidad y el rendimiento del diagnóstico y el FA.
El método más común para enviar datos de prueba desde las entradas del chip a los circuitos internos bajo prueba (CUT, por sus siglas en inglés) y observar sus salidas se denomina diseño de escaneo. En el diseño de escaneo, los registros ( flip-flops o pestillos) en el diseño están conectados en una o más cadenas de escaneo , que se utilizan para obtener acceso a los nodos internos del chip. Los patrones de prueba se desplazan a través de la(s) cadena(s) de escaneo, se pulsan señales de reloj funcionales para probar el circuito durante el(los) "ciclo(s) de captura" y luego los resultados se desplazan a los pines de salida del chip y se comparan con los resultados esperados de "buena máquina".
La aplicación directa de técnicas de escaneo puede generar grandes conjuntos de vectores con los correspondientes requisitos de memoria y tiempo de prueba prolongados. Las técnicas de compresión de pruebas abordan este problema descomprimiendo la entrada de escaneo en el chip y comprimiendo la salida de prueba. Es posible obtener grandes ganancias ya que cualquier vector de prueba en particular generalmente solo necesita configurar y/o examinar una pequeña fracción de los bits de la cadena de escaneo.
La salida de un diseño de escaneo se puede proporcionar en formatos como el formato vectorial en serie (SVF), para que lo ejecute el equipo de prueba.
Además de ser útiles para la fabricación de pruebas de "funcionamiento/no funcionamiento", las cadenas de escaneo también se pueden utilizar para "depurar" diseños de chips. En este contexto, el chip se pone a prueba en "modo funcional" normal (por ejemplo, un chip de computadora o de teléfono móvil podría ejecutar instrucciones en lenguaje ensamblador). En cualquier momento, el reloj del chip se puede detener y el chip se puede reconfigurar en "modo de prueba". En este punto, se puede descargar todo el estado interno o configurarlo en cualquier valor deseado mediante el uso de las cadenas de escaneo. Otro uso del escaneo para ayudar a la depuración consiste en escanear en un estado inicial todos los elementos de memoria y luego volver al modo funcional para realizar la depuración del sistema. La ventaja es llevar el sistema a un estado conocido sin pasar por muchos ciclos de reloj. Este uso de las cadenas de escaneo, junto con los circuitos de control de reloj, son una subdisciplina relacionada del diseño lógico llamada "Diseño para depuración" o "Diseño para depurabilidad". [2]