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
Fabricatedchips
Good chips
Defective chips
Prob(good) = y
Prob(bad) = 1- y
Prob(pass test) = high
Prob(fail test) = high
Prob(fail test) = low
Prob(pass t
est) = lo
w
Mostlygoodchips
Mostlybad
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.
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
B
Out
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
B
Out
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 openA B Out
Out /st-open
note
0 0 1 Z Hi-Z
0 1 0 0 silent
1 0 0 0 silent
1 1 0 0 silent
2 input Nor
A
A
B
B
GND
Vdd
Quando A=0 e B=0 Out è in alta impedenzaLa sequenza AB 01,00 permettedi rilevare il guasto:• AB 01 , Out =0 •AB 00, Out rimane 0 perché B non si accende
Out
Stuck closeA B Out
Out /st-close
note
0 0 1 1 silent
0 1 0 Xpartitore resistivo
1 0 0 0 silent
1 1 0 0 silent
2 input Nor
A
A
B
B
GND
Vdd
Il valore dell’uscita quando A=0 e B=1 è ignoto e dipende dalvalore della resitenza parassita . Vout=Vdd*Ron/(2Ron+Rb)Si può rilevare una corrente parassita tramite Iddq testing
Out
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
Fault-free x1 dom x2 x2 dom x1
x1 x2 x’1 x’2 x’1 x’2
0 0 0 0 0 0
0 1 0 0 1 1
1 0 1 1 0 0
1 1 1 1 1 1
Modello Dominant value x1
x2
x’1
x’2
x1 dom x2:
x2 dom x1:
x1
x2
x’1
x’2
x1
x2
x’1
x’2
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
A
B
C
1
2
3
A B CA 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
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 ATPGRandom pattern generator
Fault simulator
Fault coverage improved?
Random patterns effective?
Save patterns
DeterministicATPG
yes no
yes
no
Compactvectors
CoverageSufficient?
noyes
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 (fault-free) 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
Circuito con guasto f1
Circuito con guasto f2
Circuito con guasto fn
Comparatore f1 rilevato?
Comparatore f2 rilevato?
Comparatore fn rilevato?
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?
X100101XX
Stuck-at-0 fault
1/0
Fault activation
Path sensitization
Primary inputs(PI) Primary outputs
(PO)
Combinational circuit
1/0
Fault effect
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• Attivare un dato guasto e sensitizzare il percorso
verso i PO
XX
X sa1
Circuit
VectorSpace
X0
1 sa1
Circuit
VectorSpace
0/1
001 101
Bisogna gestire due copie del circuito
X0
1
Good circuit
0
X0
1 sa1
Faulty circuit
1
X0
1 sa1
Circuit
0/1
Alternativamente si può usare unalogica a più valori per gestireSia il circuito buono che quello guastoallo stesso tempo
Sam
e in
put
Diff
eren
t ou
tput
s
X
X X
Algebra a valori multipli
Simbolo
DD01X
RappresentazioneAlternativa
1/00/10/01/1X/X
CircuitoGuasto
0101X
CircuitoFunzionante
1001X
AlgebradiRoth
Funzione di una porta NAND
cInput a
0 1 X D
0 1 1 1 1 1
1 1 0 X D
X 1 X X X X
D 1 X 1
1 D X 1 D
D
D
D
D
D
a
b c
D1/0
0/1
D
1
Inpu
t b
Uso della notazione D
X0
1 sa1
Circuit
0/1
Il valore 0/1 viene rimpiazzato da D e la sua propagazione avviene tramite le regole booleane descitte
XX0
1 sa1
Circuit
D
X
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
Muxed-D Scan Cell
Il select del Multiplexer è scan enable (SE) che permette di selezionare tra l’input funzionale o dato in ingresso (DI) e l’ingresso dello scan (SI).
Esempio di circuito sequenziale
Architetture per lo scan
CK
D QDI
SI
0
1
SE
Q/SO
CK
D QDI
SI
0
1
SE
Q/SO
.D Q
FF1
CK
X2 Combinational logicX3
X1
Y2
Y1
D Q
FF2
D Q
FF3
..D Q
FF1
CK
X2 Combinational logicX3
X1
Y2
Y1
D Q
FF2
D Q
FF3
.
System on Chip Test Architectures, Wang, Stroud, Touba (ed.), Morgan Kaufmann, Burlington MA, 2008, ISBN: 978-0-12-373973-5
Architetture per lo scan
Muxed-D Scan Design
Si sostituiscono i Flip Flop FF1, FF2 ed FF3 con SFF1, SFF2 e SFF3.
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
.
X2Combinational logicX3
X1
Y2
Y1PI
PPI
PO
PPO
DIQ
SFF1
SISE
.
DIQ
SFF2
SISE
SE
DIQ
SFF3
SISE
CK
SI
. .
... SO
.
X2Combinational logicX3
X1
Y2
Y1PI
PPI
PO
PPO
DIQ
SFF1
SISE
.
DIQ
SFF2
SISE
SE
DIQ
SFF3
SISE
CK
SI
. .
... SO
System on Chip Test Architectures, Wang, Stroud, Touba (ed.), Morgan Kaufmann, Burlington MA, 2008, ISBN: 978-0-12-373973-5
Vettori di Test Combinatorio
I2 I1 O1 O2
S2S1 N2N1
Combinational
logic
PI
Presentstate
PO
Nextstate
SISE
SO
I2 I1
O1 O2
PI
PO
SCANIN
SCANOUT
S1 S2
N1 N2
1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 SE
Bit random o don’t care
Lunghezza sequenza= (ncomb + 1) nsff + ncomb clock periods
ncomb = numero dei vettori combinatorinsff = numero dei flip flop di scan
Vettori di Test Combinatorio
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
SFFSFF
SFF
Combinationallogic
PI/SI PO/SOMUX
CK
SE
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
IOpad
Flip-flopcell
Interconnects
Routingchannels
SFFcell
SE
SCANIN
SCANOUT
Y
XX’
Y’
Active areas: XY and X’Y’
Progettazione automatica per lo ScanBehavior, RTL, and logicDesign and verification
Gate-levelnetlist
Scan designrule audits
CombinationalATPG
Scan hardwareinsertion
Chip layout: Scan-chain optimization,timing verification
Scan sequenceand test program
generation
Design and testdata for
manufacturing
Ruleviolations
Scan netlistCombinatio
nalvectors
Scan chain order
Mask dataTest program
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
CUT
StoredTest
Patterns
Storedresponses
PinElectronics
Comparatorhardware
Test control HW/SW
ATE
PG
RA
CUT
Go/No-go signature
Tes
t co
ntro
l log
ic
CK
BISTEnable
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
D QX2
D QX1
D QX0
X2 X1 X0
CK
RESET
000
100 001
110 010
111 101
011
RESET
LFSR: 1 + X + X3
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