Вы находитесь на странице: 1из 16

138 Electrnica Digital

25 TEST DE CIRCUITOS INTEGRADOS 25.1. El test como ltima etapa del proceso de fabricacin
25.1. El test como ltima etapa del proceso de fabricacin
El test de un circuito integrado es la comprobacin, posterior a la fabricacin del
25.2. Modelo de fallos para el test mismo, que garantiza que el circuito se ha fabricado bien; tiene que garantizar que todas
25.3. Anlisis de fallos y simulacin de fallo las celdas que configuran el circuito han sido integradas correctamente de forma que el
25.4 . Test de circuitos secuenciales resultado fsico coincide con el esquema circuital resultante del diseo.
25.5 . Test de placas y de sistemas completos
El test no puede plantearse desde la funcionalidad del circuito sino desde su
25.6. Test interno
configuracin fsica; no es una simulacin de su comportamiento respecto a las
El test es el procedimiento que se aplica a cada circuito integrado, al culminar el especificaciones que se pretenden, sino una verificacin de su realidad fsica interna.
proceso de fabricacin, para comprobar que dicho ejemplar (cada chip individual) se ha Tngase en cuenta que el resultado de la fabricacin para cada circuito integrado
fabricado bien, es decir, para verificar que el resultado de la fabricacin (en ese integrado individual (para cada uno de los muchos chips que se fabrican en una sola oblea) es
particular) es correcto; el resultado del test es binario: incierto; basta una microscpica partcula de polvo, una irregularidad en la superficie de
S : el ejemplar es correcto, se encapsula y da lugar a un circuito integrado disponible la red cristalina de la oblea, un fallo en el proceso litogrfico de reproduccin de las
para ser utilizado. mscaras sobre la oblea, etc.,... para que un transistor no se construya y el circuito
resultante sea errneo.
No : tal ejemplar ha resultado mal fabricado y se desecha.
El test se realiza sobre la propia oblea, previamente a la etapa de corte y separacin
En el caso de un circuito integrado muy pequeo, el test puede hacerse probando todas de los numerosos chips que contiene, mediante costosas mquinas de test que activan los
las situaciones del mismo: todos los vectores de entrada posibles, junto con todos los terminales (PADs) de entrada del circuito integrado, con un conjunto de vectores de
estados si el circuito es secuencial. Pero en circuitos de tipo medio o grandes este tipo de entrada sucesivos (secuencia de vectores de test), y observan los terminales de salida,
comprobacin no es factible pues se necesitaran aos para ella (un simple sumador de comparando los vectores de salida con la secuencia de resultados correctos. De forma que
nmeros de 26 dgitos precisa de ms de un siglo, a una velocidad de 106 vectores/seg). cada vector de test ha de incluir ambas partes: entradas y salidas:
Vector de test = { vector de entrada, vector de salida }
Y, sin embargo, es necesario comprobar que cada una de las celdas (cada puerta, cada
biestable) se ha fabricado bien. Para ello se han desarrollado modelos de test que Los vectores de test han de permitir controlar, desde las entradas del circuito
permiten identificar los fallos posibles, encontrar los vectores que detectan dichos fallos y integrado, cada uno de los nudos booleanos internos del circuito (para situarlos a valor
conocer qu fallos detecta cada vector de test. 0 y a valor 1) y observar, desde las salidas del integrado, el estado booleano de cada
uno de dichos nudos; de esta forma, podremos comprobar que cada celda bsica est en su
En el caso de circuitos secuenciales, la extraordinaria complejidad que implica controlar sitio y acta correctamente.
y observar el estado del circuito se resuelve aadiendo (en cada biestable) circuitera
especfica para el test; creando un camino de exploracin (scan path) que permita El test se ejecuta posicionando automticamente un conjunto de puntas o sondas
de la mquina de test sobre los puntos de soldadura (PADs) terminales del chip que,
establecer, directamente sobre los biestables, el estado que se desee y observar directamente
posteriormente, se conectarn a los terminales (pines) del encapsulado. Se dispone para el
el estado anterior.
test solamente de los terminales (entrada/salida) del circuito integrado, sin poder actuar
Esta tcnica de scan path ha resultado tan simple y til que ha sido extendida al test sobre nudos internos.
de placas circuitales (test de conjuntos de circuitos integrados y de las pistas de El test se aplica globalmente sobre el circuito integrado completo; aun ms, sobre
interconexin de los mismos) y al test de sistemas digitales completos. el circuito encapsulado, es decir, siendo accesibles solamente los terminales (PADs) del
circuito: se dispone nicamente de las entradas fsicas del circuito (PADs de entrada),
Asimismo, la incorporacin de circuitera aadida para el test permite la realizacin del
para actuar sobre el mismo (vectores de entrada), y de sus salidas fsicas (PADs de salida),
mismo en el interior del propio circuito integrado: test interno. Sencillos algoritmos de test de para observarlo.
memorias (BIST), registros realimentados para generacin aleatoria de vectores de test
(LFSR), compactacin en una sola palabra de los resultados del test (FIRMA) y Adems, es preciso minimizar el tiempo de utilizacin de la mquina de test, debido
aprovechamiento conjunto de LFSR y FIRMA para ejecucin del test, son mecanismos de al elevado coste de tales equipos.
test interno que requieren aadidos circuitales relativamente pequeos. Ello simplifica el
proceso de comprobacin de la fabricacin y, adems, ofrece la posibilidad de verificar el
integrado posteriormente, en el sistema digital del que forma parte.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. tpollan@posta.unizar.es
25. Test de circuitos integrados 139 140 Electrnica Digital

Por ello, el test presenta los siguientes inconvenientes: La magnitud del problema del test (puesta de manifiesto en los ejemplos anteriores,
1. Hay que comprobar todos y cada uno de los circuitos integrados: mientras que el que, tambin, ponen en evidencia el mayor grado de complejidad que presentan los
proceso de fabricacin opera sobre mltiples obleas a la vez y cada oblea contiene un sistemas secuenciales), hace necesaria la utilizacin de modelos de fallos que permitan:
amplio nmero de circuitos (es decir, centenares o miles de chips en cada hornada), a) determinar con precisin los fallos posibles y contar su nmero,
el test ha de aplicarse individualmente a cada uno de ellos. b) encontrar vectores de test para cada fallo,
2. Un circuito integrado tiene muchos componentes (transistores) configurando una red c) conocer qu fallos detecta cada vector de test,
con muchos nudos: todos ellos han de ser comprobados, pero el nmero de nudos
accesible para el test es muy reducido, se dispone solamente de las entradas y salidas y d) calcular la cobertura de fallos, es decir, el conjunto de fallos que pueden ser
globales del circuito integrado. detectados por un conjunto dado de vectores de test.
3. La secuencia de vectores de test no puede ser excesivamente larga porque ello En la prctica, se utiliza el modelo de fallos por bloqueo stuck-at cuya justificacin y
supondra un tiempo de mquina de test muy prolongado y repercutira gravemente en descripcin se detallan en el apartado siguiente.
el coste del circuito.
Ahora bien, en los razonamientos anteriores nos hemos referido solamente a uno de
En suma, muchos circuitos integrados y muchos nudos (en cada uno de ellos) a los aspectos del test de circuitos integrados digitales: el aspecto funcional-booleano:
comprobar y, en cambio, pocos nudos accesibles y relativamente pocos vectores de test a comprobar que cada celda bsica est en su sitio (es decir, en sus salidas realiza la funcin
utilizar. Como respuesta a estos inconvenientes, hay que desarrollar metodologas de test booleana correspondiente) y adecuadamente conectada (ya que el resultado de dicha
y de diseo orientado al test que permitan superarlos. funcin se detecta en el nudo adecuado, tras haber actuado a travs de los nudos que
corresponden a sus entradas).
Cuantifiquemos un poco la magnitud y complejidad del test:
Existe un segundo aspecto que tambin debera ser objeto de test: el comportamiento
Cmo estar seguros de que un circuito integrado se ha fabricado bien? Una
temporal, referido a los tiempos de propagacin (y de anticipacin y mantenimiento),
primera respuesta podra ser: probando todas y cada una de sus posibilidades.
comprobando que tales tiempos coinciden con (o no son peores que) los estimados.
En el caso de un circuito combinacional, el nmero de posibilidades es sencillo: si
En la prctica, el test temporal no se realiza en forma individualizada sobre cada chip
cuenta con m entradas, las situaciones posibles son 2m (que conforman su tabla de sino que se supone que si un transistor ha sido fabricado en su sitio sus caractersticas
verdad). Por ejemplo, un sumador de nmeros de 16 bits cuenta con 32 entradas que coinciden con las previstas.
suponen 232 situaciones posibles, es decir, unos 4.300 millones de vectores de test que
necesitan ms de 1 hora, a una velocidad de un milln de vectores por segundo. Para tener una cierta garanta de ello suele realizarse un test global de fabricacin: en
Realmente se consiguen mayores velocidades de test, ~ 107 vectores/s, que suponen unos la oblea se incluyen, aparte de los mltiples circuitos integrados iguales (chips), una serie
7 minutos de test, que sigue siendo un tiempo alto para un simple sumador de 16 dgitos; de componentes electrnicos de tipo simple (resistencias, capacidades, uniones, PN,
un sumador de 32 bits, 264 posibilidades, necesita cerca de 600 siglos de test (a 107 v/s). transistores individuales,...) cuyas caractersticas se miden (generalmente en unas pocas
obleas de cada hornada) para comprobar que el proceso de fabricacin ha sido correcto,
En el caso de circuitos secuenciales, la magnitud del problema crece an mucho es decir, ha construido componentes de las caractersticas elctricas previstas. Es pues un
ms, por dos razones que se suman recprocramente: test de calidad del proceso de fabricacin, anlogo al que se realiza en otros tipos de
- los estados aaden posibilidades en progresin geomtrica: procesos de fabricacin, tomando varias muestras al azar y comprobando en detalle sus
caractersticas.
m entradas n biestables = 2n estados 2m x 2n posibilidades = 2m+n
Por ejemplo: con 16 entradas y 32 biestables, 248 posibilidades, unos 100 billones, que, a
107 vectores/s, suponen ms de 4 meses dedicados al test.
- el orden de los vectores de entrada influye decisivamente:
Para conseguir cada estado en el conjunto de biestables, es necesaria una secuencia
de vectores de entrada adecuada. Para verificar cada posibilidad no basta un solo vector
de entrada sino que hay que conseguir llevar a los biestables al estado deseado, mediante
una secuencia de vectores de entrada; esto no slo aumenta el nmero de vectores de test,
sino que requiere encontrar tal secuencia, lo cual no es obvio.
25. Test de circuitos integrados 141 142 Electrnica Digital

25.2. Modelo de fallos para el test 3. Para cada nudo se consideran como fallos posibles solamente dos:
Definir los fallos posibles en un circuito integrado es tarea ardua y compleja; las - que el nudo est bloqueado a 0 STUCK-AT-0
posibilidades son enormes: - que el nudo est bloqueado a 1 STUCK-AT-1
- en principio los circuitos integrados digitales en tecnologas MOS estn compuestos ("stuck" es el participio del verbo "to stick": clavar, pegar, adherir ...).
por transistores MOS conectados entre s;
4. Cada nudo ha de ser comprobado dos veces, para asegurar que no se encuentra
- en cuanto a los transistores puede haber fallos por quedar cortocircuitadas dos de sus bloqueado a 0 ni a 1.
cuatro regiones constitutivas: fuente, drenaje, puerta y substrato, o por quedar en
circuito abierto (o no haberse formado, lo cual es lo mismo) la fuente, el drenaje o la 5. El no-bloqueo (la puesta a 1 y a 0) de cada entrada (nudo interior) ha de ser
puerta; detectado pasando a travs de la celda bsica a la que corresponde dicha entrada, es decir,
- respecto a las conexiones puede darse el caso de pistas rotas, pistas interconectadas para cada celda bsica ha de verificarse el paso de un 1 y el de un 0 desde cada una de sus
entre s (puenteadas), etc; entradas; adems, ha de verificarse la posibilidad de 1 y de 0 para cada salida del circuito.
- ... 6. Se supone que en el circuito no se presentan mltiples fallos que se compensen
entre s: hiptesis de fallo nico en el circuito; en realidad lo que se supone es que si un
Para poder manejar tan gran nmero de posibilidades es precisa una fuerte vector de test es capaz de detectar un fallo individual, dicho vector detecta siempre dicho
simplificacin, se requiere un modelo simplificado de fallos. fallo, es decir, no se da el caso de que el fallo quede enmascarado (compensado) por otros
Un modelo de fallos muy simple pero que ha dado excelentes resultados y es el que fallos que tengan lugar a la vez.
se utiliza actualmente en la fabricacin industrial es el modelo de fallos por bloqueo, el Las simplificaciones que introduce este modelo (en particular, las hiptesis de solo
cual admite solamente dos posibilidades de fallo: stuck-at-0 (bloqueo a 0) y stuck-at-1 dos tipos de fallos y de fallo nico en el circuito) son muy fuertes y es obvio que no
(bloqueo a 1) y supone las siguientes hiptesis: asegura, en principio, la deteccin de todas las posibilidades de fallo. Sin embargo, el
1. Se consideran como elementos componentes del circuito las celdas bsicas modelo se ha mostrado muy eficaz en su utilizacin prctica y es, hoy por hoy, el nico
(celdas estndar con las que se efecta el diseo: puertas, biestables,...) y se utiliza la que se emplea a nivel industrial; ha demostrado que detecta un porcentaje muy alto
net-list (lista de conexiones del circuito) configurada por dichas celdas bsicas. (aunque no todos) de los fallos posibles y se ha comprobado que, efectivamente, sirve
para asegurar que un circuito integrado ha sido fabricado bien.
2. Se consideran como nudos todas y cada una de las entradas a las celdas bsicas
y, adems, las salidas del circuito. Habida cuenta que cada nudo se comprueba dos veces (bloqueos a 0 y a 1), que se
consideran como nudos independientes cada una de las entradas a las celdas bsicas y por
Por ello, estos nudos a efectos de test no coinciden exactamente con los nudos cada una de dichas celdas se hace pasar un 0 y un 1 desde cada una de sus entradas
topolgicos del circuito, sino que cada nudo elctrico ha de ser desplegado en varios, (detectando especficamente dicho paso), es sumamente probable que un test completo
tantos como entradas a las que est conectado. De forma que el nmero de nudos a efectos conforme al modelo stuck-at detecte cualquier fallo resultante del proceso de fabricacin.
de test es muy superior al nmero de nudos de la net-list SPICE.
El modelo stuck-at es capaz de detectar los siguientes fallos:
Por ejemplo, el nudo A de la figura siguiente ha de ser contabilizado como tres nudos - un cortocircuito entre dos terminales de un transistor MOS generalmente equivale a un
(1, 2 y 3), ya que conecta con 3 entradas. stuck-at;
1 - un transistor MOS en circuito abierto en muchas ocasiones ser detectado como stuck-
at; en este caso, el orden de los vectores de test influye en la deteccin del fallo pues
generalmente la salida de la correspondiente puerta lgica depende del anterior valor
2
de salida (que se conserva capacitivamente) [Se ha desarrollado un modelo de fallos
A
stuck-open para tratar los correspondientes a circuitos abiertos, basado en detectar las
transiciones (de 0 a 1 y de 1 a 0) pero requiere un nmero de vectores mucho mayor
3 que el stuck-at porque es preciso detectar cada nudo en valor 0 y de detectar su paso a
1 y viceversa.];
- lo mismo podra decirse de pistas cortadas;
25. Test de circuitos integrados 143 144 Electrnica Digital
- la interconexin entre pistas (bridging: puentes) no es detectada directamente, pero - una puerta "y", para dejar pasar D desde una entrada, requiere que el resto se
habida cuenta que ha de verificarse el no-bloqueo a 0 y a 1 de cada una de ellas (al encuentre a 1 y la salida ser D; cuando D sea 0, y = 0 detecta solamente no-
menos 4 pruebas) y que dicha verificacin se hace varias veces en el caso de estar bloqueo a 1 de dicha entrada, pero cuando D sea 1, y = 1 detecta no-bloqueo a 0
unidas a ms de una entrada es muy probable que tal fallo se detecte (existen tambin de todas las entradas:
modelos de fallos por puentes); 1
D **
- algo parecido puede decirse de los fallos mltiples: en principio se encuentran D
1
excluidos del modelo pero es sumamente probable que alguno de ellos sea detectado, 1
en alguna de las mltiples veces que los vectores de test observan los nudos
afectados por tales fallos (tngase en cuenta que carece de inters conocer si hay ms D=0 y = 0 no-bloqueo a 1 de la entrada **
de un fallo: basta uno de ellos para que el circuito sea errneo y deba ser desechado). D=1 y = 1 no-bloqueo a 0 de ninguna entrada.
- el modelo para puertas "o-negada" Nor e "y-negada" Nand es el siguiente:
La deteccin de un fallo presenta dos aspectos complementarios:
0 1
a) el CONTROL del correspondiente nudo desde las entradas del circuito integrado 0 D **
para situarlo en el valor booleano adecuado (el que demuestra que el nudo no est D ** D 1 D
bloqueado, es decir, el contrario al bloqueo que se investiga) 0 1
b) la OBSERVACIN del valor booleano presente en dicho nudo desde las salidas
- la puerta "o-exclusiva" presenta dos posibilidades:
del circuito, pasando a travs de la celda bsica a la que pertenece el nudo como entrada
de la misma. 0 1
D D D
D
En la observacin hay que pasar a travs de las celdas bsicas hacia adelante hasta
llegar a las salidas; en el control hay que pasar tambin a travs de las celdas bsicas pero
hacia atrs (de las salidas hacia las entradas) hasta llegar a las entradas del circuito.
25.3. Anlisis de fallos y simulacin de fallos
Para realizar este paso a travs de las celdas bsicas se utiliza un modelo de
fallos de cada celda que permite razonar cul debe ser el valor booleano de todas sus 25.3.1. Generacin de vectores de test: anlisis de fallos
entradas para atravesar la celda y, tambin, qu bloqueos detecta en cada caso:
Para detectar un fallo es preciso encontrar un vector de test capaz de:
- denotemos con D el valor booleano que debe atravesar la celda (D ser el valor a) controlar el nudo correspondiente, es decir, actuar sobre dicho nudo desde las
presente en el nudo que estamos considerando: D = 1 para investigar bloqueos a 0 y entradas de forma que adquiera el valor booleano deseado;
D = 0 para tratar los bloqueos a 1);
b) observar dicho nudo, es decir, establecer a partir del mismo un conjunto de
- una puerta "o", para que pase D desde una de sus entradas, ha de tener el resto de valores sobre los nudos que interaccionan posteriormente con l, de forma que el valor
ellas a 0 y la salida ser D; cuando D sea 0, la salida y = 0 detecta no-bloqueo a 1 booleano de una salida sea diferente en el circuito con fallo en relacin con el correcto.
en todas las entradas, cuando D sea 1, la salida y = 1 detecta solamente no-
bloqueo a 0 en dicha entrada D: La parte a (control), se consigue llevando hacia atrs los valores booleanos
desde el nudo considerado hacia las entradas, lo cual, en principio, siempre es posible (en
0 un circuito combinacional). La parte b (observacin) trata de llevar hacia adelante el
0 valor booleano del nudo hacia las salidas, imponiendo en el resto de los nudos que
** D
D
0
influyen sobre este camino hacia adelante el valor booleano que permita distinguir el
valor que est pasando; ello no siempre es posible pues puede haber problemas de
D=0 y = 0 no-bloqueo a 1 de ninguna entrada compatibilidad entre los valores booleanos de unos nudos y otros, habida cuenta de que
todos ellos han de ser impuestos desde las entradas del circuito.
D=1 y = 1 no-bloqueo a 0 de la entrada **.
La parte b (observacin) ha de aplicarse antes que la a ya que determina valores
booleanos en otros nudos internos del circuito que, posteriormente (parte a: control),
han de ser llevados (todos ellos, adems del correspondiente al nudo objeto de
investigacin) hacia las entradas.
25. Test de circuitos integrados 145 146 Electrnica Digital

Se demuestra que, en el modelo de fallos por bloqueo STUCK-AT, si el circuito es Efectuemos el anlisis de fallos del circuito anterior, respecto al nudo 7:
combinacional y no contiene redundancias todos los fallos son testeables: para cada 10
fallo existe un vector de test que, actuando desde la entradas del circuito, diferencia el d0
comportamiento del circuito con y sin fallo, produciendo salidas distintas en ambos casos. c1 21

El empleo de la notacin D (D = 1 para investigar bloqueos a 0, D = 0 para los bD 3D 9 D 10 D


bloqueos a 1) permite encontrar, a la vez, los vectores de test para ambos bloqueos de un
7 D Ysegmento f
4
nudo dado. El proceso de obtencin de los vectores de test para un determinado nudo se a1 1
realiza mediante el siguiente esquema procedimental, denominado D-algoritmo: 5 1
6
8 0
1. se asigna el valor D al nudo a testear; D
2. a partir de dicho nudo y pasando por la correspondiente celda bsica se lleva D
hacia una salida asignando valores booleanos adecuados a los nudos de las puertas 1 asignamos D a 7;
por las que se pasa; 2 observacin: nudo 2 a 1; nudo 9 a D, nudos 1 y 8 a 0, 10 a D;
3. el valor D y el resto de los valores booleanos asignados se llevan hacia las entradas. 3 control: nudo 1 a 0 (por tanto, entrada D = 0); nudo 2 a 1 ( entrada C = 1);
Para ejecutar los pasos 2 y 3 (consistentes en atravesar hacia adelante y hacia nudo 7 a D y, para ello, nudo 3 a D y nudo 4 a 1 (entradas B = D y A = 1);
atrs, respectivamente, las celdas bsicas) se utilizan los modelos de fallos de las nudo 8 a 0, lo cual es correcto ya que entrada A = nudo 6 = 1.
correspondientes celdas. En todo caso, es preciso tener bien presente la hiptesis de vectores de test: 01 D 1 0101 D = 1 : detecta bloqueo a 0 en el nudo 7
fallo nico en el circuito: si en el circuito existe un fallo, ste es nico (se desecha la
posibilidad de que se produzca un segundo fallo que compense el primero). 0111 D = 0 : detecta bloqueo a 1 en dicho nudo.

El D-algoritmo resulta fcilmente programable (de hecho, existen varios algoritmos Cuando en el circuito hay redundancia, o sea, cuando es posible simplificar la
equivalentes desarrollados en detalle para su programacin), lo cual permite la generacin funcin y eliminar algunas de las puertas que configuran el circuito los nudos afectados
automtica de vectores de test (ATPG). por la redundancia no son testeables, es decir, no es posible encontrar un vector de test
que diferencie el circuito con y sin fallo. Lo cual es consecuencia de que el valor
Ejemplo de aplicacin manual del D-algoritmo booleano de tales nudos no determina por s mismo el valor de las salidas, al existir
caminos lgicos redundantes.
Consideremos el caso de una simple funcin booleana, la correspondiente a la
activacin del segmento f de un conversor BCD a 7 segmentos, expresada en la siguiente Por ejemplo, si en el circuito anterior cambiamos la puerta "o-negada" por una "o":
forma algebraica: d
1

Ysegmento f = d + c.b + c.a + b.a = d + c.(b a) + (ba) c


2

1 3 9 10
d b 7 Y
2 4
c a
5
8
3 9 10
b 7 Ysegmento f 6

4
a 1 nudo 7 a D;
5
8 2 observacin: nudo 2 a 1; nudo 9 a D, nudos 1 y 8 a 0, nudo 10 a D;
6
3 control: para que el nudo 8 se site a 0 se requiere que los nudos 5 y 6 estn a 0;
A efectos de test el circuito presenta 10 nudos, tal como han quedado numerados en cambio para que el nudo 7 se site a D es preciso o bien que el nudo 3 est a D y
en la figura; por tanto, el nmero de fallos posibles es de 20: 10 bloqueos a 0 y 10 el 4 a 1 o sino que el nudo 3 est a 1 y el nudo 4 a D o que ambos nudos 3 y 4 estn
bloqueos a 1. a D;
25. Test de circuitos integrados 147 148 Electrnica Digital
10
d0 Por ejemplo, recordando el modelo de fallos de las puertas "o" e "y":
c1 21 - una puerta "o" con salida 0 detecta cualquier bloqueo a 1 en cualquiera de sus
entradas; dicha puerta "o" con salida 1 solamente es capaz de detectar el bloqueo a 0
b ? 3D 9D 10 D
7 D Ysegmento f de una de sus entradas y ello con la condicin de que el resto de ellas est a 0;
a ?
4
1 - una puerta "y" con salida 1 detecta bloqueo a 0 en cualquier entrada y con salida 0
5 0 8 0 slo es capaz de detectar el bloqueo a 1 de una de sus entradas y con la condicin de
6
0 que el resto de ellas se encuentre a 1;
Como los nudos 3 y 6 han de tener el mismo valor booleano y lo mismo sucede con En el ejemplo anterior (segmento f de un conversor BCD a 7 segmentos):
los nudos 4 y 5, para D = 0 tales condiciones (nudos 3 y 4 a 1 y nudos 5 y 6 a 0) son - el vector de entrada 0101 es capaz de detectar bloqueo a 0 en los nudos 10, 9, 2, 7
incompatibles entre s; para D = 0, si existe vector de test, ya que corresponde a los 4 y bloqueo a 1 en el nudo 3;
nudos (3, 4, 5 y 6) a 0: 10
d0
- el vector 0100 detecta el bloqueo a 0 del nudo 7;
c1 21
- pero, en cambio, ningn vector es capaz de detectar el bloqueo a 1 del nudo 7.
b0 3 0 9 1 10 1
7 1 Ysegmento f
Ello es debido a que la funcin contiene redundancia, como se demuestra al 4
a1 1
simplificarla: Y' = d + c.(b a) + (b + a) = d + c + b + a . 5 1
6
8 0
1 0
d
2 - el vector de entrada 0111 es capaz de detectar bloqueo a 1 en los nudos 10, 1, 9, 8, 7
c
6 y bloqueo a 0 en los nudos 3 y 4.
b 3 Y
5 10
4 d0
a
c1 21

Las puertas "y-negada" e "y" son redundantes y pueden eliminarse. b1 3 1 9 0 10 0


7 0 Ysegmento f
4
Por tanto, en relacin con el test, interesa evitar toda redundancia circuital: en a1 1
ocasiones se ha recomendado introducir redundancia en el diseo de circuitos 5 1 8 0
6
combinacionales para eliminar espurios (glitches) debidos a la conmutacin de las 1
puertas (a sus tiempos de propagacin); esto resulta nefasto para el test: los glitches deben
ser evitados a travs de un diseo adecuadamente sncrono. Bastan los dos vectores obtenidos para testear el nudo 7 (01 D 1) para conseguir una
cobertura de test del 60 % (12 fallos/20 posibles).
25.3.2. Cobertura de test: simulacin de fallos Siempre sucede que los primeros vectores de test detectan muchos fallos pero, a
No es preciso utilizar un vector de test para cada uno de los fallos posibles, pues un medida que se aaden nuevos vectores para aumentar la cobertura de test, stos detectan
mismo vector de test sirve para detectar varios fallos a la vez. muy pocos fallos nuevos.

Por eso, una vez obtenido un vector de test conviene averiguar qu fallos es capaz de
detectar. Esta operacin se denomina simulacin de fallos y se realiza yendo desde las
salidas del circuito hacia las entradas y deduciendo, para cada celda bsica a partir de su
modelo de fallos, los fallos que son detectables en las entradas de dicha celda.
25. Test de circuitos integrados 149 150 Electrnica Digital
En este ejemplo (segmento f ), para una cobertura de fallos completa (100 %) son Otro ejemplo de bsqueda de vectores de test
necesarios los siguientes vectores (en la tabla que sigue se indican, para cada vector de 1
D 9
entrada, los fallos que son detectados por dicho vector; se sealan con # los nuevos
fallos y con * los fallos que ya han sido detectados por vectores anteriores): 2

bloqueos a 0 bloqueos a 1 C
7
10 12
nudos : 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
8
vector 0101 # # # # # 25 %
3
B 11
vector 0111 # # # # # # # 60 %
4
vector 0000 # * # # 75 %
5
vector 0001 # * # * * * 85 % A

6
vector 0010 # * * * * * 90 %
El circuito tiene 12 nudos a efectos de test: son posibles 24 fallos: 12 bloqueos a 0
vector 0110 * * * * # 95 % y otros 12 bloqueos a 1.
vector 1010 # * 100 % 1. Comenzamos por el nudo 1 y buscamos su vector de test
en total se necesitan 7 vectores de test para un test completo del circuito. vector de test para el nudo 1: D000
ste es el procedimiento comn para generar los vectores de test: a) el vector 0000 detecta bloqueo a 1 en los nudos: 1, 2, 9 y 12
- se escoge un subconjunto inicial de vectores de test: tal subconjunto puede ser el de b) el vector 1000 detecta bloqueo a 0 en los nudos: 1, 8, 9, 10, 11 y 12
los vectores correspondientes a una simulacin funcional del circuito (conjunto de
y detecta bloqueo a 1 en los nudos: 3, 4 y 7
vectores que habremos utilizado en el proceso de diseo para verificar que el circuito
diseado es correcto) o bien, sencillamente, un conjunto de vectores generados al azar La cobertura de test conseguida con ambos vectores superior al 50 %: 13 / 24
(mtodo que suele dar muy buenos resultados para el test);
2. Tomando un segundo nudo, no cubierto por los anteriores vectores, por ejemplo el
- mediante simulacin de fallos se averigua qu fallos son detectados por dichos nudo 5, buscamos su vector de test
vectores y cules no;
vector de test para el nudo 5: 01D1
- mediante anlisis de fallos se obtienen nuevos vectores para fallos an no cubiertos;
a) el vector 0101 detecta bloqueo a 0 en los nudos: 2, 4 y 7
- se reitera la simulacin de fallos y se repite el proceso hasta que se consigue un grado
de cobertura adecuado (a ser posible el 100 %). y detecta bloqueo a 1 en los nudos: 5 y 8
b) el vector 0111 detecta bloqueo a 0 en los nudos: 5 y 6
En los ASICs digitales, los vectores de test son la referencia legal entre fabricante
y cliente: el fabricante se compromete a que cada uno de los circuitos integrados que y detecta bloqueo a 1 en los nudos: 11
suministra verifica los vectores de test (la secuencia de vectores de test) aceptados por La cobertura de test conseguida es cercana al 90 %: 21 / 24. Solamente quedan
ambos (son objeto de firma especfica en el contrato) y el cliente no puede exigirle por detectar el bloqueo a 0 del nudo 3 y los bloqueos a 1 de los nudos 6 y 25.
legalmente otra cosa sino el cumplimiento de los vectores de test.
3. Buscamos el vector de test que detecta el bloqueo a 0 del nudo 3: 1010
Los fabricantes de ASICs suelen exigir, como condicin previa, una cobertura de test
dicho vector 1010 detecta bloqueo a 0 en el nudo: 3
cercana al 100 % (en muchos casos, cobertura total), a fin de poder comprobar con
adecuadas garantas los circuitos integrados resultantes de la fabricacin. y detecta bloqueo a 1 en el nudo: 10
Adems, el fabricante seala un lmite en el nmero de vectores test, a fin de que el Con ello, la cobertura de test alcanzada es superior al 95 %: 23 / 24
tiempo de utilizacin de la mquina de test para cada chip no sea muy alto (y, en 4. Buscamos el vector de test que detecta el bloqueo a 1 del nudo 6: 1110
consecuencia, costoso). Generalmente el nmero mximo de vectores de test suele ser del
orden de 64K o de 256K; el cliente puede solicitar la utilizacin de mayor nmero de dicho vector 1110 completa el 100 % de cobertura de test del circuito.
vectores de test, pero ello repercutir en el precio por unidad del circuito integrado.
25. Test de circuitos integrados 151 152 Electrnica Digital

Los vectores utilizados en la simulacin funcional, a lo largo del proceso de diseo, 25.4. Test de circuitos secuenciales
suelen proporcionar una cobertura de test entre el 60 % y el 80 %, segn los casos;
adems, gran parte de ellos son redundantes respecto al test, no aumentan la cobertura que Los circuitos combinacionales presentan, en relacin con el test, la ventaja de que el
ya realizan los dems: el problema del test no se reduce al de la simulacin funcional. orden de los vectores no afecta a la comprobacin de los fallos; en cambio, en los
circuitos secuenciales el orden de los vectores de test es transcendental: los valores
A lo largo de este apartado (y tambin en el anterior), al hablar de vectores de test booleanos de los nudos del circuito no dependen solamente del vector de entrada, sino
puede parecer que solamente se hace referencia a vectores de entrada para el test; debe tambin del estado (interno) del circuito, es decir, del conjunto de valores almacenados en
tenerse siempre presente que un vector de test ha de incluir ambas partes: los biestables contenidos en l.
{vector de entrada, vector de salida}; no slo es preciso activar adecuadamente las
entradas del circuito, sino, tambin, comparar los valores de las salidas con los que En un circuito secuencial, para imponer un determinado valor en un nudo, no basta
corresponden a un circuito correcto (bien fabricado). con un vector de entrada, sino que es necesaria una secuencia adecuada de tales vectores.
Ello aumenta, en gran medida, el nmero de vectores de entrada necesarios para el test y,
lo que es mucho peor, aumenta extraordinariamente la complejidad de la obtencin de
25.3.3. Diseo orientado al test dichos vectores de test; no hay una solucin general que permita obtener la secuencia de
Aunque la aplicacin efectiva de los vectores de test la realiza el fabricante (la vectores de test necesaria para detectar el bloqueo de un determinado nudo.
ejecuta la mquina de test sobre cada uno de los chips obtenidos en el proceso de Por ejemplo, en un contador compuesto por 20 biestables, para analizar el bloqueo a
integracin), la obtencin de los vectores de test es responsabilidad del diseador y debe 0 del ms significativo de ellos es preciso realizar el contaje de 219 unidades, es decir,
constituir un punto de referencia de todo el proceso de diseo: es necesario disear para el ms de medio milln de ciclos de reloj (el doble en cuanto a vectores de entrada) para
test. llegar a establecer un 1 en dicho biestable.
El diseo condiciona el test y, sobre todo, puede facilitarlo en gran manera. No basta Imaginemos la complejidad que presenta un circuito de control con varios
un diseo funcional sino que hay que efectuar, a la vez, un diseo para el test y, en la contadores, diversos registros y algunos grafos de estado entrelazados mutuamente:
prctica, los aspectos relativos al test pueden resultar ms difciles y complejos que el intentar imponer valores booleanos determinados sobre un conjunto de nudos internos que
propio diseo funcional. Ya hemos comentado que la redundancia da lugar a nudos no dependan de tales bloques (y, adems, hacerlo desde las entradas del circuito que, en
testeables: ha de evitarse toda redundancia, lo cual queda asegurado si los procesos de principio, no conectarn directamente con ellos) es, sin duda, una labor ardua y, en
simplificacin se realizan bien. muchos casos, inabordable.
Por otra parte, comprender bien la dinmica del test permite definir estrategias que
facilitan el test: el test se basa en controlar desde las entradas y en observar desde las En los circuitos secuenciales el problema del test no puede ser abordado a posteriori,
salidas los nudos internos del circuito. Por ello interesa aumentar la observabilidad y la sino que ha de ser un condicionante bsico del diseo, desde el inicio del mismo: es
controlabilidad del circuito, facilitar el control y la observacin de los nudos del circuito: indispensable un diseo orientado al test y desde tal perspectiva (disear para el test) no
resulta difcil llevar a cabo un diseo bien estructurado y obtener la correspondiente
- el aumento del nmero de salidas: conectar nudos internos del circuito a salidas secuencia de vectores de test para el mismo.
adicionales del mismo; lo cual se puede conseguir fsicamente, aumentando en
igual medida el nmero de terminales (pines), o por medio de multiplexado, En general, resulta sumamente conveniente:
utilizando los mismos terminales para varios nudos; 1 que el circuito sea completamente sncrono y est bien diseado como tal (y, como es
- el control de entradas intermedias: hacer que nudos internos adquieran el valor obvio, con adecuada distribucin del reloj que asegure la simultaneidad del mismo, y
booleano directamente; lo cual requiere distinguir la situacin de test de la con ausencia de violaciones de los tiempos de set-up y de hold);
correspondiente al funcionamiento normal, a travs de un multiplexado apropiado; 2 que el estado inicial de los biestables sea conocido, es decir, que exista un
- la divisin del circuito en bloques separables: configurar particiones, de forma que procedimiento directo de inicializacin (reset) que permita llevar a los biestables a un
cada bloque sea controlable y observable desde el exterior, bien por multiplexado, estado determinado (0 1).
bien mediante un bus interno, etc.,...;
La condicin de sincronismo suele ser una exigencia de partida en el diseo de
- en general, cualquier medida que permita acercar nudos internos a las entradas ASICs con celdas estndar pero, adems, es una situacin deseable desde el punto de vista
(para controlarlos) o aproximarlos a las salidas (para observarlos) facilitar en de la seguridad funcional. El sincronismo resulta sumamente conveniente, tanto desde el
gran manera el test (la obtencin de vectores de test y la reduccin del nmero de punto de vista del test, como desde la propia seguridad funcional del circuito: un buen
ellos necesario para una cobertura total). diseo secuencial es, hoy da, un diseo sncrono.
25. Test de circuitos integrados 153 154 Electrnica Digital

La posibilidad de inicializacin viene exigida no slo por el test sino tambin por la Cada biestable ha de tener dos modos de actuacin:
propia simulacin funcional: no es simulable un circuito cuyo estado inicial no sea 1. el modo funcional, que corresponde al diseo propio del circuito integrado;
conocido; todo proceso de simulacin comenzar efectivamente a partir de un estado
inicial, que se establece (se impone) previamente sobre los biestables. Por ello, todo 2. el modo test, de conexin al registro de desplazamiento, para efectuar el control
diseo secuencial debe contar con su entrada de inicializacin (reset) que acte, directa o (del estado anterior) y la observacin (del nuevo estado) durante el test.
indirectamente, sobre todos los biestables forzndoles a adoptar un estado conocido (por conexin segn
ejemplo, su borrado: puesta a 0). diseo funcional 0 Q conexin segn
D diseo funcional
del biestable anterior del 1
25.4.1. Reducir el test secuencial al combinacional: SCAN PATH al biestable siguiente del
registro de desplazamiento
registro de desplazamiento
configurado para el test
Supuesto un circuito sncrono, la idea es poder controlar y observar cada uno de sus configurado para el test
entrada de control CK: reloj
biestables, de forma que el test se reduzca al caso combinacional; es decir, manejar que diferencia
desde fuera el vector de estado del circuito (el estado de todos los biestables del el modo funcional (0)
mismo), convirtindolo en un vector de entrada (control directo sobre el estado anterior) y y el modo de test (1)
en un vector de salida (observacin del estado siguiente), de manera que el circuito deja
de ser secuencial: si el estado anterior es controlable como entrada y el estado siguiente El circuito integrado ha de disponer de 3 terminales adicionales:
es observable como salida, la funcin de memoria que da carcter a los circuitos - la entrada serie al registro de desplazamiento test-in
secuenciales desaparece. - la salida de dicho registro (del ltimo biestable) test-out
Supongamos que podemos fijar el valor booleano en la salida de cada biestable y, - y una entrada de control del modo de operacin test-control.
despus de un solo pulso de reloj, podemos observar las salidas de todos ellos, el test a
formular se referir nicamente a la parte combinacional del circuito. De esta forma y en
lo que se refiere al test, se prescinde de los biestables como tales (como elementos de test-in REGISTRO DE DESPLAZAMIENTO SCAN PATH test-out
memoria interna) y se produce una duplicacin de ellos: por un lado, se convierten en [se forma slo en el modo de test: test-control = 1
entradas del circuito (sobre ellos se fija, desde fuera, el estado anterior) y por otro
actan como salidas (se observa el nuevo estado tras el pulso de reloj). test-control

Cmo puede controlarse y observarse, en forma directa, desde el exterior del Obviamente, si el nmero de biestables (del scan path) es muy alto, pueden
circuito integrado, el estado de todos los biestables del mismo? Una forma relativamente organizarse en varios registros de desplazamiento (cada uno de ellos precisar dos nuevos
simple de hacerlo es conectando, a efectos de test, todos los biestables en largos registros terminales: su entrada y su salida).
de desplazamiento con entrada y salida en terminales especficos del circuito integrado.
En el test con scan path, el primer paso ser la comprobacin de no bloqueos en el
Haciendo que, a los efectos de control y de observacin para el test, los biestables se propio camino de observacin, en los propios biestables del circuito; para ello, se
encuentren, todos ellos, conectados en serie, formando un registro de desplazamiento, con introduce en el registro de desplazamiento una secuencia de ceros y unos alternados
una entrada (serie) exterior y una salida externa (la del ltimo biestable). Para dar valores y se comprueba la salida de dicha secuencia, despus del retraso correspondiente a los n
a los biestables bastar almacenarlos sucesivamente, a travs de la entrada, utilizando n biestables del registro de desplazamiento.
pulsos de reloj (tantos como biestables contengan el registro de desplazamiento); pero, a
la vez, durante tales n pulsos de reloj, la salida del registro presentar sucesivamente los Una vez comprobado el no bloqueo de los biestables, el anlisis de fallos y la
valores contenidos en los biestables. De forma que, la observacin del estado de los simulacin de fallos se efectan como si el circuito fuera combinacional, suponiendo que
biestables (adquirido tras el pulso de reloj) y la fijacin de un nuevo estado anterior en el estado anterior son entradas externas del circuito y el nuevo estado (tras un pulso de
ellos se realiza simultneamente. reloj) se observa en salidas externas del mismo. De esta forma, por mtodos puramente
combinacionales, se generan los vectores de test y se estudia la cobertura de test que
Esta forma de organizar el test de los circuitos secuenciales, mediante el control y la proporcionan, teniendo en cuenta que cada vector de test incluye cuatro componentes:
observacin en serie de todos sus biestables, recibe el nombre de scan path (camino de
vector de test = {vector de entrada, estado anterior, vector de salida, estado siguiente}
exploracin): conexin de todos los biestables en cadena, permitiendo acceder a ellos por
desplazamiento con doble finalidad, como entrada para fijar su valor y como salida para
observar su estado.
25. Test de circuitos integrados 155 156 Electrnica Digital
La aplicacin del test, al final del proceso de fabricacin, ha de efectuarse segn la Esta forma de abordar el test de placas digitales, mediante la inclusin de biestables
siguiente secuencia: en el contorno de todos los circuitos integrados, para formar con ellos (junto con los
1. modo de test: se carga en serie el estado anterior sobre los biestables, lo cual biestables internos propios) un camino de exploracin (scan path) de la placa, constituye
requiere tantos pulsos de reloj y tantos vectores de entrada como sea el nmero de un mtodo de comprobacin que recibe el nombre de boundary scan (exploracin de
biestables n, contorno). Se encuentra en proceso de estandarizacin a travs de un grupo de IEEE, el
2. modo de funcionamiento: se fija el vector de entrada, se aplica un pulso de reloj y se JTAG (Joing Test Action Group) encargado de redactar la correspondiente normativa.
observa el vector de salida, El boundary scan requiere disponer de circuitos integrados especiales, preparados
3. modo test: se observa el estado siguiente, extrayndolo en serie de la cadena de para dicho test de contorno; tales circuitos incorporan biestables perifricos en todos
biestables (n pulsos de reloj). sus terminales (pines), es decir, en todas sus entradas y salidas, y cuatro terminales
adicionales dedicados especficamente al test:
Obviamente, a la vez que se observa el estado siguiente (etapa 3) se efecta - dos para la entrada TDI y salida TD0 del registro de desplazamiento (scan path),
simultneamente la carga del nuevo estado anterior (etapa 1), correspondiente al
siguiente vector de test; de manera que el nmero efectivo de pulsos de reloj que requiere - uno como entrada de control para la ejecucin del test TMS (test mode switch)
cada vector de test es n + 1, siendo n el nmero total de biestables que conforman el - y otro como entrada de reloj para el test TCK.
registro de desplazamiento (o cada uno de los registros de desplazamiento, caso de Si el circuito integrado es secuencial, los biestables propios del circuito son
configurarse varios de ellos). conectados, asimismo, al registro de desplazamiento (scan path) junto con los biestables
perifricos, para poder efectuar el test completo de los circuitos.
El circuito funciona en tres modos, completamente diferentes:
25.5. Test de placas y de sistemas completos - el modo normal en el cual no actan los biestables perifricos (se encuentran
La extraordinaria complejidad que alcanzan hoy da las placas de circuitos digitales y puenteados) y no existe el scan path: TMS = TDI = 0;
los sistemas digitales completos repercute fuertemente sobre su comprobacin (test), que - el modo de desplazamiento TMS = 1, TCK = pulsos de reloj, en que se produce
resulta sumamente difcil. el desplazamiento del registro que configura el scan path y, por tanto, la entrada y la
salida de los vectores de test;
La filosofa desarrollada en el mtodo scan path para el test de circuitos secuenciales
es aplicable al test de placas de circuitos integrados digitales (y al test de sistemas - el modo de ejecucin de test: TMS = 0, TDI = 1, TCK = un solo pulso de reloj
digitales completos) en la siguiente forma: en que los biestables perifricos actan como entradas de los circuitos integrados
(para realizar su test interno) y como salidas de los mismos (para realizar el test de
- ha de incluirse un biestable en cada terminal (entrada o salida) de los circuitos
las conexiones entre ellos).
integrados; dicho biestable actuar en modo de test formando parte (junto con los
biestables internos) del registro de desplazamiento que conforma el camino de Estos tres modos de funcionamiento se diferencian, en los biestables perifricos,
exploracin (scan path) para el test del circuito integrado; mediante dos multiplexores:
- los caminos de exploracin (registros de desplazamiento) de los diversos circuitos para puentear el biestable perifrico en modo normal
0
integrados sern conectados en serie para formar un largo camino de exploracin
global para el test de la placa; 0
Q 1
- este gran scan path permite controlar en serie todas las entradas de los circuitos D
integrados y observar en serie todas las salidas (y, tambin, el estado interno) de los SCAN PATH 1
mismos, de forma que podemos testear cada uno de dichos circuitos utilizando sus TMS . TDI
propios vectores de test; SCAN PATH
TMS TCK
- asimismo este scan path permite fijar valores en las salidas de los circuitos
integrados y observar, luego, las entradas de todos los circuitos, lo cual hace posible
comprobar las pistas de conexin (el circuito impreso), verificando si los valores
fijados en las salidas de los circuitos son recibidos correctamente en las entradas de
los circuitos conectados a tales salidas.
25. Test de circuitos integrados 157 158 Electrnica Digital
El test de cada circuito integrado se efecta en la forma siguiente: Dentro de la placa, las entradas TDI y las salidas TDO de test de los circuitos
c vector de entrada para dicho test: integrados que contiene han de estar unidas en cascada (TDO TDI'), formando una
entradas al circuito integrado: se cargan sobre los biestables perifricos de las larga cadena de registros de desplazamiento (un scan path global). Siendo p el nmero
entradas del mismo; total de biestables presentes en la placa, el test global de la misma requiere p pulsos de
reloj (con TMS = 1) para la fase de desplazamiento (en la cual, se observan los
estado anterior: se carga sobre los biestables internos propios del circuito. resultados del test anterior y se introducen, a la vez, los vectores de entrada para el test
d un pulso de reloj en modo de ejecucin de test; siguiente) y 1 pulso de reloj (con TMS = 0 y TDI = 1) para la la fase de ejecucin.
e vector resultante de salida del test: Los vectores de entrada necesarios son los correspondientes al test de los diversos
salidas del circuito integrado: se encontrarn en los biestables perifricos de circuitos integrados contenidos en la placa, adecuadamente encadenados entre s (segn el
las salidas del mismo; scan path que tales circuitos configuran), intercalados (conforme a los biestables
perifricos de las salidas de los integrados) con los vectores para el test de conexiones
nuevo estado: en los mismos biestables internos propios del circuito.
entre circuitos (test de las pistas del circuito impreso), que sern conjuntos aleatorios de
El test de las pistas de la placa de circuito impreso se efecta as: ceros y unos.
c valores a comunicar a travs de las pistas: se cargan sobre los biestables Del mismo modo (con la misma filosofa y con los mismos recursos) que se ha
perifricos de las salidas de los diversos circuitos integrados; planteado el test de una placa de circuitos digitales, puede desarrollarse el test de un
conjunto de placas o, lo que es lo mismo, el test de un sistema digital completo.
d un pulso de reloj en modo de ejecucin de test;
e valores transmitidos a travs de las pistas: se encontrarn en los biestables
perifricos de las entradas de los circuitos integrados. 25.6. Test interno
El test se realiza mediante la ejecucin de las siguientes fases: En circuitos integrados de gran complejidad (en particular, en bloques
fase de desplazamiento: TMS = 1, TCK = n pulsos de reloj (siendo n el nmero de correspondientes a estructuras matriciales tales como RAM, ROM, PLA, etc.,) conviene
biestales, la longitud del scan path); se produce el desplazamiento del registro que incluir, en el propio circuito integrado mdulos que permitan realizar internamente el
configura el camino de exploracin y, por tanto, la entrada del vector, bit a bit, de test; es decir, circuitos complementarios para:
test a dicho registro; - generar por s mismos un conjunto apropiado de vectores de test (vectores de
fase de ejecucin: TMS = 0, TDI = 1, TCK = un solo pulso de reloj; dicho pulso entrada)
de reloj ejecuta el test y los biestables recogen el resultado del mismo: los - y analizar los resultados (vectores de salida) del test.
biestables propios y los biestables perifricos de las salidas reciben el resultado del
test interno de cada circuito integrado; los biestables perifricos de las entradas Tngase en cuenta que un scan path, para ejecutar un slo test, requiere n + 1 ciclos
reciben el test de conexiones entre circuitos (pistas del circuito impreso); (siendo n el nmero de biestables presentes en dicho camino de exploracin), ya que es
preciso almacenar, bit a bit, el vector de entrada (y tambin extraer, bit a bit, el resultado
de nuevo una fase de desplazamiento: TMS = 1, TCK = n pulsos de reloj; permite del test); el nmero de ciclos puede reducirse por un factor n + 1 si los vectores de entrada
observar el resultado del test y, a la vez, introducir el vector para el siguiente test. se generan internamente y los resultados se analizan (o se almacenan en forma compacta)
en el interior del circuito integrado. Tal es el objetivo del test interno.
Al igual que cada circuito integrado, la placa circuital dispondr de cuatro terminales
especficos para el test: Consideremos una memoria RAM de gran capacidad: su test implica escribir y leer
en cada uno de sus registros varias veces, lo cual requiere un alto nmero de ciclos. Sin
- TDI (Test Data In): entrada de vectores de test
embargo, la generacin y el anlisis de vectores de test es muy sencilla (como veremos a
- TDO (Test Data Out): salida de resultados del test continuacin); resulta conveniente incluir tales funciones (generacin y anlisis) dentro
del circuito integrado, lo cual permite prescindir (en buena medida) de las costosas
- TCK (Test Clock): reloj para la ejecucin del test
mquinas de test y realizar el test con un equipo de observacin mucho ms simple.
- TMS (Test Modo Switch): control modo test
25. Test de circuitos integrados 159 160 Electrnica Digital

El test interno permite comprobar los circuitos posteriormente, una vez instalados en
25.6.1. BIST (Built In Self Test): test interno de memorias
el sistema electrnico concreto en que vayan a ser utilizados, y verificar (en cualquier
momento y de forma sencilla) que dichos circuitos integrados siguen funcionando bien. Genricamente el trmino BIST (autotest construido internamente) alude a cualquier
Es decir, el test interno no es slo una facilidad para la necesaria verificacin del circuito procedimiento de test interno, pero suele emplearse ms especficamente para el test de
en el proceso de fabricacin, sino que configura un recurso permanente (una prestacin de memorias, en el cual las direcciones se generan mediante un contador y los contenidos de
la cual se dispone siempre) que permite efectuar nuevas verificaciones in situ, a lo largo los registros corresponden a todo unos, a todo ceros y a un ajedrezado de ceros y unos
del tiempo de utilizacin del circuito integrado; en ambos casos, la ejecucin del test es alternativos.
muy simple ya que, bsicamente, se realiza en el interior del circuito.
El test de las memorias RAM suele realizarse mediante el siguiente algoritmo
El test interno plantea la realizacin del test, por medio de un circuito auxiliar (por (supuesta una memoria de N registros, cuya numeracin ir de 0 a N-1):
hardware), dentro del propio circuito integrado; es decir, incluir en su diseo (y,
1 de 0 a N-1 escribir todos los registros con 111111 ...
posteriormente, en su fabricacin) un aadido circuital especfico para la ejecucin del
test. Dicho circuito auxiliar ha de contener, obviamente, dos partes (entradas / salidas): 2 de 0 a N-1 leer y comprobar cada registro y escribir en el mismo 000000 ...
- un generador de los vectores de test (vectores de entrada) 3 de 0 a N-1 leer y comprobar cada registro y escribir 111111 ...
- y un analizador de los resultados del mismo (vectores de salida). 4 de N-1 a 0 leer y comprobar cada registro y escribir en el mismo 000000 ...
Una forma sencilla de generar vectores de p bits la constituye un contador de p 5 de N-1 a 0 leer y comprobar cada registro y escribir 111111 ...
biestables, que producir todos los vectores de p bits en orden numrico binario; otra 6 de 0 a N-1 escribir sucesivamente registros impares con 101010 ...
posibilidad, tan sencilla o ms que la anterior, es generar vectores aleatoriamente y registros pares con 010101 ...
utilizando un registro de desplazamiento. La segunda opcin tiene la ventaja de que los
7 de 0 a N-1 leer y comprobar cada registro
vectores contiguos presentan menor correlacin (son ms independientes entre s) que los
que proceden de un contador. 8 de 0 a N-1 escribir sucesivamente registros impares con 101010 ...
En ocasiones (por ejemplo, en el test BIST para memorias RAM que se describe a y registros pares con 010101 ...
continuacin), los resultados del test presentan una gran uniformidad y basta un pequeo 9 de 0 a N-1 leer y comprobar cada registro
circuito combinacional para detectar si son correctos; una salida del circuito integrado 10 test completo, memoria disponible para ser utilizada.
servir para informar de que los sucesivos resultados del test son vlidos (dicha salida se
mantendr constantemente a 0 durante el test: un simple pulso a 1 indica mal De esta forma, se observa no slo la escritura y lectura de un 0 y de un 1 sobre cada
funcionamiento del circuito). biestable de la memoria, sino tambin la influencia de los biestables contiguos: de ah
que, a la vez que progresa la lectura de unos, se escriban ceros antes de leer el
Este tipo de solucin combinacional para analizar el test no siempre es posible y en
registro contiguo y viceversa y de ah, tambin, la utilizacin de ajedrezados con ceros
muchas ocasiones hemos de limitarnos a almacenar, en forma compactada, los sucesivos
y unos intercalados en las dos direcciones y en las dos posibilidades.
vectores de salida de test; la firma sobre p bits (una extensin de la paridad a p bits)
permite compactar, sobre una longitud p, cualquier serie de bits por larga que sea, Puede comprobarse que, con el algoritmo anterior, cada biestable (i , j, siendo i la fila
detectando error en la misma siempre que el nmero de errores no sea superior a p. del biestable y j la columna del mismo) se prueba en sus dos valores (0 / 1) respecto a
todas las posibilidades de los ocho biestables vecinos que le rodean: los dos biestables
En los siguientes subapartados se detallan diversas configuraciones relativas al test contiguos de la misma fila (i , j-1 ; i , j+1), los tres biestables anlogos de la fila anterior
interno de circuitos integrados: (i-1 , j-1; i-1 , j ; i-1 , j+1) y los tres de la siguiente (i+1 , j-1; i+1 , j ; i+1 , j+1).
- el test interno de memorias, BIST, Asimismo, se comprueban las diversas posibilidades de interaccin entre biestables del
mismo registro (que se encontrarn en hojas diferenciadas, vase la estructura de las
- la generacin aleatoria de vectores de test, LFSR, memorias RAM en 19.2., segundo volumen).
- el almacenamiento compacto de vectores resultantes del test, FIRMA
Este test requiere un contador para generar las direcciones de los registros; un
- y el aprovechamiento de un registro como LFSR y como FIRMA, BILBO. segundo contador de cuatro bits y un decodificador para distinguir las diez fases de
ejecucin del test; un circuito combinacional muy simple que genera, a la vez, los
vectores de entrada y de salida del test y un comparador entre la lectura de los registros y
los citados vectores de salida.
Los vectores a generar son muy simples:
25. Test de circuitos integrados 161 162 Electrnica Digital
- dos componentes: Dimpar biestables impares y Dpar biestables pares de los registros;
- en la fase 1, Dimpar,Dpar = 11; en la fase 2 y en la fase 4 11(lectura) y 00 (escritura)
alternativos; en la fase 3 y en la 5 00 (lectura) y 11 (escritura) uno tras otro;
- en la fase 6 y en la 7, Dimpar,Dpar = 10 (registros pares) y 01 (impares) sucesivamente Qm ... ... ... ... ... Qm ... ... ... ... ... Q1
y en las fases 8 y 9 01 (registros pares) y 10 (impares). REGISTRO DE DESPLAZAMIENTO m biestables Din

Basta un pequeo circuito combinacional, a partir del decodificador de fases citado,


de un biestable que distinga entre lectura y escritura (en las fases 2, 3, 4 y 5) y de la lnea CK
de direccionamiento A0 (registros pares e impares), para generar los citados vectores de
test que cubren tanto la entrada (escritura) como la salida (lectura) del mismo. El nmero m' del segundo biestable a realimentar, para conseguir dicha generacin
mxima de vectores seudoaleatorios (2m -1), se calcula por tcnicas matemticas de
El comparador entre la lectura de los registros y el vector de referencia generado por polinomios generadores; por ejemplo:
el circuito combinacional ha de habilitarse solamente en los momentos de lectura; de
forma que su salida se encontrar normalmente a 0 y solamente pasa a 1 si la lectura del m = 10 m' = 7 1.023 vectores;
registro no coincide con el valor esperado. m = 15 m' = 14 32.767 vectores;
Este tipo de test interno (BIST) requiere solamente tres terminales: TMS de control m = 20 m' = 17 1.048.575 vectores;
del modo de test, TCK para enviar un reloj que haga avanzar a los contadores y TDO
el terminal de salida del comparador; el test se realiza haciendo TMS = 1, enviando una m = 25 m' = 22 33.554.431;
alta frecuencia de reloj por TCK y observando la ausencia de 1 en TDO. No es necesario m = 31 m' = 28 2 mil millones de vectores;
contar los pulsos enviados a TCK: basta dedicar suficiente tiempo al test para asegurar
m = 39 m' = 35 0,5 billones.
que se ha llegado a la fase 10.
Si se aade un inversor detrs de la puerta "o-exclusiva" se obtienen todos los
25.6.2. LFSR (Linear Feedback Shift Register): generacin aleatoria de vectores vectores de m bits menos el todo unos 1111..., lo cual permite utilizar el vector nulo
0000 para iniciar la generacin de vectores seudoaleatorios.
La ejecucin del test (sobre un bloque combinacional) requiere vectores de entrada
con p componentes (p entradas); tales vectores pueden generarse mediante un contador de Para longitudes habituales (8, 16, 24, 32,...) es preciso realimentar, a travs de
p biestables (mdulo 2p) y, en tal caso, aparecern segn el orden numrico binario. puertas "o-exclusiva" (paridad), ms de 2 biestables hacia la entrada:
para m = 8 hay que realimentar los biestables 8, 6, 5 y 4 (255 vectores),
Otra posibilidad consiste en generar vectores de forma aleatoria, que asegura
menor correlacin (nula si realmente fueran aleatorios) entre vectores sucesivos, por lo
cual resultan mucho ms adecuados para el test; en particular, cuando no se utiliza un
Q Q Q Q Q Q Q Q
conjunto completo (2p) de vectores de entrada (se ha comentado antes que los vectores D D D D D D D D
de entrada aleatorios consiguen coberturas de fallos relativamente altas).
CK
Los registros de desplazamiento (SR: Shift Register) con realimentacin lineal
(LF: Linear Feedback) constituyen sencillos generadores de vectores seudoaleatorios. para m = 16: se realimentan 16, 15, 13 y 14 y produce 65.535 vectores distintos,
Para determinados valores de longitud de un registro de desplazamiento (m biestables,
siendo m el ms significativo), se verifica que, realimentando hacia la entrada, a travs de para m = 24: se realimentan 24, 23, 22 y 17 y genera 16.777.215 vectores.
una puerta "o-exclusiva", la salida del biestable m y otra de las salidas m', Los registros de desplazamiento con realimentacin lineal LFSR son los mdulos
adecuadamente escogida, el registro genera sucesivamente y en forma seudoaleatoria utilizados normalmente como generadores internos de vectores de test. Respecto a
todos los vectores de m bits menos el nulo 0000...: 2m -1 vectores. contadores de igual longitud tiene la ventaja de que su circuitera es ms simple
(m biestables y una o varias puertas "o-exclusiva", sin tener que constituir las complejas
funciones que corresponden al contaje) y que generan los vectores en forma cuasi
aleatoria y no en orden numrico binario.
25. Test de circuitos integrados 163 164 Electrnica Digital

25.6.3. FIRMA: almacenamiento compacto de vectores Para calcular la firma sobre p bits basta modificar un registro de desplazamiento
realimentado linealmente LFSR, aadiendo puertas "o-exclusiva" en las entradas de sus
Al realizar un test con n vectores de entrada obtenemos n vectores de salida, es decir, biestables en la forma que sigue:
una secuencia de n palabras de p bits: n . p bits; la idea es comprimir dichos resultados
de forma que la cantidad de memoria necesaria para almacenarlos sea pequea (en la - cada palabra de p dgitos es recogida por el registro de desplazamiento a travs de p
prctica una sola palabra de igual longitud que cada vector salida: p bits) y de forma, entradas paralelo especiales y es mezclada con el estado del registro;
tambin, que la obtencin del resultado global del test sea sencilla: bien en cuanto a - cada biestable recibe, en su entrada D, la operacin "o-exclusiva" entre la salida del
nmero de ciclos para leer el registro de resultados, bien en cuanto al circuito de biestable anterior (conexin serie propia del registro de desplazamiento) y el bit
comparacin que evala si el resultado es o no correcto. correspondiente de la palabra recibida (entradas paralelo especiales);
Entendemos por firma sobre p bits (del ingls firm) la reduccin a una sola palabra - el registro se encuentra, adems, realimentado linealmente en la forma propia de los
de p dgitos de n palabras binarias, cada una de ellas de p bits, con las siguientes registros de desplazamiento con realimentacin lineal.
propiedades: Tal registro de desplazamiento, con entrada paralelo en forma de "o-exclusiva" y
- la firma es una aplicacin unvoca de n palabras de p dgitos sobre una palabra de p realimentacin lineal, realiza la firma sobre p bits siendo p el nmero de sus biestables
bits, y el nmero de dgitos de las palabras que recibe:
- dos conjuntos distintos, de n palabras de p dgitos cada uno, que no se diferencien
en ms de p bits, tendrn firmas diferentes entre s,
- es decir, si en un conjunto de n palabras de p dgitos se modifican (se invierten) p Q Q Q Q Q Q Q Q
de los n.p bits (o menos), la firma del conjunto modificado ser diferente de la D D D D D D D D
firma del conjunto inicial.
CK
De manera que la firma sobre p bits permite detectar errores que afectan a p bits o a D7 D6 D5 D4 D3 D2 D1 D0
menos de p bits, pues el anlisis de firma de dos conjuntos de palabras diferentes
conduce a dos firmas distintas, salvo que dichos conjuntos difieran en ms de p bits (en En el registro de desplazamiento anterior, al recibir uno tras otro los n vectores
cuyo caso sus firmas pueden ser diferentes o iguales). de salida de test (supuesto que sean de 8 bits), se realiza la firma del conjunto de dichos
n vectores (n.8 bits) sobre una palabra de 8 dgitos. Puede demostrarse que dos conjuntos
Sea S el conjunto de n . p dgitos, su firma es una aplicacin sobre p bits diferentes (de n palabras de 8 dgitos cada uno), cuya firma sea la misma, diferirn en ms
S (n . p bits) F(S) (p bits) de 8 bits; es decir, permite detectar errores que afecten a 8 bits o menos.
tal que, si dos conjuntos S1 y S2 Los circuitos que realizan la firma sobre p bits reciben el nombre de analizadores de
S1 F(S1) = F1 firma.
S2 F(S2) = F2
tienen la misma firma F1 = F2, puede afirmarse que:
- o bien ambos conjuntos son iguales (S1 = S2)
- o bien difieren en ms de p bits (S1 S2 contiene ms de p unos).
Por ello, la firma detecta errores cuando su nmero no es superior a p, ya que la
firma de un conjunto S' errneo ser distinta de la firma del conjunto correcto S:
F' F si S S' y S S' no contiene ms de p unos.
Obviamente, la bien conocida paridad corresponde a la firma sobre 1 bit.
25. Test de circuitos integrados 165 166 Electrnica Digital
25.6.4. BILBO (Built In Block Observer): test interno mediante LFSR y FIRMA Para C1 = 0 y C2 = 1, el bloque se configura como analizador de firma:
Un registro sncrono, de entradas paralelo (o, lo que es lo mismo, un conjunto de C1 = 0 C2 = 1
biestables de tipo D), puede ser reconfigurado de forma que, adems de actuar como Q5 Q3 Q2 Q1 Q0
Q4
registro retencin, pueda hacerlo como generador de vectores (LFSR) y como analizador
Q Q Q Q Q Q
de firma o, tambin, pueda borrarse en forma sncrona. Basta, para ello, aadir al registro D D D D D D

la lgica correspondiente al analizador de firmas, junto con dos entradas de control C1 y CK


C2 que actan a travs de sendas puertas "y" y "o-negada", segn el esquema de la
D5 D4 D3 D2 D1 D0
figura.
Analizador de firma
Q5 Q4 Q3 Q2 Q1 Q0
Y con C1 = 1 y C2 = 0, se produce el borrado sncrono del registro:
Q Q Q Q Q Q
D D D D D D
C1 = 1 C2 = 0
CK
Q5 Q4 Q3 Q2 Q1 Q0
C1 Q Q Q Q Q Q
D
0 D
0 D
0 D
0 D
0 D
0
C2 CK
D5 D4 D3 D2 D1 D0
Borrado sncrono
Cuando ambas entradas tienen valor 1, C1 = C2 = 1, el bloque acta como un simple
Este tipo de registro, que puede ser empleado bien como registro de retencin (o
registro de entradas paralelo:
biestables individuales) con borrado sncrono, bien como generador de vectores o como
C1 = C2 = 1 analizador de firmas, recibe el nombre de registro BILBO (Built In Block Observer).
Con esta estructura cualquier registro interno, o cualquier conjunto de biestables, de un
Q5 Q4 Q3 Q2 Q1 Q0
circuito integrado puede ser utilizado, a efectos de test, como generador de vectores de
Q Q Q Q Q Q
D D D D D D
test y como analizador de firma.
CK
Los registros BILBO dan lugar a una configuracin de test interno que consiste en
D5 D4 D3 D2 D1 D0 un generador de vectores de test (LFSR) y un analizador de firmas; el primero genera
Registro de entradas paralelo
vectores de test sobre las entradas del bloque a testear y el segundo almacena, en forma
comprimida, los vectores de salida resultantes del test.
Para ambas entradas a valor 0, C1 = C2 = 0, el bloque queda en forma de registro de
desplazamiento realimentado linealmente LFSR, o sea, un generador de vectores de test:
L F
C1 = C2 = 0
F bloque I
Q5 Q4 Q3 Q2 Q1 Q0 S a R
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D R testear M
CK
A
Generador de vectores de test generador analizador
de vectores de test de firmas

Para efectuar el test, esta configuracin requiere tres terminales: TMS para controlar
el modo de test, TCK como reloj y TDI para la salida del analizador de firmas; dicha
salida puede obtenerse en forma de firma global (p bits) que se extrae por
desplazamiento (mediante scan path) bit a bit o en forma unitaria (1 bit), aadiendo un
comparador que confronte la firma obtenida con la esperada en el caso correcto.
25. Test de circuitos integrados 167 168 Electrnica Digital
La configuracin necesaria para duplicar los registros que se realimentan sobre el
Los registros de entrada (generador de vectores) y salida (analizador de firma)
bloque puede ser la siguiente:
pueden ser registros aadidos a los solos efectos del test, pero tambin pueden ser
0: normal
registros o conjuntos de biestables propios del diseo, configurados en forma de BILBO. 1: test
0

Segn se coment en el captulo 15 (volumen 2), un circuito secuencial sncrono D


Q 1
D
Q

puede segmentarse en bloques o mdulos conformados por una parte combinacional y biestable biestable
duplicado
un registro o conjunto de biestables que recogen las salidas de ella y conectan con el CK Lgica CK
que se realimenta
combinacional
bloque o bloques siguientes; algunas salidas del propio bloque se realimentarn sobre el
mismo. De manera que cada parte combinacional se encuentra entre dos registros o
conjuntos de biestables, uno de ellos correspondiente al bloque o bloques anteriores Bloque
(entradas) y el otro, el propio del bloque (salidas).

B 25.6.5. Autotestabilidad, seguridad y tolerancia frente a fallos


B i
i e
e
La inclusin en el propio circuito integrado de mdulos que permiten realizar su test
Lgica s
s
combinacional t internamente introduce un nuevo concepto, la autotestabilidad: la capacidad de verificar
t a in situ y en cualquier momento la configuracin funcional del circuito integrado. De
a b
b l esta forma, el circuito puede autocomprobarse repetidamente y avisar cuando tal
l e
e
comprobacin detecte fallos.
s
s
Cada vez son ms los sistemas digitales que se autochequean, antes de comenzar
Bloques Bloque
anteriores su actuacin (o, tambin, peridicamente a lo largo de la misma, aprovechando pausas
funcionales), para asegurar que todas sus partes se encuentran en perfecto estado de
A partir de la estructura representada en esta figura, para obtener una configuracin funcionamiento.
BILBO es necesario duplicar (en el modo de test) los biestables que se realimentan
sobre el propio bloque, de forma que una mitad siga siendo biestables de salida del Un paso ms all en la deteccin de errores consiste en realizar (al menos
bloque para configurar, con el resto de los biestables de salida, un registro BILBO que parcialmente) el test del circuito en forma simultnea a su funcionamiento como tal, de
acte como analizador de firma y la otra mitad se agregue a los biestables de entrada, manera que el circuito integrado supervise su actuacin continuamente y en paralelo con
formando otro registro BILBO como generador de vectores de test. la misma y avise de la existencia de fallos lo antes posibles y sin necesidad de efectuar
una solicitud exterior de test. En este caso el circuito presentar una gran seguridad frente
Biestables duplicados a fallos (permitiendo desechar con inmediatez cualquier funcionamiento errneo).
Una solucin que ya se utiliza es la de duplicar determinados sistemas o partes
digitales y verificar la coincidencia de los clculos realizados por ambos.
Lo ptimo sera que el circuito, adems de avisar en cuanto existe un fallo (seguridad
Lgica
combinacional frente a fallos), fuera capaz de corregir su propio funcionamiento y su respuesta fuera
correcta, aun en presencia de fallos: circuito tolerante a fallos. Al igual que existen
cdigos autocorrectores de errores (que permiten tal correccin cuando el nmero de
errores es limitado) es posible disear circuitos que, para un nmero limitado de fallos, la
BILBO de entrada Bloque BILBO de salida
presencia de ellos no introdujera errores en la respuesta del circuito.
Al igual que la duplicacin de partes digitales permite que se vigilen
De manera que un circuito integrado complejo puede dividirse (a efectos de test) en mutuamente, su triplicacin, aadiendo un circuito de decisin mayoritaria, da lugar
partes, formadas (cada una de ellas) por un ncleo combinacional entre dos registros a que, si una de las tres partes iguales que funcionan en paralelo falla (si proporciona
BILBO y, de esta forma, puede realizarse el test interno de cada parte utilizando el una respuesta diferente a la de las otras dos), sus resultados sean desechados y se adopte
registro anterior, como generador de vectores de test, y el registro siguiente, como como respuesta correcta la comn de las otras dos partes.
analizador de firmas; para cada una de las firmas, ha de comprobarse su coincidencia (o
diferencia) con las que corresponden al circuito sin fallos.

Вам также может понравиться