Test e design for testability
Tipi di Collaudo
Esistono vari tipi di collaudo:
1.Verification test, characterization test Verifica
la correttezza del progetto e delle procedure
di collaudo – di solito richiede correzioni al
progetto
2.Manufacturing test Collaudo di fabbrica di
tutti i chip prodotti per guasti parametrici e
difetti casuali
3.Acceptance test (incoming inspection)
Collaudo svolto dai clienti sui chip
acquistati per verificarne la qualità
Manufacturing test
• La resa Y misura la qualità del processo produttivo
• Il manufacturing test è il mezzo con cui si viene a conoscere la
resa
• Fatto tramite apparecchiature molto costose detti ATE (Automatic
Test Equipment)
• Per collaudare i componenti gli ATE usano diverse tecniche:
–
–
–
–
ATPG Automatic Test Pattern Generation
IDDQ test
Parametric testing
etc
• Per poter usare ATPG i guasti devono essere modellati nei loro
effetti funzionali, ovvero come cambiamenti delle funzioni
booleane -> modelli di guasto stuck - at
Incoming inspection
• Problema: Il collaudo può essere imperfetto
– Parti buone marcate come guaste
– Parti guaste vendute ai clienti rende necessaria incoming inspection
Good chips
Prob(pass test) = high
Prob(good) = y
Mostly
good
chips
Fabricated
chips
Defective chips
Prob(bad) = 1- y
Prob(fail test) = high
Mostly
bad
chips
Testing as
Filter Process
(Bushnell
Agrawal)
Defect Level
• Defect level (DL) è la parte di chip guasti sul numero
totale dei chip che passano il collaudo
• DL si misura in parti per milione (ppm).
• DL è una misura della efficienza del collaudo ed è
una funzione della sua copertura (fault coverage)
• Limiti: se la copertura è 100% il DL =0 se la
copertura è 0 (non si collauda) il DL = 1-Y (tutti i
componenti guasti vengono messi in vendita)
• DL è una misura quantitativa della qualità del
prodotto fabbricato. Per chip VLSI commerciali DL
maggiore di 500 ppm non è accettabile.
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
Copertura e DL
DL in funzione di T
0.07
0.06
0.05
0.04
0.03
DL
0.02
0.01
0
Automatic Test Pattern Generation
Modelli di guasto
Il primo passo per ATPG è la scelta del
livello di descrizione del circuito e dei
modelli di guasto da utilizzare
Un modello di guasto deve essere in grado
di rappresentare una vasta gamma di
malfunzionamenti, anche molto diversi da un
punto di vista fisico, pur mantenendo la
massima semplicità
Modelli di guasto
•
•
•
•
stuck-at-0/1
Stuck-open/close
Bridging
Delay fault
Guasti di tipo transistor stuck-close o bridging
possono dar luogo sia ad un incremento della
corrente statica assorbita dal circuito, sia a valori
di tensione sulle linee di segnale intermedi tra i
livelli standard
Guasti di tipo stuck-at
• Il modello di guasto di tipo stuck-at è il più
diffuso
• E’ possibile creare algoritmi per la
generazione dei vettori di test mirati alla loro
rilevazione
• Single stuck at model: un ingresso o l’uscita
di una porta logica è fissa a 0 (stuck at 0) o
ad 1 (stuck at 1)
Guasti di tipo stuck-at
• Porta logica AND
A
Out
B
A
B
Z
A SA0
ASA1
BSA0
BSA1
OutSA1
OUTSA0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
Guasti di tipo stuck-at
• Porta logica OR
A
Out
B
A
B
Z
A SA0
ASA1
BSA0
BSA1
OutSA1
OUTSA0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
Stuck open
Vdd
B
Out
0
0
1
Z
Hi-Z
0
1
0
0
silent
1
0
0
0
silent
1
1
0
0
silent
B
A
Out /stnote
open
A
Out
B
A
GND
2 input Nor
Quando
A=0 e B=0 Out è in alta impedenza
La sequenza AB 01,00 permette
di rilevare il guasto:
• AB 01 , Out =0
•AB 00, Out rimane 0 perché B non
si accende
Stuck close
Vdd
B
Out
0
0
1
1
silent
0
1
0
X
partitore
resistivo
1
0
0
0
silent
1
1
0
0
silent
B
A
Out /stnote
close
A
Out
B
A
GND
2 input Nor
Il valore dell’uscita quando
A=0 e B=1 è ignoto e dipende dal
valore della resitenza parassita .
Vout=Vdd*Ron/(2Ron+Rb)
Si può rilevare una corrente
parassita tramite Iddq testing
Bridging
• Il Bridge (ponte) è un collegamento resistivo
tra nodi (ingressi o uscite) di due porte
logiche del circuito che non dovrebbereo
essere connesse
• La funzione associata al nodo dipende da
una funzione di valori presenti tra i nodi
connessi
Bridging
Modello Dominant value
x1
x’1
x2
x’2
x1 dom x2:
x1
x’1
x2
x’2
x2 dom x1:
x1
x’1
x2
x’2
Fault-free x1 dom x2 x2 dom x1
x’1 x’2
x’1 x’2
x1
x2
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
Delay fault
• I difetti possono causare circuiti chiusi o
aperti (facilmente modellati dal modello stuck
at) oppure dei guasti resistivi
• Guasti resistivi possono essere la presenza
di percorsi resistivi spuri oppure l’aumento
della resistenza sulle linee:
– Modello di delay fault: il valore logico statico è
corretto ma la propagazione sul circuito
combinatorio è troppo lunga
– Si misura tra due componenti sequenziali
Delay fault
• Considerato T il periodo del clock
• I guasti sono modellati con:
– Slow to rise: il valore osservato al tempo T è 0 invece di 1
– Slow to fall : il valore osservato osservato al tempo T è 1
invece di 0
• Questi guasti vengono rilevati tramite l’apposizione di 2
vettori di test in successione rapida detta “at speed”
• Fornire i vettori di test at speed su sistemi ad alte
prestazioni richiede tester costosi
– A volte vengono introdotte tecniche di Design for Testability
per creare vettori internamente al sistema
Delay fault - Esempio
• Guasto da rilevare:
– A, slow to rise
• Due vettori caricati sui flop 1 e 2
– AB = 01
– AB = 11
• Dopo un tempo T pari a quello funzionale visto dall’ AND gate il flop
cattura l’effetto della transizione e viene rilevato il guasto poiché viene
letto 0 invece di 1
1
A
B
C
A slow
to rise
note
0
0
0
0
slient
0
1
0
0
silent
1
0
0
0
silent
1
1
1
0
Con t<T
A
C
2
B
3
Simulazione dei guasti
• I sistemi per la generazione di vettori di test per un
circuito combinatorio tramite Automatic Test Pattern
Generation ha un tipico schema di funzionamento
– I vettori di test vengono generati in modo random
– Tramite fault simulation (simulazione di guasti) viene
valutata la copertura del vettore
– Se il miglioramento della copetura non è sufficiente
viene usato un algoritmo di test deterministico
(Deterministic ATPG)
– Quando l’aumento di copertura è suffciente i vettori di
test vengono salvati
– Quando la copertura è sufficiente l’operazione finisce e i
vettori vengono salvati e compattati
Un sistema ATPG
Random pattern
generator
Fault simulator
yes
Fault
coverage
improved?
Save
patterns
no
yes
Compact
vectors
yes
Coverage
Sufficient?
no
Random
patterns
effective?
Deterministic
ATPG
no
Fault Simulation
• Scopo della Fault simulation :
Dato
 Un circuito
 Una sequenza di vettori di test
 Un modello di guasto
Determinare
 Copertura di guasto (Fault coverage) - percentuale dei guasti
modellizzati che sono rilevati dai vettori di test
 Insieme dei guasti non rilevati
• Motivazione
 Determinare la qualità del test e consecutivamente la qualità del
prodotto
 Trovare I guasti difficili da rilevare per migliorare il test
Algoritmo Seriale
• Algoritmo: Simulare il circuito non guasto (faultfree) e salvare le risposte. Ripetere i passi
seguenti per ogni guasto nella lista dei guasti:
• Modificare la netlist iniettando un guasto
• Simulare la netlist modificata vettore dopo vettore
comparando le risposte a quelle salvate
• Se la risposta differisce riporta che il guasto è rilevato e
sospendi la simulazione sui vettori rimasti
• Vantaggi:
• Facile da implementare; richiede solo un simulatore di
valore vero, meno memoria
• La maggior parte dei guasti può essere simulata
Algoritmo seriale (Cont.)
• Svantaggio: Molta computazione ripetuta. I tempi di
calcolo sono proibitivi in particolare per circuiti VLSI
• Alternativa: simulare molti circuiti in parallelo
Vettori di collaudo
Circuito funzionante
Comparatore
f1 rilevato?
Comparatore
f2 rilevato?
Comparatore
fn rilevato?
Circuito con guasto f1
Circuito con guasto f2
Circuito con guasto fn
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
Primary inputs
(PI)
X
1
0
0
1
0
1
X
X
Combinational circuit
1/0
1/0
Primary outputs
(PO)
Stuck-at-0 fault
Path sensitization
L’ATPG è un problema di ricerca
• Cercare nello spazio dei vettori di ingresso
per trovare un vettore di test:
Vector
Space
• Inizializzare tutti i segnali allo stato sconosciuto (X) –
lo spazio vettoriale completo è il campo da gioco
• Attivare un dato guasto e sensitizzare il percorso
verso i PO
Vector
Space
Circuit
X
X
X
Circuit
X
0
sa1
1
001
101
sa1
0/1
Bisogna gestire due copie del circuito
X
1
0
Same input
X
0
Faulty circuit
X
X
0
1
sa1
1
Different outputs
Good circuit
Alternativamente si può usare una
logica a più valori per gestire
Sia il circuito buono che quello guasto
allo stesso tempo
Circuit
X
X
0
1
sa1
0/1
Algebra a valori multipli
Rappresentazione
Circuito
Simbolo
Alternativa
Funzionante
Circuito
Guasto
D
D
0
1
X
1/0
0/1
0/0
1/1
X/X
1
0
0
1
X
0
1
0
1
X
Algebra
di
Roth
Funzione di una porta NAND
Input a
c
b
0/1
D
1
1
X
D
D
0
1
1
1
1
1
1
1
0
X
D
D
X
1
X
X
X
X
D
1
D
X
D
1
D
1
D
X
1
D
c
Input b
a
D
1/0
0
Uso della notazione D
Il valore 0/1 viene rimpiazzato da D e la sua propagazione
avviene tramite le regole booleane descitte
Circuit
X
X
0
1
Circuit
sa1
0/1
X
X
0
1
sa1
D
Algoritmi di ATPG
• La maggior parte degli algoritmi ATPG usa l’algebra D
• il primo algoritmo proposto si chiama D algorithm 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 esponenzilamente con la dimensione del
circuito
• Esistono altri algoritmi più veloci che sono stati proposti
recentemente
Collaudo delle memorie
• Il collaudo delle memorie viene trattato in modo
diverso dai circuiti combinatori
• Negli algoritmi di test viene sfruttata la modailtà di
accesso dei dati creando sequenze di letture e
scritture mirate alla rilevazione dei guasti
• E’ fondamentale che il numero di letture e scritture
abbia una relazione lineare con la dimensione della
memoria
• Tipicamente viene aggiunto un sistema di test on
board chiamato Memory BIST (Built In Self Test)
mirato ad applicare in modo automatico i suddetti
algoritmi
Design for testability
• Design for Testability ovvero progettazione finalizzata al
collaudo è l’insieme delle tecniche di progettazione che
vengono usate per rendere possibile o comunque
migliorare il collaudo di un sistema.
• DFT è una parte importante del flusso di progetto e deve
essere tenuto in considerazione fin dalle fasi iniziali della
progettazione di un nuovo componente
• Le necessità cambiano con la complessità del sistema ma
in generale una parte non trascurabile del “silicio” viene
riservata ai circuiti di test
• Esempi di DFT
–
–
–
–
Inserzione delle catene di scansione (scan chain)
At-speed testing
Compressione e decompressione dei vettori di test
Circuiti di Built In Self Test (BIST) per le memorie (MBIST) o per la
logica combinatoria (LBIST)
Inserzione dello scan
• E’ una tecnica ampiamente usata per il DFT
• Si rimpiazzano tutti gli elementi di memoria con
speciali celle per lo scan (scan cells)
• Si connettono le scan cells in scan chains, procedura
nota come stitching (letteralmente sutura)
• Lo Scan ha tre modlità:
– Modalità normale (o mission mode)
• Tutti i segnali relativi allo scan sono messi a 0
• Il sistema funziona in base alle sua configurazione funzionale
originale.
– Modalità di scansione (o shift mode)
• Si inseriscono o si estraggono i dati dalle scan chains
– Modalità di cattura
• Si cattura la risposta al test nelle catene di scan
System on Chip Test Architectures, Wang, Stroud, Touba (ed.), Morgan
Kaufmann, Burlington MA, 2008, ISBN: 978-0-12-373973-5
Architetture per lo scan
DI
SI
0
1
SE
Q
D
Q/SO
X1
X2
X3
CK
Muxed-D Scan Cell
CK
Il select del Multiplexer è Esempio
scan enable (SE) che
permette di selezionare tra
l’input funzionale o dato in
ingresso (DI) e l’ingresso
dello scan (SI).
Y1
Y2
Combinational logic
FF1
FF2
FF3
D Q
D Q
D Q
.
.
di circuito sequenziale
System on Chip Test Architectures, Wang, Stroud, Touba (ed.), Morgan
Kaufmann, Burlington MA, 2008, ISBN: 978-0-12-373973-5
Architetture per lo scan
PI
X1
X2
X3
Si sostituiscono i Flip
PO Flop FF1, FF2 ed FF3
Y2
con SFF1, SFF2 e
PPO SFF3.
Y1
Combinational logic
PPI
SI
SE
CK
SFF1
SFF2
SFF3
DI
SI Q
SE
DI
SI Q
SE
DI
SI Q
SE
. .
.
.
.
. .
Muxed-D Scan Design
SO
Nella modalità,di shift
SE è ad 1, e tutte le
scan si comportano
come un unico shift
register
Nella modalità di cattura
SE è messo a 0, e le
scan cells sono usate
per catturare la risposta
al test dalla logica
combinatoria
System on Chip Test Architectures, Wang, Stroud, Touba (ed.), Morgan
Kaufmann, Burlington MA, 2008, ISBN: 978-0-12-373973-5
Vettori di Test Combinatorio
PI
I1
I2
O2
Combinational
SI
SE
Present
S1
state
O1
SO
logic
S2
PO
N1
N2
Next
state
Vettori di Test Combinatorio
PI
Bit random
o don’t care
I1
I2
SCANIN
S1
S2
SE 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
PO
SCANOUT
O2
O1
N1
N2
Lunghezza sequenza= (ncomb + 1) nsff + ncomb clock periods
ncomb = numero dei vettori combinatori
nsff = numero dei flip flop di scan
Registri di scan multipli
• I Flip flop di scan possono essere distribuiti tra più registri
di scansione, ognuno dei quali ha un pin di scan in e
scan out dedicato
• La lunghezza della sequenza di test è determinata dalla
lunghezza dello shift register più lungo.
• E’ necessario solo un pin di Scan Enable (SE)
• I pin di I/O possono essere usati per lo scan in modalità
di test
PI/SI
PO/SO
Combinational
logic
SFF
SFF
SFF
SE
CK
M
U
X
Parti in più dovute allo scan
• Pin di IO : E’ necessario un pin
• Area in più, nel caso di Mux-D ogni scan flip flop ha 4
porte logiche in più dovute all’aggiunta del multiplexer
– Porte logiche = [4 nsff/ntot] x 100%, dove
ntot = porte logiche totali;
nff = numero di flip flop;
Esempio – ng = 100k gates, nsff = 2k flip-flops, overhead = 8%.
– Una stima più accurata deve considerare anche l’impatto dei
collegamenti tra i flip flop nelle scan chain
• Impatto sulle prestazioni
– Il ritardo del Multiplexer viene aggiunto nel percorso
combinatorio: approssimativamente in MuxD ritardo di 2 porte
logiche
– Carico sul fanout del flip flop dovuto all’extra fanout che va
verso lo SI della prossima cella.
Disposizione dello Scan Ottimale
X’
X
IO
pad
SFF
cell
SCAN
IN
Flipflop
cell
Y
Y’
SE
Routing
channels
Interconnects
Active areas: XY and X’Y’
SCAN
OUT
Progettazione automatica per lo Scan
Behavior, RTL, and logic
Design and verification
Rule
violations
Scan design
rule audits
Gate-level
netlist
Combinational
ATPG
Combinatio
nal
vectors
Scan hardware
insertion
Scan netlist
Scan sequence
and test program
generation
Test program
Scan chain order
Design and test
data for
manufacturing
Chip layout: Scanchain optimization,
timing verification
Mask data
Considerazioni sulla inserzione
dello scan
• Lo Scan è la tecnica di DFT più usata:
• Progettazione basata su regole
• Inserzione automatica dell’hardware relativo
• Permette l’uso di ATPG combinatorio
• Vantaggi:
• Progettazione automatica
• Alta copertura ai guasti, utile nella diagnosi
• Moduli gerarchici di scan possono essere facilmente combinati
insieme in progetti complessi
• Moderato overhead di area (~10%) e velocità (~5%)
• Svantaggi:
• Largo volume dei test data e lungo tempo di test
• Essenzialmente è un test a bassa velocità se il clock viene
controllato dai pin (non at- speed)
Definizione di Built-In Self-Test
• Si implementano le funzionalità dell’ automatic test
equipment (ATE) sul circuit under test (CUT).
• Hardware aggiunto al CUT:
• Pattern generation (PG)
• Response analysis (RA)
• Test controller
Stored
Test
Patterns
Pin
Electronics
Test control HW/SW
Stored
responses
ATE
Comparator
hardware
CUT
BIST
Enable
PG
Test control logic
CK
CUT
Go/No-go
signature
RA
Pattern Generator (PG)
• Diversi modi per implementare il generatore di vettori
di test:
– Una RAM o una ROM contenente vettori deterministici
– Un contatore
– Generatore di vettori pseudorandom
• Feedback shift register
RESET
100
001
000
D Q
X2
D Q
X1
010
110
D Q
X0
101
111
011
CK
LFSR: 1 + X + X3
RESET
X2
X1
X0
Response Analyzer (RA)
• Si usa un generatore di cyclic redundancy check code (CRCC) (LFSR)
come compattatore della risposta
• Si trattano gli n bit di dato dai PO del circuito che devono essere
compattati come i coefficienti di ordine decrescente di un polinomio di
grado n-1
• CRCC divide il polinomio proveniente dal PO per il suo polinomio
caratteristico
 Il resto della divisione rimane nell’LFSR
 Bisogna inizializzare l’LFSR a un valore di seme (tipicamente 0) prima di testare
• Dopo il test si compara il valore della firma nel LFSR con una firma
precalcolata per il circuito non guasto
BIST e Scan chain
PG
Scan register
Comb. logic
Scan register
BIST
enable
BIST
Control
logic
Go/No-go
signature
Comb. logic
Scan register
Comb. logic
RA
Scan register
Esempio
con una
sola scan
chain
Scarica

Simulazione dei guasti