Sunteți pe pagina 1din 10

Diagnoza 273

VI. PROIECTARE PENTRU TESTABILITATE

1. Introducere

1.1 Despre proiectarea pentru testabilitate

Odata cu cresterea gradului de integrare, care a crescut


compactitatea sistemelor electronice si a dus la realizarea unor plachete din
ce în ce mai complexe, precum si odata cu cererile de Τnalta fiabilitate,
problema facilitarii testarii devine din ce în ce mai importanta.
Costurile majore care intervin in procesul de testare se refera la:
- generarea testelor;
- evaluarea testelor;
- aplicarea testelor.
Din dorinta de a reduce costul total al ciclului de testare au fost
dezvoltate o serie de tehnici de proiectare pentru cre∏terea
disponibilitatilor de testare ale sistemelor digitale, fara reducerea
semnificativa a performantelor lor.
In ultimii ani problema s-a acutizat datorita tehnologiei SMT, care a
dus la aparitia de placi fara gauri metalizate si cu distante mici între pini,
ceea ce Τngreuneaza mult accesul pe placa.
Dezvoltarea în timp a metodelor de proiectare pentru testabilitate a
cuprins doua etape. In prima etapa s-au dezvoltat diferite metode de
proiectare care usureaza testarea. In etapa a doua s-au dezvoltat metode de
proiectare structurata pentru cresterea testabilitatii, culminând cu standardul
de proiectare pentru testabilitate IEEE 1149.
Notiunea de testabilitate este foarte larga si include efortul cerut
pentru generarea testelor, analiza acoperirii defectelor, dimensionarea
setului de teste, timpul de aplicare a testului, precum si costul
echipamentului de test. In diferite implementari ale unei functii, unele sunt
mai testabile decât altele. Totusi, utilizând o implementare mai testabila a
unei sectiuni a unui chip nu se poate simplifica testarea întregului chip. Cu
cresterea complexitatii, problema observabilitatii ∏i controlabilitatii devine
mai dificila. Dificultatile Τn testarea CI au inspirat idea proiectarii pentru
testabilitate(DFT). DFT este o colectie de diferite tehnici. Aceste tehnici
pot fi implementate în doua moduri: (1) proiectul original este facut fara
274 Fiabilitate si Diagnoza

considerarea testarii si apoi un inginer adauga circuit de test; (2) inginerul


proiectant ia în considerare testarea de la început si încorporeaza circuit de
test.
Un numar de tehnici ad hoc cum ar fi adaugarea de puncte de test
∏i partitionarea sunt des utilizate pentru a simplifica testarea. Tehnicile
structurate cer adaugarea de extra-circuit in proiectul original. Aceste
metode pot sau nu sa ceara schimbari majore în procesul de proiectare.
Totusi, anumite restrictii minore trebuie întotdeauna respectate de inginerul
proiectant.

1.2 Metode de proiectare structurata pentru cresterea testabilitatii


(SDFT)
Metodele de proiectare structurata pentru cresterea testabilitatii
contin un set de reguli, care aplicate sistematic conduc la o buna
testabilitate. Ele au fost elaborate de firme mari care îsi pot permite
utilizarea unui procent ridicat de hardware suplimentar destinat asigurarii
unui coeficient de functionare cât mai ridicat si au culminat cu dezvoltarea
familiei de standarde IEEE 1149.x.

1.2.1 Metode SCAN

Metodele SDFT care au în vedere ca toate elementele de memorie


(bistabile) sa poata fi controlate si observate cât mai simplu în vederea
simplificarii elaborarii testelor, formeaza clasa metodelor de tip SCAN.
Pentru a controla si observa k elemente de memorie ar fi necesare
2k puncte de test. Williams si Angell au propus o procedura care atinge
acelasi obiectiv, dar necesita doar doi pini.
Ideea de baza este utilizarea unui semnal de control c, si
proiectarea logicii de excitatie a elementelor de memorie astfel încat, când
c=0 circuitul sa functioneze normal, iar când c=1, circuitul sa intre într-un
mod în care elementele de memorie sunt astfel conectate încît formeaza un
registru de deplasare.
Daca presupunem ca în mod mormal circuitul are intrarile primare
x, iesirile z, este realizat cu n bistabile JK, definite prin variabilele de stare
y=(y1,y2,...,yn), si logica de excitatie este:
Ji=fi(x,y) ,i=1..n
Ki=gi(x,y) ,i=1..n
Diagnoza 275

Zj=hj(x,y) ,j=1..m,
atunci circuitul modificat este:
J1=c/×f1(x,y)+c×x1
K1=c/×g1(x,y)+c×x1
Ji=c/×fi(x,y)+c×yi-1 ,i=2..n
Ki=c/×gi(x,y)+c×yi-1 ,i=2..n
z1=c/×h1(x,y)+c×yn
z2=c/×h2(x,y)+c×yn,
unde z2 este un punct de observatie daca m=1.
Un asemenea circuit are urmatoarele proprietati:
(1) este usor de initializat în orice stare interna dorita
(2) starea circuitului este usor observabila

Pentru un defect dat, un test consta dintr-o stare initiala si un vector


de intrare (nu o secventa !), care din starea initiala produce o stare sau o
iesire incorecta. Un asemenea test se poate determina utilizînd procedurile
de generare de teste pentru circuite combinationale. Acest test poate fi
utilizat pentru circuite secventiale utilizind urmatoarea procedura:

PROCEDURA scan
c=1; /* mod test
Executa verifica_registru_de_deplasare;
Repeta pentru toate testele
Executa selectie_test;
Executa setare registru de deplasare într-o stare initiala;
c=0; /* mod normal
Executa aplica_test; /* pentru a genera o iesire sau o stare
/* incorecta
c=1; /* mod de deplasare
Executa deplasare stare pentru a observa defectul;
SR
SP
Rutina verifica_registru_de_deplasare contine aplicarea pe intrarea
seriala a urmatoarelor secvente: 00..0 11..1 0101..01.

Arhitecturile scan s-au dezvoltat în mai multe variante:


(1) arhitecturi scan de baza
(a) arhitectura scan seriala completa
276 Fiabilitate si Diagnoza

- ScanPath (Nippon Electric Co,1975)


- Level Sensitive Scan Design(IBM,1977)
(b) arhitectura scan seriala izolata (registrul scan nu se afla
în calea normala de date)
-Scan/Set (Sperry-Univac,1977)
(2) arhitecturi scan neseriale (nu folosesc registrul de
deplasare ci un mecanism de adresare independent)
- Random Access Scan (Fujitsu,1980)

1.2.2 Scan design

1.2.2.1 Multiplexed Data Scan Design (MDSD)


Fie circuitul secvential sincron din figura B_VI-1, unde intrãrile in
logica combinationalã sunt intrãrile primare (PI) si iesirile bistabilelor F-F
(starea curentã) iar iesirile din ea sunt iesirile primare si intrarile in bistabile
(starea urmãtoare).

Flip flop Flip flop

Clock

Outputs
Inputs

Figura B_VI-1. Circuit secvential

Un circuit proiectat conform metodei MDSD are structura din Figura


B_VI-2.
Diagnoza 277

SW FF SW FF

CK SW

p= 1 - Scan Mode
0 - Normal Mode

Scan Input
p

b
SW

Figura B_VI-2. Circuit cu MDSD


Metoda de testare este:
1. p=1 - modul scan

2. Testarea lantului scan aplicând secvente alternative de 1 si 0. Acesata


asigura ca lantul scan este capabil sa shifteze orice data si ca nici una din
liniile flip-flop nu au defecte de tip "stuck-at".

3. Shiftare seriala în starea ceruta de catre vectorul de test urmator. Aceasta


se realizeaza prin setarea circuitului in modul scan (p=1), si aplicarea
seriala a intrari urmatoare la intrarea scan. Notam ca în timpul acestui
proces PI ale circuitului pot avea orice valoare.

4. p=0 - mod normal. Se aplica la PI valorile cerute de vectorul de test si se


verifica valorile de iesire primare. Se da CK pentru ca circuitul sa treaca în
starea urmatoare.
278 Fiabilitate si Diagnoza

5. p=1 - mod scan. Shiftare seriala si verificare stare circuit. Simultan se


încarca starea ceruta de testul urmator.

6. Go to la pasul 4 pentru a aplica noi vectori.

In proiectul de mai sus s-a presupus ca elementele de memorie sunt


bistabile actionate pe front. Daca ele actioneaza pe nivel operarea lor ca si
registru de deplasare în modul scan nu este posibila.

1.2.2.2 Level Sensitive Scan Design (LSSD)

Este una dintre cele mai raspîndite metode de tip scan. Metoda
impune doua conditii :
(a) Toate schimbarile de stare sunt controlate de nivelul semnalului
de ceas si nu de front (aspectul dependentei de nivel);
(b) Toate elementele bistabile pot fi interconectate într-un registru
de deplasare.

Este evident ca metoda impune restrictii asupra schimbarilor pe


intrari, astfel încât sistemul sa-si poata stabiliza starile interne. Acest lucru
este realizat prin semnale de ceas decalate în timp.

Un element de memorie dependent de nivel are functia de excitatie:

Q+=C×D+Q×D+Q×C/
unde:
- C -ceas; D -intrare de date; Q -stare curent|.
Se observa ca: C=0 => Q+=Q;
C=1 => Q+=D;
,cu observatia ca tranzitia în 1 a ceasului trebuie facuta numai dupa ce s-
a stabilizat intrarea D.

Celula de baza LSSD se numeste Shift-Register-Latch(SRL) si este


formata din doua latch-uri (L1,L2) în cascada, cu intrarile:
Diagnoza 279

D
Q1 = Q 1+
C
LA
DT
C1
Q2 = Q2+

LB

C2

Reg SRL

D O1

DT
O2

C1

C2
Figura B_VI-3. Celula LSSD

- D - intrarea normala de date - este conectata cu una din liniile de


iesire de tip stare urmatoare, prin intermediul unei logici combinationale;
- C - ceas sistem - utilizat în timpul functionarii normale a
circuitului pentru a memora starea urmatoare a circuitului în bistabilul L1,
tinând cont de intrarea D;
- DT- intrare de date scan - conectata fie cu pinul scan de intrare fie cu
iesiea bistabilului L2 al celulei scan anterioare;
- C1 - ceas 1 - memoreaza datele de la intrarea DT în L1 (de control a
nivelului 1);
- C2 - ceas 2 - memoreaza iesirea lui L1 în L2 (de control al nivelului
2).
280 Fiabilitate si Diagnoza

si iesirile:
O1-iesirea de sistem; O2-spre celula urmatoare.

Functiile de excitatie sunt:

Q1+=C×D+C1×DT+Q1×(C/+D)×(C1/+DT)
Q2+=C2×Q1+Q2×Q1+Q2×C2/
O1=Q1
O2=Q2.
In regim normal C1=C2=0 iar în regim de test C=0 ,C1 si C2 sunt
active decalat în timp.
Se observa ca termenii de forma Q×D sunt redondanti, ei asigurînd
de fapt dependenta de nivel. O alta varianta de element de baza SRL este
"latch-ul dublu (figura B_VI-4).

PO
y1
Y1
D
C L1 Sc a n
C1
o ut

y2
PI
Y2
D
C
C1

yn
Yn
D
C
C1

C
C1
DT
C2

y1 ,....,yn - Sta re a c u re n ta
Y1 ,....,Yn - Sta re a u rm a to a re
Diagnoza 281

D L1
C

DT
C1 L2

C2

Figura B_VI-4. Circuit secvential cu LSSD


In acest caz în functionarea normala (C1=0) L1 = D×C + Q×C/.
Deoarece lipseste termenul redondant utilizarea latch-lui se face
numai în regim Master-Slave. Interconectarea latch-urilor se face
similar numai ca în exterior nu se mai utilizeaza iesirile lui L1 ci
numai iesirile lui L2. In functionarea normala, comanda se face cu C
∏i C2 (decalate), iar în regim de test cu C1 si C2 (decalate).

Testarea are urmatorii pasi:


1. Testeaza lantul scan aplicând secventa 10...10 si utilizând ceasurile
C1, C2;
2. Incarca serial, de la Scan-in, starea ceruta de urmatorul vector de
test utilizând C1 si C2.
3. Aplica intrarile primare cerute de vectorul de test si verifica iesirile
primare;
4. Incarca starea urmatoare (Y1, Y2, ..., Yn) în L1, L2 cu ceasurile C
si C2; starea urmatoare va deveni stare curenta;
5. Descarca serial starea urmatoare si o verifica; încarca serial starea
curenta ceruta de urmatorul vector de test.
6. Continua daca mai sunt teste cu pasul 3.

Avantajele metodei:
282 Fiabilitate si Diagnoza

1. Simplificarea proiectarii; se poate face si verificarea automata a


proiectului.
2. Generarea secventelor de testare este mult simplificata, fiind
redusa la testarea circuitelor combinationale.
3. Aplicarea testelor si diagnoza se simplifica mult.

Dezavantaje:
1. Metoda presupune adaugarea de componente suplimentare (4 -
20%): bistabili, pini de test
2. Marirea timpului de test. Acesta poate scadea prin marirea
numarului de lanturi scan
3. Nu se poate face testarea la viteza maxima de functionare.
4. Restrictiile în proiectare reduc creativitatea.

1.2.3 Scan partial


R2

R1 C3 C4 R3

C1 C5

R4 C2 R5 R7

R6

Figura B_VI-5. Scan partial


Anumite elemente de memorie sunt excluse din calea scan.
Selectia elementelor memorie se face astfel încât:
- sa nu se formeze cicluri;
- caile dintre oricare blocuri combinationale sa aiba acelasi elemente
de memorie nescanate - schema sa fie balansata.
Testele pentru o astfel de cale se pot genera folosind un
generator de teste combinationale.