Sunteți pe pagina 1din 44

Circuite Logice SecvenÛiale Sincrone 307

Cap.6 TESTAREA CIRCUITELOR SECVENÚIALE


SINCRONE

Proiectarea unui bloc logic secvenÛial necesit| un efort de calcul mai


mare în comparaÛie cu proiectarea unui bloc combinaÛional, considerând c|
acestea dou| au dimensiuni comparabile (dimensiunea unui bloc oarecare se
poate aproxima printr-un num|r echivalent de porÛi logice). Proiectarea include
şi problemele referitoare la testare. Aceasta din urm| nu reprezint| doar o
singur| etap| bine definit| în flow-ul de proiectare; diferite elemente
referitoare la testare sunt distribuite în toate etapele de proiectare. Mai mult,
testarea se desf|şoar| pe o durat| mai lung| decât proiectarea propriuzis|.
Astfel, dup| fabricarea şi/sau încapsularea chip-urilor se fac verific|ri şi
m|sur|tori care aparÛin tot de domeniul test|rii. Ponderea test|rii în costul final
al unui chip poate s| fie semnificativ| sau chiar dominant| dac| se ia în calcul
şi consumul suplimentar de arie necesar pentru m|rirea testabilit|Ûii.
Termenii “simulare” şi “testare” par a fi sinonimi şi în multe situaÛii pot
fi utilizaÛi ca atare. Îns| în proiectare aceşti termeni desemneaz| activit|Ûi care
se deosebesc radical între ele, dup| cum se arat| în continuare.
Simularea reprezint| un mijloc de evaluare a funcÛion|rii circuitelor prin care
se valideaz| detaliile structurale noi care apar între dou| etape succesive din
flow-ul de proiectare. De exemplu, structura obÛinut| prin sintez| logic| trebuie
s| fie echivalent| funcÛional cu modelul text (HDL - hardware description
language) de intrare în tool-ul de sintez|; prin optimizarea arie/vitez| a unei
porÛiuni dintr-un bloc logic trebuie s| se p|streze echivalenÛa funcÛional| dintre
structura iniÛial| şi cea final|. EchivalenÛa menÛionat| anterior se refer| la
regimul static de funcÛionare; în regim dinamic pot s| apar| diferenÛe, care îns|
nu sunt în general esenÛiale. Un circuit proiectat şi validat pentru fabricare este
numit în testare “circuit bun”, în contrast cu termenul “circuit defect”.
Testarea are ca scop principal identificarea circuitelor defecte. În etapele de
proiectare sunt create modele distincte pentru circuitele defecte, care sunt
simulate cu ajutorul simulatoarelor de defecte; aceste instrumente soft sunt
mult mai complexe decât simulatoarele obişnuite, cu care se evalueaz| numai
funcÛionarea circuitelor bune. Circuitele defecte au o funcÛionare diferit| faÛ|
de a celor bune şi trebuie rejectate. Defectele sunt de natur| fizic| şi se
datoreaz| imperfecÛiunilor procesului tehnologic. Anumite erori care apar în
308 Cap.6 Testarea circuitelor secvenÛiale sincrone

funcÛionarea circuitelor fabricate nu sunt cauzate de defectele fizice ci provin


din etapele de proiectare. Unele erori de proiectare nu constituie greşeli f|cute
de c|tre proiectanÛi, acestea fiind determinate de imperfecÛiunea modelelor
dispozitivelor precum şi de imprecizia simulatoarelor utilizate. În schimb,
validarea funcÛion|rii unui bloc f|r| acoperirea tuturor cornerelor tehnologice,
a modurilor şi ale condiÛiilor de operare reprezint| greşeli care se datoreaz|
exclusiv proiectanÛilor.

6.1 Proiectarea pentru testabilitate

Reducerea costurilor asociate cu testarea unui circuit se face prin


includerea în structura acestuia a unor componente auxiliare care s| m|reasc|
testabilitatea. Aceste metode sau tehnici de proiectare poart| numele DFT
(design for testability).

6.1.1 Analiza testabilit|Ûii


Testabilitatea reprezint| o m|sur| a dificult|Ûii de testare a unui circuit
sau bloc şi are dou| componente: controlabilitatea şi observabilitatea.
Controlabilitatea unui nod sau net din structura unui circuit digital se refer| la
efortul de calcul sau la dificultatea de a determina valoarea logic| 0 sau 1 în
acel nod prin intermediul valorilor logice aplicate la intr|rile circuitului.
Fiec|rui nod N i se asociaz| dou| numere naturale, C0(N) - controlabilitatea
valorii logice 0 şi respectiv C1(N) - controlabilitatea valorii logice 1. Valorile
mici ale numerelor C0 şi C1 înseamn| dificult|Ûi mici de control iar valorile
mai mari înseamn| dificult|Ûi mai mari de control al nodului. Exist| o corelaÛie
între num|rul de teste sau combinaÛii de valori logice ale intr|rilor primare care
determin| 0 şi 1 logic în nodul N şi respectiv controlabilit|Ûile C0(N) şi C1(N);
existenÛa unui num|r mic de teste implic| în general o dificultate mai mare de
control. Nodurile apropiate de intr|rile primare (intr|ri direct accesibile) sunt
mai uşor de controlat; nodurile apropiate de ieşirile primare (ieşiri direct
accesibile) sunt mai greu de controlat. Apropierea sau dep|rtarea dintre dou|
noduri ale unui circuit reprezint| num|rul de porÛi logice care trebuie traversate
pe cea mai scurt| cale de propagare dintre acestea.
Observabilitatea unui nod sau net din structura unui circuit digital se refer| la
efortul sau la dificultatea de a propaga valoarea logic| din acel nod (0 sau 1)
pân| la cel puÛin una dintre ieşirile accesibile; propagarea se realizez| tot prin
intermediul unui set de valori logice aplicate la intr|rile circuitului. Fiec|rui
nod N i se asociaz| un singur num|r real O(N) cu semnificaÛia de
observabilitate. Nodurile mai apropiate de ieşirile primare sunt mai uşor de
observat, adic| numerele O asociate nodurilor sunt mai mici; cel mai greu de
Circuite Logice SecvenÛiale Sincrone 309

observat sunt de obicei intr|rile primare, acestea fiind net-urile cele mai
dep|rtate faÛ| de ieşiri.
În cazul analizei unui model structural la nivel de poart| logic| (gate
level), disponibil îns| dup| etapa de sintez| logic|, controlabilit|Ûile C0 şi C1
corespunz|toare tuturor net-urilor se determin| printr-o singur| traversare a
circuitului, de la intr|ri c|tre ieşiri. Pentru orice intrare in a unui bloc oarecare
dintr-un sistem (chip) se poate considera c| C0(in) = C1(in) = 0. Acest lucru
presupune accesul direct, din exteriorul chip-ului, la intrarea in a blocului. În
multe cazuri aceast| ipotez| nu este adev|rat| îns| rezultatele obÛinute pot fi
corect utilizate; ele indic| dificult|Ûile de control relative la intr|rile blocului
respectiv iar nodurile mai greu de controlat ies în evidenÛ|. Dup| ce se cunosc
valorile absolute ale controlabilit|Ûilor de la intr|rile unui bloc se pot determina
şi valorile absolute ale controlabilit|Ûilor fiec|rui net sau nod intern, repetând
aceeaşi procedur| de calcul înc| o dat|.
Tabelul din Fig.6.1 conÛine formulele de baz| utilizate în calculul
controlabilit|Ûilor net-urilor dintr-un circuit combinaÛional reprezentat la nivel
de poart| logic|. S-a notat cu out şi in ieşirea şi respectiv o intrare oarecare a
unei porÛi; BUF şi INV au câte o singur| intrare, XOR şi XNOR au câte dou|
intr|ri iar celelalte porÛi au cel puÛin câte dou| intr|ri.

C0(out) = C1(out) =
BUF C0(in) + 1 C1(in) + 1
INV C1(in) + 1 C0(in) + 1
AND min{C0(inj)} + 1 '[C1(inj)] + 1
NAND '[C1(inj)] + 1 min{C0(inj)} + 1
OR '[C0(inj)] + 1 min{C1(inj)} + 1
NOR min{C1(inj)} + 1 '[C0(inj)] + 1
XOR min{C1(in1) + C1(in2), min{C1(in1) + C0(in2),
C0(in1) + C0(in2)} + 1 C0(in1) + C1(in2)} + 1
XNOR min{C1(in1) + C0(in2), min{C1(in1) + C1(in2),
C0(in1) + C1(in2)} + 1 C0(in1) + C0(in2)} + 1

Fig.6.1 Calculul controlabilit|Ûilor C0 şi C1 la traversarea porÛilor logice

OperaÛiile sum| şi minim din tabel se realizeaz| luând în considerare toate


intr|rile inj, j = 1, 2, ..., n ale porÛilor.
310 Cap.6 Testarea circuitelor secvenÛiale sincrone

Observabilit|Ûile net-urilor se determin| printr-o singur| traversare a circuitului


în sens invers, de la ieşiri c|tre intr|ri. Pentru orice ieşire out a unui bloc
oarecare se poate considera c| O(out) = 0. Tabelul din Fig.6.2 conÛine
formulele de baz| utilizate în calculul observabilit|Ûilor net-urilor dintr-un
circuit combinaÛional reprezentat la nivel de poart| logic|.

BUF/INV O(in) = O(out) + 1


AND/NAND O(inj) = O(out) + '[C1(ink)] + 1, k … j
OR/NOR O(inj) = O(out) + '[C0(ink)] + 1, k … j
XOR/XNOR O(in1) = O(out) + min{C0(in2), C1(in2)} + 1
O(in2) = O(out) + min{C0(in1), C1(in1)} + 1
stem min{O(ramur|j)}

Fig.6.2 Calculul observabilit|Ûilor la traversarea porÛilor logice

Stem-ul reprezint| o surs| de semnal care se ramific|, adic| o surs| cu fanout


supraunitar. Observabilitatea stemului este determinat| de ramura cea mai uşor
de observat; controlabilit|Ûile ramurilor sunt egale cu cele ale stemului.
Un exemplu de calcul al controlabilit|Ûilor şi observabilit|Ûilor este
prezentat mai jos, pentru circuitul combinaÛional din Fig.6.3 (celula elementar|
a sumatorului cu transport anticipat).

Fig.6.3 Analiza testabilit|Ûii celulei elementare de adunare

Valorile numerice asociate cu fiecare conexiune a circuitului au semnificaÛiile


C0/C1/O. Valorile logice cele mai greu de controlat sunt High la ieşirea porÛii
4 şi Low la ieşirea porÛii 5; intrarea inversorului 3 şi intrarea porÛii 4 comandat|
Circuite Logice SecvenÛiale Sincrone 311

de poarta 1 sunt conexiunile cele mai greu de observat.


Formulele de calcul din tabelele anterioare se utilizeaz| şi pentru analiza
testabilit|Ûii circuitelor secvenÛiale; trebuie ad|ugate relaÛii de calcul specifice
latch-urilor şi bistabililor. Pentru bistabilul de tip D din Fig.6.4 se utilizeaz|
formulele urm|toare.

Fig.6.4 Bistabil de tip D cu reset asincron

C0(q) = min{C0(rn), C1(rn) + C0(d) + C0(ck) + C1(ck)} + 1


C1(q) = C1(rn) + C1(d) + C0(ck) + C1(ck) + 1
O(d) = O(q) + C1(rn) + C0(ck) + C1(ck) + 1 (6.1)
O(rn) = O(q) + C1(q) + min{C0(ck), C1(ck)} + 1
O(ck) = O(q) + C1(rn) + C0(ck) + C1(ck) + min{C0(d) + C1(q), C1(d) +
+ C0(q)} + 1

Semnalele de ceas şi cele de control asincron sunt intr|ri speciale care trebuie
tratate cu mult| precauÛie. Distribuirea lor în interiorul chip-ului, de la
pini/paduri pân| la intr|rile bistabililor se face de obicei prin intermediul unor
reÛele combinaÛionale alc|tuite din buffere şi inversoare (de tip “arbore”).
Cuplajele capacitive dintre traseele pe care se propag| aceste semnale speciale
şi traseele de propagare ale celorlalte semnale (de date sau de control sincron)
trebuie s| fie suficient de mici; tranziÛiile L _ H sau H ` L ale semnalelor de
date/control sincron nu trebuie s| induc| tranziÛii parazite în semnalele de
ceas/control asincron. Prin intermediul reÛelei de distribuÛie semnalele de
ceas/control asincron sunt uşor de controlat; controlabilitatea este egal| cu
num|rul de buffere/inversoare traversate. Rezult|, în general, c| termenii
dominanÛi în sistemul (6.1) sunt C0(d), C1(d) şi O(q).
O alt| modalitate de evaluare a dificult|Ûilor de controlare/observare a
nodurilor unui circuit logic const| în utilizarea probabilit|Ûilor în locul
numerelor naturale. Astfel, dac| C0, C1 şi O sunt probabilit|Ûi atunci valorile
acestora sunt numere cuprinse în intervalul [0, 1]. De asemenea, pentru orice
312 Cap.6 Testarea circuitelor secvenÛiale sincrone

net N are loc relaÛia


C0(N) + C1(N) = 1. (6.2)
Valorile mai mici ale probabilit|Ûilor C0, C1 şi O înseamn| dificult|Ûi mai mari
de control/observare. Formulele de calcul corespunz|toare travers|rii porÛilor
logice sunt prezentate în tabelele de mai jos (Fig.6.5, Fig.6.6).

C0(out) = C1(out) =
BUF C0(in) C1(in)
INV C1(in) C0(in)
AND 1 - C1(out) (C1(inj)
NAND (C1(inj) 1 - C0(out)
OR (C0(inj) 1 - C0(out)
NOR 1 - C1(out) (C0(inj)
XOR 1 - C1(out) C1(in1) · C0(in2) + C0(in1) · C1(in2)
XNOR 1 - C1(out) C0(in1) · C0(in2) + C1(in1) · C1(in2)

Fig.6.5 Calculul probabilit|Ûilor C0 şi C1 la traversarea porÛilor logice

BUF/INV O(in) = O(out)


AND/NAND O(inj) = O(out) · (C1(ink), k … j
OR/NOR O(inj) = O(out) · (C0(ink), k … j
XOR/XNOR O(in1) = O(out) · max{C0(in2), C1(in2)}
O(in2) = O(out) · max{C0(in1), C1(in1)}
stem max{O(ramur|j)}

Fig.6.6 Calculul probabilit|Ûilor O la traversarea porÛilor logice

Probabilit|Ûile de control ale intr|rilor şi cele de observare ale ieşirilor unui


bloc oarecare B, C0(inj), C1(inj) = 1 - C0(inj) şi respectiv O(outk), trebuie
calculate prin traversarea succesiv| a acelor blocuri care se interpun între B şi
Circuite Logice SecvenÛiale Sincrone 313

frontierele chip-ului (începând de la pinii chip-ului). Se poate considera c|


probabilitatea de observare a unui pin oarecare al chip-ului este 1 şi c|
probabilit|Ûile de control C0 şi C1 sunt egale cu 1/2.
Formulele de calcul specifice bistabilului din Fig.6.4, care trebuie utilizate în
locul sistemului (6.1), sunt:

C0(q) = C0(rn) + C1(rn) · C0(d) · C0(ck) · C1(ck)


C1(q) = C1(rn) · C1(d) · C0(ck) · C1(ck)
O(d) = O(q) · C1(rn) · C0(ck) · C1(ck) (6.3)
O(rn) = O(q) · C1(q) · max{C0(ck), C1(ck)}
O(ck) = O(q) · C1(rn) · C0(ck) · C1(ck) · max{C0(d)·C1(q), C1(d)·C0(q)}.

Probabilit|Ûile de control C0 şi C1 ale semnalelor de ceas şi SET/RESET


asincron sunt egale cu 1/2, astfel c| sistemul (6.3) devine:

C0(q) = 1/2 + 1/8 · C0(d)


C1(q) = 1/8 · C1(d)
O(d) = 1/8 · O(q) (6.4)
O(rn) = 1/2 · O(q) · C1(q)
O(ck) = 1/8 · O(q) · max{C0(d)·C1(q), C1(d)·C0(q)}.

Cele dou| metode de evaluare a testabilit|Ûii prezentate anterior sunt


statice, în sensul c| utilizeaz| doar structura (topologia) circuitului nu şi teste
sau stimuli. Metodele de evaluare a testabilit|Ûii care utilizeaz| teste, adic|
simularea circuitului, sunt numite “dinamice”.
Fie n num|rul de teste simulate. Pentru fiecare conexiune c a circuitului se
contorizeaz| de câte ori aceasta este egal| cu 0 (Low) şi de câte ori este
“sensibil|” la propagare; acest din urm| contor este activat numai dac| c este
şi intrare a unei porÛi logice. Se calculeaz| apoi

C0(c) = [nr.(c = 0)]/n


C1(c) = 1 - C0(c) (6.5)
S(c) = [nr.(c = sensibil| la propagare)]/n.

Numerele C0(c), C1(c) şi S(c) au semnificaÛii de probabilit|Ûi de control şi


respectiv de sensibilizare la propagare a conexiunii c. În Fig.6.7 sunt marcate
cu câte un punct intr|rile porÛilor din structura celulei de adunare din Fig.6.3
314 Cap.6 Testarea circuitelor secvenÛiale sincrone

care sunt sensibilizate de testul x y cyin = 101.

Fig.6.7 Sensibilizarea la propagare în celula elementar| de adunare

Printr-o singur| traversare direct| a circuitului se determin| valorile logice ale


tuturor conexiunilor şi se marcheaz| intr|rile sensibilizate ale porÛilor (aceste
operaÛii trebuie repetate pentru fiecare test). Marcarea intr|rilor sensibilizate
se face utilizând ipoteza simplificatoare, mai puÛin realist|, c| erorile pot s|
apar| la o singur| intrare a unei porÛi oarecare şi nu simultan la mai multe
intr|ri. În cazul porÛii 4 (NOR2), în acest test, erorile se propag| la ieşirea ei
d chiar dac| apar simultan la ambele intr|ri a şi b. Acest lucru nu se întâmpl|
îns| şi în cazul porÛii 5 (XOR2); dac| eroarea 1/0 (1 reprezint| valoarea logic|
din circuitul bun sau f|r| defecte iar 0 este valoarea logic| datorat| prezenÛei
unui defect) apare simultan pe conexiunile d şi cyin atunci are loc o compensare
sau o anulare reciproc| iar conexiunea s îşi p|streaz| valoarea corect|:
s = (1/0) r (1/0) = 0.
Probabilit|Ûile de observare se calculeaz| dup| simularea tuturor testelor,
printr-o singur| traversare invers| a circuitului. Se consider| c|
observabilitatea oric|rei ieşiri este maxim|, egal| cu 1. Observabilitatea unei
intr|ri a unei porÛi, de exemplu a intr|rii a în poarta 4, se calculeaz| cu relaÛia
O(a) = S(a)·O(d).
Toate metodele de evaluare a testabilit|Ûii sunt aproximative. Cu toate
acestea, rezultatele obÛinute indic| corect porÛiunile de circuit care sunt mai
greu de testat. Dup| identificarea acestora trebuie f|cute modific|ri structurale
astfel încât s| se p|streze funcÛionarea de baz| şi s| se îmbun|t|Ûeasc|
testabilitatea. Modific|rile structurale f|cute în acest scop, numite şi tehnici de
proiectare pentru testabilitate, implic| de obicei creşterea ariei ocupate, a
num|rului de pini/paduri şi reducerea vitezei maxime de operare. Aceste
Circuite Logice SecvenÛiale Sincrone 315

penalit|Ûi sunt îns| compensate de reducerea considerabil| a efortului de calcul


implicat în generarea testelor şi simularea defectelor dar şi de durata mai mic|
necesar| pentru testarea circuitelor fabricate.

6.1.2 Scanarea
În general bistabilii şi latch-urile dintr-un circuit logic sunt componentele
cele mai greu de controlat şi de observat. Se va justifica aceast| afirmaÛie cu
ajutorul unei maşinii secvenÛiale ce are o funcÛionare oarecare. Structura logic|
desenat| în Fig.6.8, compus| dintr-un bloc combinaÛional şi 3 bistabili de tip
D, reprezint| o maşin| secvenÛial| cu 8 st|ri.

Fig.6.8 Maşin| secvenÛial| f|r| scanare

Testarea blocului combinaÛional din structura maşinii secvenÛiale din figura de


mai sus se realizeaz| prin aplicarea unei secvenÛe de teste de lungime n
oarecare t1<1:4>, t2<1:4>, t3<1:4>, ..., tn<1:4> la intr|rile In<1:4> = {In1, In2,
In3, In4} şi observarea r|spunsurilor r1<1:3>, r2<1:3>, r3<1:3>, ..., rn<1:3>
obÛinute la ieşrile Out<1:3> = {Out1, Out2, Out3}. Intr|rile In5, In6, In7 şi
ieşirile Out4, Out5, Out6 nu sunt direct accesibile. Prin intermediul comenzii
asincrone Reset se poate forÛa doar starea In5In6In7 = 100 nu şi celelalte 7
combinaÛii de 3 biÛi. St|rile 000, 001, 010, 011, 101, 110 şi 111 pot fi în general
controlate prin intermediul unor secvenÛe binare aplicate la intr|rile In1, In2,
In3, In4. Dificultatea controlului st|rii bistabililor depinde îns| de structura
316 Cap.6 Testarea circuitelor secvenÛiale sincrone

blocului combinaÛional; este posibil ca anumite st|ri din cele 7 s| nu poat| fi


atinse, indiferent de lungimea şi structura secvenÛelor binare aplicate la intr|rile
accesibile. Ca urmare nu orice combinaÛie de biÛi In1In2 ... In7 poate fi luat|
în considerare pentru testarea blocului combinaÛional. De asemenea, prin
actvarea unor defecte erorile generate se pot propaga în bistabili iar observarea
acestora la Out1, Out2, Out3 implic| diferite grade de dificultate. DetecÛia
erorilor se face cu o anumit| latenÛ| sau întârziere, exprimat| printr-un num|r
de perioade de ceas.
O simplificare considerabil| a test|rii circuitului din Fig.6.8 se poate obÛine
prin modificarea indicat| în Fig.6.9, în care se utilizeaz| bistabili cu
capabilitate de scanare.

Fig.6.9 Maşin| secvenÛial| cu scanare

În schema de mai sus nu este necesar| vreo comand| de iniÛializare a


bistabililor. Spre deosebire de maşina secvenÛial| f|r| scanare, în care bistabilii
formeaz| un registru cu un singur mod de operare şi anume de înc|rcare
paralel|, registrul maşinii cu scanare are un mod de operare suplimentar.
Acesta const| în deplasarea informaÛiei stocate între celulele registrului.
Înc|rcarea paralel| a bistabililor cu valorile logice de la ieşirile Out4, Out5,
Out6 corespunde operaÛiei normale a circuitului (Sel = 0). Modul deplasare sau
shift (Sel = 1) se utilizeaz| pentru controlarea şi observarea bistabililor; efortul
necesar este mic. Oricare din cele 8 st|ri se poate înc|rca în registrul maşinii
prin deplasarea în ritmul ceasului a tiparului binar aplicat la intrarea Scan-in.
Circuite Logice SecvenÛiale Sincrone 317

Toate cele 27 = 128 combinaÛii de 7 biÛi se pot utiliza pentru testarea blocului
combinaÛional. Durata de aplicare a unui test este determinat| de operaÛia de
deplasare; în acest caz sunt necesare 3 perioade de ceas pentru fiecare test.
Dup| ce un test oarecare a fost aplicat se comut| din modul deplasare (sau
scanare) în modul normal de operare pentru o singur| perioad| de ceas în care
bistabilii se încarc| cu rezultatele obÛinute la Out4, Out5, Out6. Aceast|
informaÛie este observat| la ieşirea Scan-out simultan cu deplasarea în registru
a urm|torului grup de 3 biÛi din cadrul testului urm|tor. Cu excepÛia duratei mai
mari de aplicare a testelor, scanarea reduce dificultatea test|rii secvenÛiale la
nivelul dificult|Ûii test|rii combinaÛionale.
Arhitecturile cu scanare pot fi totale sau parÛiale dup| cum toÛi bistabilii
sau numai o parte dintre aceştia sunt înlocuiÛi cu bistabili de tip scan flip-flop.
Decizia de alegere a unei arhitecturi determin| consumul suplimentar de arie.
Bistabilii scanaÛi pot fi conectaÛi într-un singur lanÛ sau în mai multe; fiecare
lanÛ de scanare necesit| 3 pini suplimentari (Scan-in, Scan-out, Sel). Utilizarea
mai multor lanÛuri de scanare independente permite creşterea vitezei de testare;
dac| se utilizeaz| n lanÛuri cu aceeaşi lungime atunci viteza de testare creşte de
n ori în comparaÛie cu utilizarea unui singur lanÛ compus din cele n.
Arhitecturile cu scanare parÛial| reprezint| un compromis între costurile
suplimentare (arie mai mare, num|r mai mare de pini, sc|derea vitezei maxime
de operare) şi complexitatea test|rii.
Orice sistem logic secvenÛial este alc|tuit din blocuri combinaÛionale şi
registre interconectate între ele. Un exemplu este ilustrat în Fig.6.10. Structura

Fig.6.10 Arhitectur| arbitrar| de sistem secvenÛial


318 Cap.6 Testarea circuitelor secvenÛiale sincrone

conÛine 3 blocuri combinaÛionale şi 4 registre sincronizate cu acelaşi semnal de


ceas (nereprezentat în schem|). Intr|rile A, B, ieşirile X, Y, Z şi conexiunile
interne sunt în general bus-uri cu diferite dimensiuni. Uşor de controlat sunt
bistabilii din Reg4 conectaÛi la intr|rile B iar uşor de observat sunt bistabilii din
Reg2 conectaÛi la ieşirile Y; ceilalÛi bistabili sunt relativ dificil de controlat şi
de observat f|r| scanare. În continuare se presupune c| registrele Reg1, Reg2,
Reg3 şi Reg4 conÛin fiecare câte n1, n2, n3 şi respectiv n4 bistabili.
Versiunea cu scanare complet| (full-scan) a sistemului secvenÛial din Fig.6.10,
în care se utilizeaz| un singur lanÛ de scanare, este desenat| în Fig.6.11. F|r|
a pierde din generalitate se consider| c| bistabilii de tip scan care înlocuiesc
bistabilii registrelor din Fig.6.10 au o intrare de ceas şi una de selecÛie a
modului de operare Normal/Scan; aceste semnale de control, aplicate în paralel
celor 4 registre, nu sunt reprezentate în Fig.6.11. Structuri de bistabili scan sunt
prezentate în cap.1. Ordinea optim| de plasare a bistabililor în lanÛul de scanare
se stabileşte în funcÛie de adiacenÛa acestora, informaÛie care trebuie extras| din
layout. Modul de construire a registrului de scanare compus din Reg1, Reg2,
Reg3 şi Reg4 afecteaz| viteza de testare, adic| frecvenÛa maxim| de aplicare
a testelor precum şi aria ocupat|. În acest exemplu este posibil ca pentru
semnalele Scan-in şi Scan-out s| nu fie nevoie de pini suplimentari; una dintre
intr|rile B şi una dintre ieşirile Y pot s| substituie intrarea şi respectiv ieşirea
lanÛului de scanare.
Planul de testare a circuitului cu scanare total| conÛine urm|toarele dou| faze
sau etape care se repet| pentru fiecare test:

Fig.6.11 Versiune full-scan a sistemul secvenÛial din Fig.6.10


Circuite Logice SecvenÛiale Sincrone 319

1) Se trece registrul de scanare în modul deplasare şi se încarc| cu biÛii


corespunz|tori unui test tk; operaÛia dureaz| Nshift = n1 + n2 + n3 + n4 perioade
de ceas. SecvenÛa de biÛi se aplic| la intrarea Scan-in.
Componentele testului tk stocate Reg4 se aplic| blocului Comb1, cele din Reg1
se aplic| blocurilor Comb2 şi Comb3, cele din Reg2 se aplic| la Comb3 iar
cele din Reg3 se aplic| la intr|rile Comb3. BiÛii deplasaÛi în celulele din Reg2
care sunt conectate la ieşirile Y nu fac parte din structura testului tk iar valorile
lor sunt indiferente.
2) Se aplic| în paralel la intr|rile A şi B valorile logice binare care completeaz|
testul tk, se comut| registrul în modul înc|rcare paralel| (operarea normal|
pentru care a fost proiectat sistemul) şi apoi se aplic| un singur front activ de
ceas. La ieşirile X, Y şi Z se observ| o parte din r|spunsul sistemului la tk.
Observarea r|spunsului capturat în registrul de scanare în faza 2 se face la
ieşirea Scan-out. Aceast| operaÛie se realizeaz| simultan cu înc|rcarea serie a
testului urm|tor, tk+1. Rezult| c| pentru fiecare test sunt necesare Nshift + 1
perioade de ceas.
O versiune cu scanare parÛial| (partial-scan) a sistemului secvenÛial din
Fig.6.10, în care se utilizeaz| un singur lanÛ de scanare, este prezentat| în
Fig.6.12. SelecÛia registrelor care urmeaz| s| fie scanate se face, în general, în
conformitate cu urm|toarele dou| criterii care trebuie îndeplinite simultan:
- întreruperea tuturor buclelor de reacÛie;
- minimizarea num|rului de bistabili din lanÛul de scanare.
Orice registru de scanare, indiferent de dimensiune, are pe durata test|rii rolul

Fig.6.12 Versiune partial-scan a sistemul secvenÛial din Fig.6.10


320 Cap.6 Testarea circuitelor secvenÛiale sincrone

atât de intr|ri cât şi de ieşiri direct accesibile din punct de vedere al


controlabilit|Ûii şi observabilit|Ûii. Din acest motiv un astfel de registru poate
fi privit ca un set de intr|ri şi ieşiri, ceea ce este echivalent cu întreruperea unor
c|i de propagare din structura sistemului.
Sistemul logic secvenÛial din Fig.6.10 are dou| tipuri de bucle de reacÛie. O
bucl| este local|, la nivelul blocului Comb3, iar cealalt| poate fi considerat|
global| deoarece cuprinde toate blocurile combinaÛionale. Scanarea registrului
Reg3 este obligatorie, fiind singura soluÛie de întrerupere a buclei de reacÛie
local|. Pentru întreruperea buclei globale este suficient| scanarea doar a unui
singur registru dintre Reg1, Reg2 şi Reg4. Se alege registrul cu cel mai mic
num|r de bistabili; s-a considerat c| acesta este Reg4. Registrele scanate Reg3
şi Reg4 trebuie s| fie înzestrate şi cu modul de operare hold (menÛinere).
Spre deosebire de versiunea full-scan în care lungimea lanÛului de scanare este
n1 + n2 + n3 + n4, dimensiunea lanÛului în versiunea partial-scan este n3 + n4.
Planul de testare a circuitului din Fig.6.12 este urm|torul:
1) Se trece registrul de scanare în modul deplasare şi se încarc| cu biÛii
corespunz|tori unui test tk; operaÛia dureaz| Nshift = n3 + n4 perioade de ceas.
2) Se aplic| în paralel la intr|rile A şi B valorile logice binare care completeaz|
testul tk, se comut| registrul de scanare în modul hold şi se aplic| dou| fronturi
active de ceas celor 4 registre.
Segmentele care alc|tuiesc r|spunsul sistemului la testul tk se încarc| în Reg1
dup| o perioad| de ceas iar în Reg2 dup| dou| perioade de ceas. InformaÛia din
Reg1 înc|rcat| de primul front activ de ceas se p|streaz| neschimbat| şi dup|
cel de-al doilea front deoarece valorile logice de la intr|rile blocului Comb1 nu
se modific|. InformaÛia înc|rcat| în Reg2 dup| al doilea front activ de ceas
corespunde testului tk.
3) Se comut| Reg3 şi Reg4 în modul înc|rcare paralel| şi se aplic| un front de
ceas tuturor registrelor.
Dup| cele trei fronturi de ceas aplicate în fazele sau etapele 2 şi 3, la ieşirile X,
Y şi Z se observ| o parte din r|spunsul sistemului la tk. Simultan cu repetarea
etapei 1, corespunz|toare testului urm|tor tk+1, se observ| segmentele din
r|spunsul la testul tk care au fost înc|rcate în Reg3 şi Reg4 în etapa 3. Rezult|
c| pentru fiecare test sunt necesare Nshift + 3 perioade de ceas.
Consumul suplimentar de arie şi durata de aplicare a testelor specifice unui
sistem cu scanare parÛial| sunt mai mici sau mult mai mici decât în cazul
scan|rii totale. În schimb, informaÛia din registrele care nu sunt scanate nu este
direct accesibil|. Deoarece complexitatea test|rii r|mâne comparabil| cu cea
combinaÛional|, abord|rile de tip partial-scan constituie de obicei opÛiunea de
baz| în proiectare.
Transformarea unui sistem secvenÛial oarecare într-unul echivalent
funcÛional care s| includ| şi capabilit|Ûi de scanare nu const| doar în înlocuirea
Circuite Logice SecvenÛiale Sincrone 321

unor registre simple cu unele de tip scan. În afar| de aceast| operaÛie sunt
necesare şi alte modific|ri structurale, în concordanÛ| cu regulile scan-design.
O parte dintre aceste reguli sunt prezentate în paragraful urm|tor.

6.1.2.1 Reguli scan-design


Aceste reguli sunt menite s| asigure funcÛionarea corect| a operaÛiei de
deplasare ce are loc în modul test şi p|strarea funcÛiilor corespunz|toare
regimului normal de operare.
Structura logic| desenat| în Fig.6.13 reprezint| o porÛiune dintr-un bloc
de control al driverelor unei linii de date. Cel mult un singur driver trebuie s|
fie activ la orice moment de timp. În acest exemplu driverele sunt buffere cu
3 st|ri şi cu intrare de autorizare (enable) activ| High.

Figura 6.13

Dac| bistabilii dff1, dff2 şi dff3 se înlocuiesc cu bistabili de tip scan atunci, pe
durata operaÛiei de deplasare în lanÛul de scanare, este foarte probabil ca
valorile logice din aceste 3 celule s| nu respecte cerinÛa modului normal de
operare şi anume en1 en2 en3 0 {000, 001, 010, 100}. Deoarece secvenÛele
deplasate în timpul operaÛiei de scanare sunt oarecare, evitarea conflictelor sau
scurtcircuitelor dintre driverele buf1, buf2, buf3 trebuie forÛat| cu ajutorul unor
componente suplimentare. Evident, aria ocupat| pe chip creşte. O soluÛie la
transformarea circuitului din Fig.6.13 în conformitate cu regulile scan-design
322 Cap.6 Testarea circuitelor secvenÛiale sincrone

este cea din Fig.6.14. Deplasarea se face de la sdff1 c|tre sdff3.

Fig. 6.14 Drivere de bus

S-a ales ca pe durata test|rii bufferele buf2 şi buf3 s| fie în starea de înalt|
impedanÛ| iar buf1 s| fie activ. Latch-ul format din cele dou| inversoare
conectate la linia de date, numit şi bus keeper, fixeaz| linia la o valoare logic|
valid| în cazul în care conexiunea en1 ar fi blocat| la 0 (stuck-at-0).
Tranzistoarele din bus keeper au de obicei dimensiunile minime sau apropiate
de acestea, astfel c| înc|rcarea suplimentar| a driverului activ este
nesemnificativ|.
Conflicte pot s| apar| şi în cazul pinilor bidirecÛionali ale c|ror direcÛii
sunt controlate de bistabili ce urmeaz| s| fie incluşi în lanÛuri de scanare. Un
exemplu simplu este prezentat în Fig.6.15(a - structura iniÛial|, b - structura
final|). Bufferul de ieşire 1 are trei st|ri şi poate intra în conflict cu sursa de
semnal care trebuie s| comande bufferul de intrare 2. Prin intermediul porÛii
AND, pe durata test|rii bufferul1 este pus în starea de înalt| impedanÛ| iar
testerul conectat la pinul I/O poate s| injecteze secvenÛele de test.
Circuite Logice SecvenÛiale Sincrone 323

Fig. 6.15 Pin bidirecÛional

Regulile scan-design impun modific|ri structurale şi în zonele de circuit


în care ceasul este condiÛionat de unul sau de mai multe semnale (clock gating).
Bistabilii cu ceas de acest tip incluşi într-un lanÛ de scanare ar bloca deplasarea
în modul test. “Ajustarea” conform| cu scan-design a unui circuit cu clock
gating este ilustrat| în figura de mai jos.

Fig.6.16 Clock gating


324 Cap.6 Testarea circuitelor secvenÛiale sincrone

În modul test (Normal/Scan = 1) latch-ul se încarc| cu 1 logic şi valideaz|


propagarea ceasului Ck prin poarta AND. Dac| fronturile de ceas nu ar ajunge
la bistabilul sdff atunci lanÛul de scanare s-ar bloca în acest loc, în sensul c|
datele de la intrarea SD nu ar ajunge la Q; datele transmise mai departe în
lanÛul de scanare ar avea valoarea constant| existent| în sdff.
Semnalele de ceas derivate din ceasul global trebuie înlocuite cu acesta
din urm| pe durata scan|rii. Regula scan-desig referitoare la ceasuri derivate
este ilustrat| în Fig.6.17.

Fig.6.17 Semnal de ceas derivat din ceasul global

Semnalele de ceas obÛinute prin multiplicare de frecvenÛ| utilizând circuite


PLL sunt tot ceasuri derivate şi trebuie s| respecte regula de mai sus.
Blocurile combinaÛionale care conÛin bucle de reacÛie asincron| (adic|
logica secvenÛial| asincron|) trebuie transformate pe durata scan|rii astfel încât
reacÛia s| devin| sincron| cu ceasul utilizat în modul test. Altfel spus, logica
secvenÛial| asincron| trebuie transformat| în logic| secvenÛial| sincron|.
Fiecare bucl| de reacÛie distinct| trebuie întrerupt| în modul test prin
introducerea unui bistabil suplimentar de tip scan, inclus într-un lanÛ de
scanare. Aceast| regul| este prezentat| în Fig.6.18.
Bistabilii cu intr|ri de control asincron Set sau Reset care urmeaz| s| fie
scanaÛi trebuie înlocuiÛi cu bistabili de tip scan, care la rândul lor trebuie s|
aib| intr|ri de control asincron identice. Aceste intr|ri trebuie îns| dezactivate
pe durata test|rii pentru a se evita blocarea lanÛului de scanare într-o valoare
Circuite Logice SecvenÛiale Sincrone 325

constant|, 0 sau 1. Exemplul din Fig.6.19 evidenÛiaz| aceast| regul|.

Fig.6.18 Logic| secvenÛial| asincron|

Fig.6.19 Bistabil cu intrare de control asincron

6.1.2.2 Scan-design flow


Implementarea operaÛiei de scanare într-un proiect sintetizat care nu are
aceast| caracteristic| este o sarcin| complex| deoarece trebuie luate în
considerare foarte multe detalii structurale. Trebuie identificate şi modificate
toate porÛiunile din circuitul iniÛial care nu sunt în concordanÛ| cu regulile scan-
design. De asemenea, capturarea paralel| şi apoi deplasarea serie a datelor în
lanÛurile de scanare nu trebuie s| fie afectat| de clock skew.
326 Cap.6 Testarea circuitelor secvenÛiale sincrone

Flow-ul tipic de implementare a scan|rii într-un sistem logic secvenÛial


sincron are structura urm|toare.

Fig.6.20 Scan-design flow

Dac| sistemul secvenÛial iniÛial este un netlist (gate level) rezultat dintr-o
sintez| logic| şi care nu are capabilitate de scanare atunci etapele din flow-ul
de mai sus se execut| cu tool-uri scan synthesis. În acest caz proiectul scanabil
se obÛine utilizând succesiv dou| flow-uri de sintez| distincte.
În prezent modelul RTL (Register Transfer Language) al unui sistem secvenÛial
sincron oarecare poate fi direct sintetizat, utilizând un singur flow de sintez|
Circuite Logice SecvenÛiale Sincrone 327

care include toate tr|s|turile specifice scan design. Bistabilii care urmeat| s|
fie substituiÛi cu bistabili de tip scan pot fi stabiliÛi în modelul RTL. De
asemenea, la nivelul codului RTL pot fi verificate şi implementate anumite
reguli scan-design.
Verificarea regulilor scan-design şi fixarea erorilor se efectueaz| înainte
de sintez| dar şi la finalul acesteia din urm|toarele motive:
- sinteza cu bistabili scanabili este o etap| anterioar| celei de sintez| a reÛelei
de distribuÛie a semnalului (semnalelor) de ceas;
Primul netlist obÛinut nu include şi reÛeaua de buffere/inversoare prin care se
propag| ceasul la intr|rile bistabililor.
- arborele de ceas generat iniÛial trebuie ajustat iterativ pân| când îndeplineşte
toÛi parametrii caracteristici (setup time, hold time, latenÛ|, skew);
- dup| transferul arborelui de ceas în netlistul global se extrag informaÛii noi
referitoare la timing, adic| la setup time, hold time, latenÛ|, skew şi de obicei
trebuie f|cute noi ajust|ri structurale;
Aceast| etap| are loc dup| plasarea componentelor în layout şi interconectarea
lor f|r| detalii de routare.
- dup| routarea final| (detaliat|) sunt posibile noi ajust|ri structurale.
Configurarea lanÛurilor de scanare defineşte arhitectura sistemului, full-
scan sau partial-scan. Pinii şi implicit padurile I/O asociate acestora pot fi
utilizaÛi prin multiplexare, atât în funcÛionarea normal| a sistemului cât şi în
modul test; fac excepÛie padurile de vitez| sau frecvenÛ| mare deoarece
înc|rcarea suplimentar| a acestora nu este permis|.
Ordinea bistabililor în lanÛurile de scanare depinde de plasarea lor în layout;
bistabilii vecini în layout ocup| poziÛii succesive în lanÛul de scanare. Înainte
de plasarea preliminar| a componentelor în layout lanÛurile se construiesc în
mod aleator. Structura final| se obÛine prin operaÛii de reordonare. În cazul
arhitecturilor cu mai multe registre de scanare reordonarea include şi
transferuri de bistabili între lanÛuri.
Este posibil ca ambele fronturi ale aceluiaşi semnal de ceas s| fie utilizate
pentru comanda bistabililor dintr-un registru de scanare. Ordinea corect| a
bistabililor într-un astfel de registru se determin| prin simulare; deplasarea
oric|rei secvenÛe de biÛi trebuie s| se fac| f|r| erori. Luarea în considerare a
tuturor secvenÛelor este practic imposibil|, de aceea se utilizeaz| anumite tipare
de biÛi sau pattern-uri cu lungime fix|.
Decalajele dintre fronturile de ceas (clock skew) pot fi relativ uşor
controlate/reglate pentru bistabilii care aparÛin aceluiaşi domeniu de clock,
adic| au ca surs| acelaşi semnal de ceas. Acest lucru nu se poate face la fel de
uşor atunci când bistabilii dintr-un lanÛ de scanare nu fac parte din acelaşi
domeniu de clock. Pentru ca la deplasarea biÛilor s| nu apar| erori datorate
clock skew trebuie incluse latch-uri suplimentare între bistabilii vecini care
328 Cap.6 Testarea circuitelor secvenÛiale sincrone

aparÛin la domenii de clock diferite. Un exemplu este prezentat în Fig.6.21.

Fig.6.21 Controlul clock skew între domenii diferite de ceas

Dup| definitivarea arhitecturii scan design, adic| dup| plasarea şi


routarea întregului sistem digital, se fac o serie de verific|ri referitoare la:
- integritatea lanÛurilor;
- deplasarea corect| a datelor, adic| funcÛionarea în modul test;
- capturarea sau înc|rcarea paralel| specific| modului normal de operare;
- secvenÛele de iniÛializare prin intermediul c|rora se comut| între modurile de
operare normal şi scanare.
Defectele care pot fi detectate cu un grad mare de acoperire prin
capturarea erorilor în lanÛurile de scanare sunt conexiunile stuck-at,
scurtcircuitele dintre surse de semnal, tranzistoarele blocate (stuck-on, stuck-
off) şi crosstalk (cuplajele capacitive). Pentru detecÛia cu grad mare de
acoperire a defectelor de tip delay asociate cu c|ile de propagare prin blocurile
combinaÛionale este nevoie de o secvenÛ| format| din dou| teste care trebuie
aplicate la viteza normal| de operare a sistemului. Fiecare celul| de scanare ar
trebui s| poat| aplica doi biÛi, unul dup| altul, în nodul pe care îl controleaz|.
O soluÛie, numit| enhanced scan, const| în modificarea structurii celulei de
scanare dup| cum se arat| în Fig.6.22; fiecare celul| de scanare conÛine un
bistabil de tip scan şi un latch transparent la comanda LatchEn = High.
FuncÛionarea registrului este identic| cu aceea a unui registru de scanare
obişnuit dac| se fixeaz| semnalul de control LatchEn la 1 logic, cu excepÛia
unei întârzieri uşor mai mari de la intrarea de ceas Ck la ieşirea din celula de
scanare care se conecteaz| la blocul combinaÛional: tp Ck-Q (sddf) + tp D-Q (latch).
Aceast| întârziere suplimentar| introdus| de latch afecteaz| viteza normal| de
operare; viteza în regim de scanare (deplasare serie de la Scan-in la Scan-out)
r|mâne neschimbat|. Pentru detecÛia defectelor de tip delay cu o pereche
arbitrar| de teste t1 = a1 b1 c1 d1 e1 f1 g1, t2 = a2 b2 c2 d2 e2 f2 g2 se execut|
urm|toarea secvenÛ| de operaÛii:
1) se deplaseaz| biÛii e1, f1 şi g1 în bistabilii sdff1, sdff2 şi respectiv sdff3
(LatchEn = 0 şi Sel = 1);
Circuite Logice SecvenÛiale Sincrone 329

2) se transfer| paralel informaÛia din bistabili în latch-uri prin aplicarea unui


impuls High de scurt| durat| pe linia de comand| LatchEn;
3) se deplaseaz| biÛii e2, f2 şi g2 în bistabilii sdff1, sdff2 şi respectiv sdff3
(LatchEn = 0 şi Sel = 1);
4) se aplic| valorile a1, b1, c1 şi d1 la intr|rile In1, In2, In3 şi respectiv In4;
În acest moment la cele 7 intr|ri ale blocului combinaÛional In1...In7 este
aplicat testul t1, care are rolul de a sensibiliza anumite c|i de propagare.
R|spunsul la t1 obÛinut la ieşirile Out1...Out6 nu prezint| interes.
5) se comut| în modul normal de operare (Sel = 0), se aplic| valorile logice a2,
b2, c2, d2 la intr|rile In1, In2, In3, In4 şi un impuls High de scurt| durat| pe linia
de comand| LatchEn care determin| tansferul paralel din bistabili în latch-uri;
În acest moment la intr|rile blocului combinaÛional este aplicat testul t2.
6) dup| un interval de timp corelat cu timpii de propagare prin blocul
combinaÛional se aplic| un front activ pe linia Ck şi se captureaz| r|spunsulde
la Out6, Out5, Out4 în bistabilii sdff1, sdff2, sdff3 simultan cu observarea
ieşirilor Out1, Out2, Out3.
Dac| vreuna dintre c|ile de propagare sensibilizate are întârziere mai mare

Fig.6.22 Maşin| secvenÛial| cu scanare “avansat|” (enhanced scan)


330 Cap.6 Testarea circuitelor secvenÛiale sincrone

decât intervalul de timp dintre frontul negativ al semnalului LatchEn şi frontul


pozitiv de ceas aplicat în faza 6 atunci r|spunsul la testul t2 conÛine erori.
Semnalele de control LatchEn, Sel şi Ck corespunz|toare secvenÛei de operaÛii
1 ÷ 6 sunt reprezentate în diagramele de timp din Fig.6.23.

Fig.6.23 DetecÛia defectelor de tip delay prin scanare avansat|

Schimbarea brusc| a testului (t1 6 t2) are loc pe durata fazei 5 în diagrama de
mai sus. Frontul de ceas marcat cu 6 produce r|spunsul cu eventuale erori
cauzate de defectele de tip delay. Observarea biÛilor r|spuns capturaÛi în
bistabilii sdff1, sdff2, sdff3 are loc pe durata operaÛiei 1 corespunz|toare
urm|toarei perechi de teste t1, t2.
O parte dintre defectele de tip delay pot fi detectate şi cu lanÛuri de
scanare normale. Gradul mai mic de acoperire se datoreaz| faptului c| testul
t2 nu poate fi ales complet independent de t1. Primul test (t1) poate fi ales în
mod arbitar. Componentele celui de-al doilea test (t2) aplicate la intr|rile direct
accesibile (In1, In2, In3 şi In4 din exemplul anterior) pot fi independente de t1
îns| nu şi componentele din lanÛul de scanare. În acelaşi plan de testare se pot
combina dou| metode de construire a perechilor de teste t1, t2 dup| cum se arat|
în diagramele de timp desenate în Fig.6.24.
Fronturile ceasului Ck marcate cu 1 şi 2 reprezint| momentele de început ale
testelor t1 şi respectiv t2. Captura r|spunsului este declanşat| de frontul marcat
cu 3. În ambele cazuri (a, b) intervalul de timp dintre fronturile 2 şi 3, care nu
este neap|rat egal cu o perioad| de ceas, constituie termenul de comparaÛie
pentru întârzierile de propagare.
Diagramele (a) corespund metodei normale de testare bazat| pe scanarea serie
a bistabililor, în care dup| fiecare operaÛie de deplasare se execut| câte o
singur| înc|rcare paralel|. În acest caz componentele testelor t1 şi t2 care sunt
stocate în bistabili provin din acelaşi tipar (pattern) şi se deosebesc între ele ca
urmare a deplas|rii cu o singur| poziÛie. Num|rul de diferenÛe este dependent
de pattern şi anume de num|rul de tranziÛii asociate acestuia. De exemplu,
Circuite Logice SecvenÛiale Sincrone 331

Fig.6.24 DetecÛia defectelor de tip delay cu lanÛuri de scanare normale

tiparul de 9 biÛi 110100101 conÛine 6 tranziÛii, adic| 6 schimb|ri între oricare


doi biÛi consecutivi. Prin deplasarea la dreapta cu o singur| poziÛie se obÛine
structura (11010010 (bitul ( poate fi 0 sau 1). Suma modulo 2
1 1 0 1 0 0 1 0 1r
(1 1 0 1 0 0 1 0
? 0 1 1 1 0 1 1 1
arat| 6 sau 7 deosebiri dintre testele t1 şi t2.
Metoda de testare corespunz|toare diagramelor (b) schimb| radical modul de
obÛinere a testului t2. La sfârşitul unei operaÛii de scanare se produce testul t1
dup| care se comut| în modul de înc|rcare paralel|. Frontul de ceas 2 încarc|
în lanÛul de scanare componentele testului t2; acestea sunt determinate atât de
t1 cât şi de blocul combinaÛional. Modul de înc|rcare paralel| se menÛine pe un
interval de timp egal cu dou| perioade de ceas.

6.1.3 Standardul de scanare IEEE 1149.1


Testarea la nivel de plac| (PCB - printed circuit board) este semnificativ
mai complicat| decât testarea la nivel de circuit integrat (chip). Reducerea
costurilor asociate cu testarea pl|cilor poate fi realizat| prin extinderea scan|rii
la ansambluri de chip-uri. Pentru aceasta fiecare chip component trebuie s|
îndeplineasc| un set suplimentar de reguli de proiectare care vizeaz| în
principal padurile sau celulele I/O. Regulile generale referitoare la sistemele
digitale sunt cuprinse în standardul IEEE 1149.1. Limbajul de descriere
hardware asociat este numit Boundary-Scan Description Language (BSDL).
În prezent exist| o familie de standarde, IEEE 1149.x, care acoper| şi testarea
332 Cap.6 Testarea circuitelor secvenÛiale sincrone

sistemelor în care exist| paduri analogice şi/sau paduri digitale de mare vitez|,
a reÛelelor de comunicaÛie digitale cu cuplaje AC şi/sau mod de transmisie
diferenÛial, etc.
Standardul IEEE 1149.1 defineşte un protocol de testare şi un tip de
celul| I/O care s| permit| configurarea padurilor într-un registru de deplasare,
numit boundary-scan register. Protocolul de testare se refer| la chip-urile
digitale precum şi la partea digital| din cadrul chip-urilor analog-digitale. De
asemenea, pentru implementarea protocolului este necesar| o anumit| logic|
suplimentar| care trebuie inclus| în fiecare chip.
În Fig.6.25 se indic| transformarea de principiu care se aplic| celulelor
I/O digitale, indiferent de direcÛia acestora (intrare, ieşire, bidirecÛional). Sunt
excluse padurile de alimentare şi cele analogice.

Fig.6.25 Conversie “celul| I/O — celul| boundary-scan”

Circuitele integrate care sunt proiectate dup| standardul IEEE 1149.1 se pot
interconecta astfel încât s| se obÛin| lanÛuri sau registre de scanare a padurilor
(boundary-scan chain) dup| cum se arat| în exemplul urm|tor.

Fig.6.26 Registru de scanare la nivel de plac|


Circuite Logice SecvenÛiale Sincrone 333

Cele 3 chip-uri din Fig.6.26 pot s| aib| şi lanÛuri interne proprii de scanare;
acestea pot fi conectate la rândul lor la registrul boundary-scan.
Structura tipic| a unei celule boundary-scan (scan I/O) digitale este desenat|
în Fig.6.27. Terminalele IN şi OUT se conecteaz| la un pad şi respectiv la o
intrare în miezul (core) chip-ului sau la o ieşire din miez şi respectiv la un pad,
dup| cum direcÛia este “intrare” sau “ieşire”. Celulele boundary-scan
bidirecÛionale şi cele cu 3 st|ri conÛin mai multe componente de circuit.

Fig.6.27 Celul| scan I/O

Bistabilul dr1 (data register 1) se poate înc|rca la frontul pozitiv al ceasului


clock_dr fie de la terminalul IN când shift_dr = 0, fie din lanÛul de scanare când
shift_dr = 1. Aceste dou| situaÛii corespund operaÛiilor captur| şi respectiv
scanare. Semnalul de control Normal/Test este prioritar şi stabileşte fluxul
normal al datelor de la IN la OUT sau forÛeaz| în nodul OUT valoarea logic|
din bistabilul dr2 (data register 2); în ultimul caz, frontul pozitiv al ceasului
update_dr realizeaz| operaÛia update în nodul de ieşire.
Logica suplimentar| cu ajutorul c|reia se implementeaz| protocolul de
testare definit de standardul IEEE 1149.1 este reprezentat| simplificat în
Fig.6.28. FuncÛiile de baz| ale chip-ului sunt implementate de “Logica intern|
specific| aplicaÛiei”. Acest bloc poate s| conÛin| la rândul lui anumite p|rÛi
auxiliare cum ar fi registre de scanare cu pinii suplimentari aferenÛi şi registre
BIST (built-in self-test); acestea din urm| sunt prezentate în subcapitolul
urm|tor.
Arhitectura boundary-scan conÛine urm|toarele componente hardware:
- pinii TDI (Test Data Input), TDO (Test Data Output), TMS (Test Mode
Signal), TCK (Test Clock) şi opÛional TRST (Test Reset);
Acest ansamblu de pini suplimentari poart| numele TAP (Test Access Port).
334 Cap.6 Testarea circuitelor secvenÛiale sincrone

Fig.6.28 Chip cu arhitectur| boundary-scan IEEE 1149.1

- maşina secvenÛial| numit| TAP Controller;


- registrul de instrucÛiuni şi decodificatorul asociat;
- registre de test diverse: opÛionale, obligatorii (registrul boundary-scan,
registrul bypass cu lungimea 1) sau specifice proiectului.
Procedura tipic| de testare se deruleaz| astfel:
1) O instrucÛiune de test se încarc| serie în registrul de instrucÛiuni prin intrarea
TDI;
2) InstrucÛiunea de test este decodificat| şi se obÛin semnalele de control
necesare configur|rii logicii de test;
3) O secvenÛ| de test se încarc|, tot prin intermediul liniei TDI, în registrul de
date care a fost selectat;
4) R|spunsul sistemului este capturat în diferite registre de date;
5) Simultan cu deplasarea serie a r|spunsului capturat pe linia de ieşire TDO,
Circuite Logice SecvenÛiale Sincrone 335

are loc înc|rcarea unei noi secvenÛe de test;


6) Paşii 3, 4 şi 5 se repet| pentru toate secvenÛele de test asociate cu
instrucÛiunea de test.
Graful de tranziÛie a st|rilor maşinii secvenÛiale TAP Controller este
desenat în Fig.6.29. St|rile se pot schimba la frontul pozitiv al ceasului TCK
în funcÛie de semnalul de intrare TMS, ale c|rui valori logice sunt indicate
pentru fiecare arc. Ceasul TCK este independent de ceasurile chip-urilor
scanate. St|rile care conÛin în nume DR sunt alocate pentru controlul tuturor
registrelor de date iar cele care conÛin în nume IR sunt alocate numai pentru
controlul registrului de instrucÛiuni.

Fig.6.29 Graful de tranziÛie a st|rilor TAP Controller


336 Cap.6 Testarea circuitelor secvenÛiale sincrone

Maşina secvenÛial| genereaz| semnalele de control ClockDR, ShiftDR,


UpdateDR, ClockIR, ShiftIR, UpdateIR, Select (pentru MUX-ul conectat la
pinul TDO), un semnal de ceas derivat din TCK şi un semnal de autorizare
Enable.
Starea Test-Logic-Reset corespunde funcÛion|rii normale a chip-ului, în care
logica boundary-scan nu este autorizat|. În starea Run-test/Idle se aşteapt|
terminarea unor operaÛii de tip BIST sincronizate cu ceasul TCK. Cele 7 st|ri
de control al registrelor de date au urm|toarele semnificaÛii:
Select-DR-Scan este o stare temporar| din care se poate iniÛia o secvenÛ| de
scanare, cu TMS = 0.
În starea Capture-DR toate registrele selectate de instrucÛiunea curent| se
încarc| în paralel.
Toate registrele de date legate între TDI şi TDO, specificate de instrucÛiunea
curent| (stocat| în registrul de instrucÛiuni) deplaseaz| informaÛia cu o poziÛie
la fiecare front activ al ceasului TCK în stare Shift-DR. Cu TMS = 0 starea
Shift-DR se poate menÛine oricâte perioade de ceas TCK consecutive pentru a
termina deplasarea planificat|.
Exit1-DR este o stare temporar| în care datele curente din registre se
p|streaz|.
Pe durata st|rii Pause-DR operaÛiile de scanare sunt oprite pentru a permite
circuitului master al bus-ului de test situat pe plac| s| furnizeze din când în
când date noi. Pauze de acest fel au loc în cazul secvenÛelor de test cu lungime
mare.
Starea Exit2-DR indic| fie sfârşitul st|rii Pause-DR, ceea ce va conduce la
reluarea operaÛiilor de deplasare, fie sfârşitul operaÛiilor de deplasare.
În starea Update-DR se face înc|rcarea latch-urilor care dubleaz| bistabilii
unor registre de date (de exemplu dr2 în Fig.6.27).
St|rile alocate pentru controlul registrului de instrucÛiuni au semnificaÛii
similare cu cele prezentate mai sus.
Registrul de instrucÛiuni are fiecare celul| alc|tuit| din câte dou|
elemente de memorie, un bistabil şi un latch, la fel ca registrul din Fig.6.22.
Structura permite recepÛionarea prin deplasare serie a unei noi instrucÛiuni în
timp ce instrucÛiunea curent| se menÛine la ieşirile registrului.
Standardul IEEE 1149.1 prevede executarea obligatorie a urm|toarelor patru
instrucÛiuni de test: BYPASS, SAMPLE, PRELOAD şi EXTEST. OpÛional se
pot include instrucÛiunile INTEST, RUNBIST, CLAMP, IDCODE, USRCODE
şi HIGHZ.
InstrucÛiunea BYPASS determin| “şuntarea” registrului boundary-scan sau a
lanÛurilor de scanare interne legate între pinii TDI şi TDO, de c|tre registrul
bypass. Atunci când testarea unui circuit de pe plac| se termin|, acel circuit
trebuie comutat în modul bypass pentru a reduce lungimea lanÛului global de
Circuite Logice SecvenÛiale Sincrone 337

scanare şi de a creşte viteza de aplicare a testelor.


InstrucÛiunea SAMPLE permite capturarea datelor de la pinii circuitelor în
funcÛionarea normal| şi plasarea lor în registrul boundary-scan. Capturarea
datelor sau eşantionarea se face cu ceasul TCK. “Instantaneele” obÛinute se
extrag din registrul de scanare şi se analizeaz|.
InstrucÛiunea PRELOAD determin| deplasarea datelor de test în registrul
boundary-scan f|r| ca acestea s| interfereze cu datele din funcÛionarea
normal|, dup| cum se arat| în Fig.6.30. Dup| ce o secvenÛ| de test a fost
deplasat| în lanÛul format din celulele de tip dr1, aceasta se copiaz| paralel în
celulele de tip dr2; lanÛul de celule dr1 este disponibil pentru o nou| sarcin|.
Liniile mai groase reprezint| c|ile de date care sunt activate.

Fig.6.30 ExecuÛia instrucÛiunii PRELOAD

InstrucÛiunea EXTEST are ca scop verificarea interconexiunilor de pe plac|.


Aceast| operaÛie nu implic| logica de aplicaÛie a niciunui chip, dup| cum se
arat| în Fig.6.31. Semnalele care intr| în chip, de pe plac|, printr-un pin de tip
Input sunt capturate şi transmise înapoi pe plac| printr-un pin Output.
InstrucÛiunea INTEST are ca scop verificarea operaÛiilor scanare (shift), update
şi captur| ale tuturor celulelor scan I/O dintr-un chip. Aceste 3 faze se execut|
alternativ, de mai multe ori.
InstrucÛiunea RUNBIST permite tuturor chip-urilor de pe plac| (care au aceast|
instrucÛiune implementat|) s| execute în paralel funcÛiile proprii de autotestare.
OperaÛia are loc în starea Run-test/Idle a TAP Controller-ului. Logica BIST şi
semnalele de control aferente dintr-un chip nu sunt cuprinse în standardul IEEE
1149.1 (nici lanÛurile de scanare interne nu sunt acoperite de acest standard).
338 Cap.6 Testarea circuitelor secvenÛiale sincrone

Fig.6.31 ExecuÛia instrucÛiunii EXTEST

InstrucÛiunea CLAMP forÛeaz| la toÛi pinii de ieşire valorile stocate în bistabilii


(sau latch-urile) de tip dr2; aceste valori binare au fost deplasate în celulele
scan I/O anterior, pe durata unei instrucÛiuni PRELOAD. De asemenea, lanÛul
boundary-scan dintre pinii TDI şi TDO este şuntat de registrul bypass.
InstrucÛiunea IDCODE se utilizeaz| atunci când registrul de identificare de 32
biÛi (ID- register) este inclus în chip; ea determin| înc|rcarea ID-register cu
anumite informaÛii “confidenÛiale” stocate undeva în interiorul chip-ului (cum
ar fi codul fabricantului, versiunea chip-ului, num|rul componentei) şi apoi
extragerea acestora prin intermediul lanÛului de scanare.
InstrucÛiunea USERCODE este util| în cazul chip-urilor care pot fi programate
în diferite moduri. Un cod de 32 de biÛi stocat undeva în interiorul chip-ului şi
care conÛine informaÛii de programare a chip-ului respectiv se încarc| în ID-
register şi se extrage apoi prin deplasare serie.
InstrucÛiunea HIGHZ determin| starea de înalt| impedanÛ| la toÛi pinii cu
direcÛia ieşire şi şuntarea c|ii TDI-TDO de c|tre registrul bypass.
Exist| mai multe arhitecturi boundary-scan la nivel de plac| sau la nivel
de sistem (ansamblu format din mai multe pl|ci).
În Fig.6.32 sunt desenate trei arhitecturi de testare la nivel de plac|. Cel mai
simplu controller al bus-ului de test al pl|cii genereaz| doar 4 semnale şi
corespunde configuraÛiei în inel din Fig.6.32a. În acest caz toate chip-urile
execut| simultan acelaşi tip de operaÛie (captur|, shift sau update) îns| este
posibil ca instrucÛiunile curente s| nu fie identice. Unele chip-uri execut|
instrucÛiunea EXTEST, altele BYPASS ş.a.m.d. IniÛial registrul boundary-scan
Circuite Logice SecvenÛiale Sincrone 339

Fig.6.32 Arhitecturi boundary-scan la nivel de plac|


340 Cap.6 Testarea circuitelor secvenÛiale sincrone

are lungimea maxim| iar pe m|sur| ce unele chip-uri intr| în modul BYPASS
lungimea lui se reduce.
ConfiguraÛia de test în inel cu semnale TMS distincte din Fig.6.32b permite ca
fiecare chip s| fie testat în mod independent, doar c| exist| un singur lanÛ de
scanare a pinilor.
ConfiguraÛia stea din Fig.6.32c implic| conectarea împreun| ale ieşirilor TDO
din cele N chip-uri. Pentru evitarea conflictelor este obligatoriu ca numai una
singur| dintre aceste ieşiri s| fie activ| la un moment dat. În mod independent
se pot iniÛia procese diferite în fiecare chip, inclusiv de autotestare. Un singur
chip poate s| transmit| la un moment dat informaÛii c|tre controller-ul de test
situat pe plac|, utilizând propriul registru boundary-scan; acesta se conecteaz|
la liniile TDI şi TDO ale pl|cii.
Cea mai utilizat| arhitectur| boundary-scan la nivel de sistem, numit|
multidrop, este cea desenat| în Fig.6.33. Controller-ul de test master al
sistemului genereaz| doar 4 semnale de control. Fiecare plac| trebuie s|

Fig.6.33 Arhitectur| boundary-scan la nivel de sistem


Circuite Logice SecvenÛiale Sincrone 341

conÛin| o component| adresabil| (Multi-Drop Device) prin intermediul c|reia


se realizeaz| selecÛia unei singure pl|ci, care se va conecta la bus-ul master
pentru un anumit interval de timp. SelecÛia pl|cilor are la baz| un protocol
special iniÛiat de Master Test Controller.

6.2 Autotestarea

6.2.1 Generalit|Ûi
Tehnicile de proiectare built-in self-test (BIST) sunt forme mai avansate
de proiectare pentru testabilitate (DFT) decât scanarea; BIST se refer| la
capacitatea unui sistem de a se testa singur, adic| de a-şi genera singur teste şi
de a-şi analiza într-o anumit| form| propriile r|spunsuri. Pentru suportul
acestor operaÛii trebuie introdus| logic| suplimentar| sau auxiliar|.
Exist| dou| categori distincte de tehnici BIST:
1) on-line BIST, în care autotestarea are loc pe durata funcÛion|rii normale a
sistemului şi poate fi concurent| sau nonconcurent|;
Testarea concurent| are loc chiar în timp ce sistemul proceseaz| efectiv
informaÛii iar cea nonconcurent| are loc în starea Idle, adic| atunci când
sistemul este inactiv sau în aşteptare.
2) off-line BIST, în care autotestarea se face atunci când sistemul nu se afl| în
funcÛionare normal|.
Deşi nu au capacitatea de a detecta defecte în timp real (tranzitorii,
intermitente), tehnicile off-line sunt foarte utilizate în proiectarea circuitelor
integrate. Schema tipic| off-line BIST este cea desenat| în Fig.6.34.

Fig.6.34 Sistem digital de tip off-line BIST


342 Cap.6 Testarea circuitelor secvenÛiale sincrone

Generatoarele de teste şi analizoarele de semn|tur| sunt alc|tuite, în


general, din registrele sistemului original la care se adaug| componente
suplimentare pentru a obÛine registre cu mai multe moduri de operare. Astfel
de registre sunt prezentate în cap.4.
Din punctul de vedere al testelor aplicate, CUT este testat exhaustiv (dac| are
un num|r relativ mic de intr|ri), pseudo-exhaustiv sau pseudo-aleator.
Analizorul de semn|tur| realizeaz| o comprimare a r|spunsurilor CUT sub
forma unei semn|turi.
Controller-ul BIST realizeaz| sincronizarea TPG, CUT şi ORA. De
asemenea, face comparaÛia dintre semn|tura generat| de ORA şi semn|tura de
referinÛ| stocat| în interiorul chip-ului. Rezultatul comparaÛiei este comunicat
în exterior, c|tre un controller de test master care gestioneaz| un proces de
testare mai complex, la nivel de plac| sau de sistem, bazat pe scanare.
Avantajele tehnicilor BIST off-line sunt urm|toarele:
- se elimin| în multe situaÛii necesitatea unui echipament de testare extern;
- pot fi detectate defecte de tip delay sau defecte care nu au fost modelate;
- se pot realiza diagnostic|ri foarte eficiente;
- costurile de testare se micşoreaz| considerabil.
Dezavantajele principale sunt, ca şi în cazul scan|rii, creşterea ariei şi
reducerea vitezei maxime de operare a sistemului. De asemenea, analiza
r|spunsurilor bazat| pe comprimarea în semn|turi reduce gradul de acoperire
a defectelor datorit| fenomenelor de compensare sau de mascare a erorilor.
În cazul aplic|rii tehnicilor BIST off-line sistemelor cu arhitecturi orientate pe
bus-uri (magistrale) penalit|Ûile de arie sunt mai mici. Acest lucru se poate
justifica cu ajutorul Fig.6.35. Registrele R1 şi R2 se transform| în generator de
teste şi respectiv în analizor de semn|tur|, în modul BIST, pentru mai multe

Fig.6.35 Sistem cu BIST off-line parÛial


Circuite Logice SecvenÛiale Sincrone 343

blocuri din sistem (Combk). Registrele Rink şi Routk asociate blocului


combinaÛional Combk nu trebuie modificate, singurul lor mod de operare fiind
înc|rcarea paralel|. La un moment dat se pot comprima r|spunsurile de la un
singur bloc. Blocurile conectate succesiv la TPG şi ORA în modul BIST prin
intermediul magistralei BUS pot s| aib| complexit|Ûi oarecare (nu trebuie s|
fie neap|rat blocuri combinaÛionale).

6.2.2 Reguli BIST-design


Regulile off-line BIST-design sunt mult mai restrictive în comparaÛie cu
regulile scan-design. Pe lâng| includerea acestora din urm|, este necesar ca
toate elementele de memorie (latch-uri, bistabili) din TPG, CUT şi ORA s| fie
iniÛializate la valori logice dinainte cunoscute. Orice valoare logic|
necunoscut| X care se propag| în analizorul de semn|tur| va altera semn|tura
produs|. Sursele de valori necunoscute trebuie blocate prin introducerea
punctelor de control suplimentare. Dou| exemple sunt prezentate în Fig.6.36.

Fig.6.36 Blocarea surselor de valori necunoscute

Sursa X din Fig.6.35a a fost blocat| sau “fixat|” prin introducerea unui punct
de control al valorii 1; semnalul BIST_mode este activ High. SoluÛia din
Fig.6.35b este numit| şi bypass; sursa X este înlocuit| în modul BIST cu o
surs| care genereaz| valori logice cunoscute, atât 0 cât şi 1. Orice soluÛie de
fixare a valorilor necunoscute m|reşte penalit|Ûile de arie şi de vitez|.
Sursele de semnale care pot genera valori logice necunoscute sunt diverse:
- convertoarele analog-digitale,
- latch-urile şi bistabilii neincluşi în lanÛurile de scanare,
- memoriile SRAM şi DRAM,
- buclele de reacÛie combinaÛionale,
- semnalele de control asincron SET/RESET,
- driverele de bus cu trei st|ri,
- c|ile de propagare false şi cele critice,
- c|ile de propagare multi-ciclu,
- porturile flotante şi unele porturi bidirecÛionale.
344 Cap.6 Testarea circuitelor secvenÛiale sincrone

O alt| surs| de erori care poate s| altereze semn|turile provine din


întârzierile de propagare dintre TPG şi CUT pe de o parte şi dintre CUT şi
ORA pe de alt| parte; registrele TPG şi ORA pot fi situate la distanÛe relativ
mari faÛ| de CUT iar clock skew devine o problem|. Resincronizarea (re-
timing) este soluÛia recomandat| pentru eliminarea potenÛialelor erori. Modul
de implementare este ilustrat în Fig.6.37.

Fig.6.37 Resincronizarea c|ilor de propagare lungi

Ceasurile Ck1, Ck2 şi Ck3 aparÛin aceluiaşi domeniu de ceas (arbore de ceas).
La intrarea în orice “receptor” aflat la distanÛ| relativ mare faÛ| de sursa de
transmisie trebuie introdus registrul pipe-line format din 2 bistabili de tip D;
CUT este receptor pentru TPG şi surs| de transmisie pentru ORA.

6.2.3 Arhitecturi BIST


Exist| multe arhitecturi BIST off-line. În fiecare arhitectur| anumiÛi
bistabili sunt înlocuiÛi cu celule de memorie mai complexe, care transform|
registrele normale în registre cu mai multe moduri de operare. Aceste moduri
de operare suplimentare sunt utilizate pe durata test|rii (autotest|rii). În afar|
de shift şi hold registrele BIST au ca moduri de operare suplimentare TPG şi
ORA, adic| moduri în care registrul devine generator de teste sau analizor de
Circuite Logice SecvenÛiale Sincrone 345

semn|tur|. Tehnicile BIST off-line sunt compatibile cu scanarea intern| şi cu


boundary-scan.
În Fig.6.38 este reprezentat| arhitectura LOCST (Level sensitive scan
design On-Chip Self-Test).

Fig.6.38 Arhitectura LOCST

Registrele R1 şi R2 sunt formate din celule boundary-scan. TPG şi ORA sunt


activate numai în modul test (BIST); componentele acestora nu sunt utilizate
în funcÛionarea normal|. Procesul de testare se desf|şoar| astfel:
1) TPG, lanÛul de scanare format din R1, R2 şi registrele de scanare din
interiorul CUT precum şi ORA se încarc| cu o secvenÛ| de iniÛializare aplicat|
la intrarea suplimentar| Scan-in;
2) Se activeaz| modul autotestare, adic| se autorizeaz| TPG, ORA şi se
dezactiveaz| ceasurile normale pentru registrele R1, R2;
3) Se execut| autotestarea prin repetarea alternativ| a doi paşi şi anume
- un test generat de TPG se deplaseaz| în lanÛul de scanare şi simultan,
informaÛia extras| este comprimat| de c|tre ORA;
De obicei TPG este un generator de secvenÛe pseudoaleatoare iar perioada
secvenÛelor generate este egal| cu 2 la puterea num|rul de celule din TPG. Un
test are lungimea dictat| de lungimea lanÛului de scanare.
346 Cap.6 Testarea circuitelor secvenÛiale sincrone

- se actveaz| ceasurile normale pentru o singur| perioad| (un singur front


activ) şi se încarc| lanÛul de scanare (mai puÛin R1).
Paşii de mai sus se repet| pân| când se obÛine un grad acceptabil de acoperire
a defectelor.
4) Controller-ul BIST (On-chip monitor) compar| semn|tura generat| de ORA
dup| aplicarea tuturor testelor cu semn|tura de referinÛ| stocat| în interiorul
chip-ului.
Pe linia Scan-out se pot extrage in exteriorul chip-ului diverse informaÛii,
inclusiv secvenÛele de intrare în ORA.
În Fig.6.39 este reprezentat| arhitectura STUMPS (Self-Testing Using
MISR and Parallel Sequence generator). TPG este un generator de teste
pseudo-aleatoare iar ORA este un registru de semn|tur| de tip MISR.
Arhitectura se preteaz| la sisteme cu mai multe lanÛuri de scanare; celulele
boundary-scan nu sunt utilizate.

Fig.6.39 Arhitectura STUMPS

Toate c|ile de scanare din interiorul CUT sunt alimentate în paralel de la


ieşirile TPG. Lungimea secvenÛelor pseudo-aleatoare generate este egal| cu
lungimea celui mai mare registru de scanare. Schema din figura de mai sus se
poate aplica atât la nivel de chip cât şi la nivel de plac|.
Arhitectura desenat| în Fig.6.40, numit| CBIST (concurrent BIST), ia în
considerare numai autotestarea blocurilor combinaÛionale. Toate componentele
din logica BIST sunt suplimentare, nefiind utilizate în funcÛionarea normal|.
Nu se utilizeaz| registrele de scanare şi nici boundary-scan. Prin multiplexare-
demultiplexare aceeaşi logic| BIST se poate utiliza pentru mai multe blocuri
Circuite Logice SecvenÛiale Sincrone 347

combinaÛionale. Aceast| arhitectur| are tr|s|turi de BIST on-line.

Fig.6.40 Arhitectura CBIST

Autotestarea off-line se realizeaz| la comanda Normal/Test = 1. Semnalul


Enable devine ativ şi autorizeaz| funcÛionarea TPG şi ORA. La intr|rile CUT
se aplic| testele generate de TPG iar r|spunsurile CUT sunt comprimate în
semn|tur| de ORA.
Autotestarea on-line se realizeaz| în modul normal de operare, la comanda
Normal/Test = 0. La intr|rle CUT se aplic| secvenÛele de intrare normale. TPG
şi ORA se iniÛializeaz| fiecare în câte o stare de aşteptare, prin intermediul
unor semnale de control nereprezentate în Fig.6.40. Când valorile binare
aplicate la intr|rile normale la un moment dat sunt identice cu starea TPG,
comparatorul genereaz| un impuls High (Enable = 1) care determin|
348 Cap.6 Testarea circuitelor secvenÛiale sincrone

schimbarea st|rii TPG şi înc|rcarea r|spunsului CUT în ORA. Ori de câte ori
tiparul de biÛi aplicat la intr|rile normale este identic cu testul preg|tit dinainte
de c|tre TPG, r|spunsul CUT la acel test este capturat de c|tre ORA. Când
TPG ajunge în anumite st|ri predefinite, semn|tura stocat| în ORA este
verificat|.
Pe durata autotest|rii, TPG şi ORA pot s| fie unul şi acelaşi bloc. Aceast|
caracteristic| este specific| arhitecturii CSTP (Circular Self-Test Path).
Structura din Fig.6.41, alc|tuit| din registre şi blocuri combinaÛionale, este de
tip CSTP. Registrele R1, R2, R6, R7 şi R8 sunt alc|tuite din bistabili de tip D-
BIST a c|ror structur| este indicat| în Fig.6.41. Celelalte registre (R3, R4 şi
R5) conÛin bistabili D simpli. Arhitectura impune dou| condiÛii:
- toate intr|rile şi ieşirile primare trebuie s| fie asociate cu bistabili D-BIST;
- toate celulele de memorie din sistem trebuie s| fie iniÛializabile.

Fig.6.40 Arhitectur| CSTP


Circuite Logice SecvenÛiale Sincrone 349

Fig.6.41 Bistabil de tip D-BIST

Registrele R1, R2, R6, R7 şi R8 formeaz| un registru de deplasare cu reacÛie


al c|rui polinom caracteristic are forma 1 + xm, unde m este num|rul de celule.
Acest registru îndeplineşte pe durata test|rii ambele roluri, de generator de
teste (TPG) şi de analizor de semn|tur| (ORA).
Registrele R3, R4 şi R5 nu trebuie s| aib| comenzi SET/RESET pentru a fi
iniÛializate. Dac| se menÛine activ| comanda asincron| de reset a registrelor
R1, R2, R6, R7 şi R8 (adic| RN = 0) atunci primul front activ de ceas încarc|
registrele R3 şi R4 cu valorile logice determinate de blocurile C1 şi respectiv
C2. Al doilea front activ de ceas încarc| registrul R5 cu valorile determinate
de blocul C3.
Arhitectura BIST on-line concurent| are forma general| reprezentat| în
Fig.6.42. Blocurile B1, B2, B3, ... sunt p|rÛi ale sistemului digital şi pot
îndeplini funcÛii oarecare, combinaÛionale şi/sau secvenÛiale. Deoarece
(auto)testarea trebuie f|cut| în timp ce sistemul opereaz| normal, detecÛia
erorilor nu trebuie s| se bazeze pe cunoaşterea testelor şi implicit nici pe
cunoaşterea r|spunsurilor. Deşi pare imposibil, acest lucru este realizabil.
Toate funcÛiile la nivelul fiec|rui bloc trebuie redefinite cu ajutorul tehnicilor
de codificare. Prin codificare se pot obÛine propriet|Ûi cunoscute şi invariante
pentru toate r|spunsurile corecte posibile ale unui bloc funcÛional.
R|spunsurile corecte constituie cuvinte de cod. Blocurile de control locale
Checkerk din Fig.6.42 sunt combinaÛionale şi au rolul de a verifica apartenenÛa
r|spunsurilor blocului Block la mulÛimea cuvintelor de cod Mk. Orice r|spuns
care nu este cuvânt de cod conÛine cu certitudine erori iar acestea indic|
prezenÛa defectelor. Dac| îns| un anumit r|spuns este cuvânt de cod acest lucru
nu înseamn| neap|rat absenÛa erorilor. Este posibil ca anumite defecte s|
“transforme” anumite cuvinte de cod tot în cuvinte de cod; num|rul acestor
cazuri depinde în principal de metoda de codificare. Orice metod| de codificare
reprezint| o form| de introducere a redundanÛei informaÛionale; cu cât
redundanÛa introdus| este mai mare cu atât mai mult scad şansele ca în prezenÛa
defectelor s| se obÛin| ca r|spunsuri cuvinte de cod. RedundanÛa implic| îns|
350 Cap.6 Testarea circuitelor secvenÛiale sincrone

Fig.6.42 Arhitectura BIST on-line concurent|

consum suplimentar de arie, putere disipat| şi eventual sc|derea vitezei


maxime de operare.
Un exemplu de cod utilizat în tehnicile de proiectare BIST on-line este codul
i-din-n; cuvintele acestui cod au fiecare câte n biÛi iar dintre aceştia exact i biÛi
au valoarea logic| 1.
Schema din Fig.6.42 are o rezoluÛie de diagnosticare relativ mare. Aceasta
depinde de num|rul de circuite de control local. Circuitul de control global
poate s| identifice circuitul local care a semnalizat eroarea şi implicit blocul
funcÛional.

S-ar putea să vă placă și