Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
no no
no no
Inconsiste Fron9era
nza?
D
nulla?
sì sì
Possibili
percorsi
sì sì possibili
percorsi
alterna9vi
di
alternativi di
propagazione?
giustificazione?
no no
a2 d
a1 c1
a c
b f
b1 c2
e
b2
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
• 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.
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