Documente Academic
Documente Profesional
Documente Cultură
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
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
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)
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.
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
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.
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
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
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
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
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.
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.
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.
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|
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.
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
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.
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.