Sei sulla pagina 1di 31

Collaudo dei circuiti

combinatori
Metodologie ATPG
Problema ATPG
•  ATPG: Automatic test pattern generation
–  Dato
•  Un circuito (di solito a livello porte logiche)
•  Un modello di guasto (di solito del tipo stuck-at)
–  Trovare
•  Un insieme di ingressi per rilevare tutti I guasti modellati.
•  Problema principale: Trovare un vettore di test per
un dato guasto.
•  Combinare la soluzione calcolata con un
simulatore di guasto in un sistema ATPG (per
calcolare la ulteriore copertura)
Che cosa è un test?
Fault activation
Fault effect
X Combinational circuit
1
0
0 1/0 1/0
Primary inputs
1 Primary outputs
(PI)
0 (PO)
1
X
X
Path sensitization
Stuck-at-0 fault
L’ATPG è un problema di ricerca
•  Cercare nello spazio dei vettori di
ingresso per trovare un vettore di test:
•  Inizializzare tutti i segnali allo stato sconosciuto
(X) – lo spazio vettoriale completo è il campo
da gioco
Vector •  Attivare un dato guasto Vector
e sensitizzare il
Space Circuit Space Circuit
percorso verso i PO
X X
X 0
sa1 sa1 0/1
X 1
001 101
Bisogna gestire due copie del
circuito
Good circuit
X X Alternativamente si può usare una
0 logica a più valori per gestire
0 Sia il circuito buono che quello guasto

Different outputs
allo stesso tempo
Same input

Faulty circuit Circuit


X X X
X
0 0
sa1 1 sa1 0/1
1 1
Algebra a valori multipli
Rappresentazione Circuito Circuito
Simbolo Alternativa Funzionante Guasto

D 1/0 1 0
D 0/1 0 1 Algebra
0 0/0 0 0 di
1 1/1 1 1 Roth
X X/X X X
G0 0/X 0 X
G1 1/X 1 X Aggiunte
F0 X/0 X 0 di
X/1 X 1 Muth
F1
Funzione di una porta NAND
Input a
c
0 1 X D D
D
a 1/0 0 1 1 1 1 1
1
c
b 0/1 1 1 0 X D D
D Input b
X 1 X X X X

D 1 D X D 1

D 1 D X 1 D
Definizioni
•  Giustificazione: Cambiare gli ingressi di una porta
logica se gli ingressi attuali non giustificano il valore in
uscita.
•  Implicazione in avanti: Determinazione del valore in
uscita di una porta logica la cui uscita è X in base ai
valori di ingresso.
•  Verifica di Consistenza: Verificare che l’uscita di una
porta logica sia giustificabile dai valori in ingresso, tali
valori potrebbero essere stati cambiati da quando
l’uscita era stata determinata.
•  Frontiera D: Insieme di porte logiche i cui ingressi sono
D or D, e le cui uscite sono X.
Definizione: Copertura singolare
•  Una copertura singolare (singular cover) definisce gli input
meno restrittivi per un dato valore deterministico in uscita.
•  Ogni riga è chiamata cubo singolare (singular cube)
•  Usato per:
•  Giustificazione: determinare gli ingressi di una porta logica per una
data uscita.
•  Implicazione in avanti: determinare l’uscita della porta logica.

a Singular
a b c
c covers
b SC-1 0 X 1
Esempio porta NAND
SC-2 X 0 1

SC-3 1 1 0
Definizione di Cubi D
I cubi D sono singular D-cube a b c
cover usate per:
D-1 D 1 D
–  propagazione e del
segnale D (in tal caso D-2 1 D D
definiti come
propagation D-cubes) D-3 D 1 D
–  Specificare la D-4 1 D
presenza di un guasto D
(in questo caso D-5 D D D
chiamati Primitive D-
cube of a fault o anche D-6 D D D
PDF)
D-7 D 0 1
a D-8 0 D 1
c D-9 D D 1
b D-10 D D 1
Esempio porta NAND Propagation D-cube
Definizione di Cubi D
La D-cube a b c
definizione D-1 1 1 D
del cubo D-2 0 X D
primitivo di D-3 X 0 D
guasto è il PDF per porta NAND
primo
passo per D-cube a b c

l’algoritmo D-1 0 0 D
D D-2 1 X D
D-3 X 1 D

PDF per porta NOR


Intersezione: regole algebriche

Due assegnazioni su ∩ 0 1 X D D Stato indefinito


una linea sono (conflitto)

incompatibili in 0 0 0
base a questa
tabella di intersezione 1 1 1
Regola generale:
Se un cubo X 0 1 X D D

assegna uno specifico


D D D
valore di un segnale,
gli altri cubi devono D D D
assegnare o lo stesso
segnale o X
Algoritmo D
(Roth et al., 1967)
•  Usa l’algebra D
•  Attiva il guasto
•  Mettere una D o D sul sito del guasto con un PDF
•  Eseguire giustificazione, implicazione in avanti e controllo sulla
consistenza per tutti i segnali
•  Propagare ripetutamente la D-chain verso i PO attraverso un porta
logica per volta (D Drive)
•  Eseguire giustificazione, implicazione in avanti e controllo sulla
consistenza per tutti i segnali
•  Tornare indietro se
•  Compare un conflitto oppure
•  La frontiera D diviene un insieme nullo
•  Stop quando
•  D o D arrivano ad un PO, cioè è stato trovato un test, oppure
•  Se la ricerca è finita senza un test allora non è possibile alcun
test
Algoritmo
Scegliere  guasto  
INIZIO  
generare  PDF  

PaDern  trovato   Altre  linee  da   sì D  o  D’  su  


gius9ficare?   PO?  
FINE  

no no

D  Drive,  propaga   Marca  le  linee  da  


Scegliere  una  linea  
intersecando  coi  D   gius9ficare  nella  
da  gius9ficare  
propaga9on  cubes   fase  di  cons.  check  

no no
Inconsiste Fron9era  
nza?   D  nulla?  

sì sì
Possibili
percorsi
sì sì possibili  percorsi  
alterna9vi  di  
alternativi di
propagazione?  
giustificazione?

no no

Torna  indietro  di  un   Torna  indietro  di  un  


livello  scegliendo  un   livello  scegliendo  un  
diverso  percosrso   diverso  percosrso  

tornato  a  un   no Non  ci  sono  paDern   no Fini9  i  


nodo  già   FINE  
visitato?   percorsi?  
sì sì
Esempio: XOR

a2 d
a1 c1
a c
b f
b1 c2
e
b2

Trovare il vettore di test per c sa0


XOR: Test per c sa0
a2
d
a1 c1
a c
b b1 f
c2
b2 e

Step a a1 a2 b b1 b2 c c1 c2 d e f
PDF
1 0 0 0 X X X D
D Drive to d
2 0 0 1 X X X D D D’ (fail)
D Drive to
3 0 0 0 1 1 1 D D D D’ e(OK)
D drive to f
4 0 0 0 1 1 1 D D D 1 D’ D OK
justification
5 0 0 0 1 1 1 D X(D) D 1 D’ D of d = 1 OK
XOR: Test per d sa1
a2
d
a1 c1
a c
b b1 f
c2
b2 e

Step a a1 a2 b b1 b2 c c1 c2 d e f
PDF
1 1 1 1 1 1 1 D’
D Drive to f
2 1 1 1 1 1 1 D’ 1 D
Justification
3 1 1 1 0 0 0 1 1 1 D’ 1 D of e=1
Justification
4 1 1 1 0 0 0 1 1 1 D’ 1 D of c=1 OK
Random-Pattern Generation
•  Viene  faDo  prima  
dei  metodi  
determinis9ci  
•  Facilmente  
oLene  test  per  
60-­‐80%  dei  
guas9  
•  Dopo  si  passa  al  
D-­‐algorithm,  o  
altri  metodi  
ATPG  
Vector Compaction
•  Obiettivo: Ridurre il numero di vettori senza ridurre la
copertura.
•  Si fa simulazione di guasti coi vettori di test in ordine
inverso a come sono stati generati
•  Prima vanno i vettori ATPG
•  I vettori generati in modo casuale vanno per ultimi (perchè
potrebbero avere una copetura minore)
•  Quando la copertura raggiunge il 100% (o il valore massimo che si
aveva all’inizio), si eliminano I vettori rimasti
•  Riduce in modo significativo la sequenza di test e
pertanto riduce il cost del test.
•  Un simulatore di guasti è spesso usato per compattare.
•  Esistono molti algoritmi di compattazione.
Compattazione statica e dinamica
delle sequenze
•  Compattazione statica
•  L’algoritmo di ATPG dovrebbe lasciare gli ingressi non
assegnati ad X
•  Due vettori sono compatibili se non ci sono PI in conflitto
•  Se non ci sono conflitti, due test ta e tb vengono combinati in
un solo test usando la funzione di intersezione vista prima tab
= ta ∩ tb
•  Rileva l’unione dei guasti rilevati da ta e tb
•  Compattazione dinamica
•  Si prcessa ogni vettore ATPG parzialmente finito
immediatamente
•  Si assegna 0 o 1 ai PI per testare guasti addizionali
Esempio di compattazione
•  t1 = 0 1 X t2 = 0 X 1
t3 = 0 X 0 t4 = X 0 1

•  Si combinano t1 e t3, e poi t2 e t4


ottenendo:
–  t13 = 0 1 0 t24 = 0 0 1

•  La lunghezza del test è ridotta da 4 a 2


ATPG combinatorio e ridondanza logica

•  Guasto ridondante definizione:


–  Ogni guasto che non modifica la funzione di input-
output del circuito è chiamato guasto ridondante
•  La rimozione di guasti ridondanti di tipo stuck at
è spesso utilizzata per ottimizzare un circuito
•  Identificazione della ridondanza
•  Rimozione della ridonanza
Vettori di test per Hardware non ridondante
•  L’ATPG combinatorio non puo’ sempre trovare hardware
ridondante (non necessario)

•  Guasto Test
a sa1, b sa0 A=1
a sa0, b sa1 A=0
•  Pertanto questi guasti non sono ridondanti`
Semplificazione di hardware ridondante
Il guasto d sa0 non è rilevabile
perchè non cambia la funzione
logica per nessuna
combinazione degli ingressi
Pertanto di sostituisce
l’ingresso della OR con uno
zero fisso
Finalmebnte si ottiene il
circuito equivalente:
B=E con A non rilevante.

FANOUT RICONVERGENTE: CONDIZIONE


NECESSARIA PER RIDONDANZA
Guasto ridondante q sa1

Non esiste un vettore che testi q sa1


Mascheramento di guasti multipli
•  Il guasto singolo f sa0 è testato dal vettore di input 110.
Mascheramento di guasti multipli
•  f sa0 è mascherato quando è anche presente q sa1
Introduzione intenzionale della
ridondanza: implicante BC
•  Per eliminazione di hazard nell’ouptut del circuito
Cono di guasto e frontiera D
•  Cono di guasto – hardware interessato dal guasto
•  Frontiera D – Insieme di porte logiche vicine ai PO
con effetti dei guasti ai loro input

Frontiera D

Cono di guasto
Algoritmo per la rimozione della
ridondanza
Ripetere finchè non ci sono guasti ridondanti:
{
Usare ATPG per trovare i guasti
ridondanti;
Rimuovere tutti i guasti ridondanti con
coni di guasto non sovrapposti;
}
Conclusioni
•  La maggior parte degli algoritmi ATPG usa l’algebra D
•  Il D-Algorithm è stato il primo algoritmo proposto ed è un algoritmo
completo:
•  Se esiste un vettore di test, lo trova oppure
•  Determina che il guasto è ridondante (ovvero che non esiste un
vettore di test per rilevarlo)
•  La complessità cresce esponenzialmente con la dimensione del
circuito
•  Esistono altri algoritmi più veloci che sono stati proposti
recentemente
•  Gli algoritmi di ATPG possono essere anche usati per ottimizzare la
logica combinatoria di un circuito
•  In casi di logica ridondante alcuni guasti non possono essere rilevati

Potrebbero piacerti anche