Elemente de Testare Automat Curs 04 s l

  • Slides: 40
Download presentation
Elemente de Testare Automată Curs 04 s. l. dr. ing. Rajmond JÁNÓ rajmond. jano@ael.

Elemente de Testare Automată Curs 04 s. l. dr. ing. Rajmond JÁNÓ rajmond. jano@ael. utcluj. ro fb. com/janorajmond 26 -28 str. George Barițiu, E 05 1

Genererea automată a vectorilor de test (ATG) pentru circuite secvenţiale • Specificul ATG în

Genererea automată a vectorilor de test (ATG) pentru circuite secvenţiale • Specificul ATG în cazul circuitelor secvenţiale • Iniţializarea circuitului secvenţial • Verificarea tabelei de stări • Generarea testelor circuitelor secvenţiale la nivelul porţilor • Metoda diferenţei booleene • Metoda ariei logice iterative 2

Circuite secvenţiale • Funcţionarea circuitelor secvenţiale (automate secvenţiale cu stări finite) este caracterizată nu

Circuite secvenţiale • Funcţionarea circuitelor secvenţiale (automate secvenţiale cu stări finite) este caracterizată nu numai de evoluţia ieşirilor sale ci şi de un set de mărimi numite stările circuitului. Modificarea ieşirilor şi a stărilor circuitului depinde atât de valorile intrărilor cât şi de starea anterioară în care se găsea circuitul: N(q, x), Z(q, x). • Două categorii: • circuite secvenţiale sincrone • circuite secvenţiale asincrone 3

Circuite secvenţiale - sincrone • Modificarea stărilor şi a ieşirilor are loc sincron cu

Circuite secvenţiale - sincrone • Modificarea stărilor şi a ieşirilor are loc sincron cu un semnal de ceas. • Funcţionarea circuitului se descrie printr-o tabelă de stări. 4

Circuite secvenţiale - asincrone • Modificarea stărilor şi a ieşirilor are loc la momentul

Circuite secvenţiale - asincrone • Modificarea stărilor şi a ieşirilor are loc la momentul (asincron) la care se modifică intrările. • Funcţionarea circuitului se descrie printr-o tabelă de flux (flow table). 5

ATG pentru circuite secvenţiale • Testarea circuitelor secvenţiale este mai dificilă decât testarea celor

ATG pentru circuite secvenţiale • Testarea circuitelor secvenţiale este mai dificilă decât testarea celor combinaţionale. • Pentru detectarea unui defect este nevoie de obicei de o secvenţă de test (o succesiune de vectori de test aplicaţi la intrare). • De asemenea, răspunsul circuitului este dependent de starea sa iniţială, deci manifestarea defectului poate fi diferită în funcţie de starea lui iniţială. Este important să fie cunoscută acesată stare iniţială! 6

Definiţii Fie o secvenţă de test T aplicată la intrarea unui circuit secvenţial N

Definiţii Fie o secvenţă de test T aplicată la intrarea unui circuit secvenţial N şi răspunsul acestuia R(q, T) atunci când circuitul pleacă din starea q. Considerând circuitul modificat Nf prin prezenţa defectului f, răspunsul circuitului defect este Rf(qf, T). • O secvenţă de test detectează puternic un defect dacă secvenţele de ieşire R(q, T) şi Rf(qf, T) sunt diferite pentru orice pereche posibilă de stări q şi qf. • Un defect f este detectat de secvenţa T dacă răspunsurile circuitului R(q, T) şi Rf(qf, T) sunt diferite pentru unii vectori de test tiєT oricare ar fi starea iniţială a circuitului. 7

ATG pentru circuite secvenţiale - exemplu PP 1 8

ATG pentru circuite secvenţiale - exemplu PP 1 8

ATG pentru circuite secvenţiale - exemplu Ø Se remarcă faptul că defectul PP 1

ATG pentru circuite secvenţiale - exemplu Ø Se remarcă faptul că defectul PP 1 în a nu este puternic detectat deoarece dacă evoluţia circuitului porneşte din starea B, atunci secvenţa de ieşire este aceeaşi atât în absenţa cât şi în prezenţa defectului. Secvența de intrare T = 10111 Starea inițială Secvența de ieșire Fără defect PP 1 în a A 01011 01010 B 11100 C 00011 D 11001 = 11100 00010 10010 9

ATG pentru circuite secvenţiale - exemplu PP 0 10

ATG pentru circuite secvenţiale - exemplu PP 0 10

ATG pentru circuite secvenţiale - exemplu Ø Defectul PP 0 în b este puternic

ATG pentru circuite secvenţiale - exemplu Ø Defectul PP 0 în b este puternic detectat deoarece indiferent de starea iniţială secvenţele de ieşire sunt diferite. Secvența de intrare T = 10111 Starea inițială Secvența de ieșire Fără defect A 01011 B 11100 C 00011 D 11001 ≠ ≠ PP 0 în b 01101 11101 01010 11

ATG pentru circuite secvenţiale iniţializarea • Din exemplul anterior rezultă că nu este suficientă

ATG pentru circuite secvenţiale iniţializarea • Din exemplul anterior rezultă că nu este suficientă aplicarea unei secvenţe de test capabile să detecteze un defect deoarece în analiza secvenţei de ieşire aceasta trebuie pusă în corespondenţă cu starea iniţială a circuitului. • Deci prima fază a testării unui circuit secvenţial este cea de iniţializare în care se aplică o secvenţă de iniţializare Ti care îl aduce într-o stare cunoscută. 12

Iniţializarea circuitului secvenţial • Obiectivul iniţializării este de a aplica circuitului o secvenţă de

Iniţializarea circuitului secvenţial • Obiectivul iniţializării este de a aplica circuitului o secvenţă de intrare care îl aduce într-o stare unic determinată • Incertitudinea iniţială reprezintă setul de stări pe care un circuit îl poate lua atunci când el este pus sub tensiune. Cazul cel mai defavorabil este cel în care un circuit cu n stări poate să ajungă în oricare din aceste n stări. • Un circuit se consideră conectat puternic dacă, pentru orice pereche de stări Si şi Sj, există o secvenţă de intrare comută circuitul din starea Si în starea Sj. 13

Iniţializarea circuitului secvenţial • Pentru obţinerea secvenţelor de iniţializare se utilizează arborele de succesiuni

Iniţializarea circuitului secvenţial • Pentru obţinerea secvenţelor de iniţializare se utilizează arborele de succesiuni sau diagrama de decizii binare (Binary Decision Diagram - BDD). În această diagramă fiecare nod este asociat cu un vector de incertitudine. Acest vector conţine toate stările posibile în care se poate afla la un moment dat circuitul (după aplicarea unei secvenţe la intrare). • Primul nod conţine incertitudinea iniţială (numărul de stări posibile în care se poate afla circuitul la pornire). 14

Iniţializarea circuitului secvenţial • Numărul de bifurcaţii din fiecare nod este egal cu numărul

Iniţializarea circuitului secvenţial • Numărul de bifurcaţii din fiecare nod este egal cu numărul combinaţiilor posibile la intrarea circuitului. • Un vector de incertitudine ce conţine o singură stare se numeşte vector trivial. • Un vector de incertitudine a cărui componente conţin o singură stare sau stări identice care se repetă se numeşte vector omogen. 15

Diagrama de decizii binare - exemplu 16

Diagrama de decizii binare - exemplu 16

Secvenţa de sincronizare 7474 • Este o secvenţă de intrare care forţează circuitul secvenţial

Secvenţa de sincronizare 7474 • Este o secvenţă de intrare care forţează circuitul secvenţial fără defect într-o stare specifică indiferent de stare lui iniţială. • Este secvenţa de iniţializare ideală. • Fără o proiectare specifică, este dificil de a se obţine o secvenţă de sincronizare pentru un circuit oarecare. • Pentru toţi bistabilii dintr-un circuit secvenţial care au semnale set sau reset, se poate considera că există o secvenţă de iniţializare de lungime egală cu 1. 17

Secvenţa de sincronizare • În BDD un nod este considerat ca nod terminal bun

Secvenţa de sincronizare • În BDD un nod este considerat ca nod terminal bun dacă vectorul său de incertitudine conţine un singur element (un vector trivial). • Dacă nodul conţine acelaşi vector de incertitudine ca şi nodul său precedent atunci el este considerat un nod terminal rău (şi nu se mai continuă BDD pe ramura respectivă). • O secvenţă de test de sincronizare rezultă parcurgând calea de la nodul iniţial de incertitudine până la un nod final bun (cu o singură stare). 18

Secvenţa de sincronizare - exemplu Arborele de sincronizare Secvenţa de sincronizare: TI=111 19

Secvenţa de sincronizare - exemplu Arborele de sincronizare Secvenţa de sincronizare: TI=111 19

Secvenţa de revenire (ghidare) • (Homing sequence) este o secvenţă de intrare care, dacă

Secvenţa de revenire (ghidare) • (Homing sequence) este o secvenţă de intrare care, dacă este aplicată circuitului fără defect, este suficientă pentru a cunoaşte starea sa finală numai prin analiza secvenţei de ieşire (fără a şti starea sa iniţială). • În arborele de succesiuni construit pentru determinarea secvenţei de revenire se consideră că un nod este nod terminal rău dacă are acelaşi grad de incertitudine ca şi nodul său anterior. • Dacă nodul are un vector de incertitudine trivial sau omogen atunci el este considerat un nod terminal bun. 20

Secvenţa de revenire (ghidare) • 21

Secvenţa de revenire (ghidare) • 21

Secvenţa de ghidare - exemplu Arborele de ghidare determină Secvenţa de ghidare: TI=011 22

Secvenţa de ghidare - exemplu Arborele de ghidare determină Secvenţa de ghidare: TI=011 22

Secvenţa de distingere • (Distinguishing sequence) este o secvenţă de intrare care, aplicată circuitului

Secvenţa de distingere • (Distinguishing sequence) este o secvenţă de intrare care, aplicată circuitului fără defecte, este suficientă ca să fie cunoscută starea lui finală precum şi starea lui iniţială, chiar dacă iniţial aceasta nu este cunoscută. Evoluţia circuitului la aplicarea secvenţei de distingere, este diferită pentru fiecare stare iniţială. • Din definiţie rezultă că fiecare secvenţă de distingere este şi o secvenţă de ghidare. În schimb reciproca nu este adevărată. • Procedura obţinerii secvenţei de distingere este aceeaşi cu cea de la secvenţa de ghidare. Diferenţa apare în faptul că nodul considerat nod terminal bun este caracterizat de un vector trivial cu un număr de componente egal cu numărul de stări. 23

Secvenţa de distingere - exemplu Arborele de distingere Secvenţa de distingere: TI=00 24

Secvenţa de distingere - exemplu Arborele de distingere Secvenţa de distingere: TI=00 24

Verificarea tabelei de stări • O metodă posibilă de testare a unui circuit secvenţial

Verificarea tabelei de stări • O metodă posibilă de testare a unui circuit secvenţial este de a verifica dacă acesta respectă tabela sa de tranziţii sau graful de tranziţii. Acest lucru este echivalent cu o testare funcţională a circuitului şi în cele mai multe cazuri soluţia oferă o testare suficient de bună pentru circuit. În acest scop circuitul trebuie să aibă cel puţin o secvenţă de sincronizare sau una de ghidare pentru a se putea efectua procedura de iniţializare a circuitului. • După ce avem circuitul adus într-o stare cunoscută se aplică secvenţe de intrare care duc la trecerea circuitului prin toate stările posibile. Aplicând secvenţa se citesc ieşirile circuitului. Orice modificare a valorilor aşteptate este considerată ca o consecinţă a prezenţei unui defect în circuit. 25

Verificarea tabelei de stări • Dacă circuitul are o secvenţă de distingere se poate

Verificarea tabelei de stări • Dacă circuitul are o secvenţă de distingere se poate adopta o procedură mult mai elaborată. În primul pas circuitul este iniţializat prin aplicarea unei secvenţe de ghidare sau de distingere. • Pentru a verifica o tranziţie particulară din starea Si în starea Sj este aplicată o secvenţă de transfer care asigură trecerea circuitului din starea iniţială în starea Si. În momentul în care circuitul se găseşte în starea Si se aplică o secvenţă de distingere care aduce circuitul în starea Sj. Această procedură este repetată pentru fiecare pereche de stări Si şi Sj. 26

Verificarea tabelei de stări • Avantajul major al acestor proceduri este acela că ele

Verificarea tabelei de stări • Avantajul major al acestor proceduri este acela că ele nu necesită o descriere detaliată a circuitului testat. În conceperea testului nu este nevoie de o descriere a circuitului la nivel de poartă, este suficientă numai descrierea sa funcţională. Circuitul este o “cutie neagră” (black box 1 testing) căreia i se verifică relaţiile dintre intrări şi ieşiri. • Dezavantajul metodei prezentate constă în următoarele limitări: • nu identifică defectele care nu afectează tabela de stări. • sunt potrivite numai în elaborarea testelor pentru circuitele cu un număr redus de stări. Această observaţie este o consecinţă a faptului că lungimea secvenţelor de test devine atât de mare încât ea poate fi impracticabilă. 1 a nu se confunda cu cutia neagră a aparatelor de zbor 27

Generare testelor pentru circuite secvenţiale la nivelul porţilor • Pentru a obţine o mai

Generare testelor pentru circuite secvenţiale la nivelul porţilor • Pentru a obţine o mai bună acoperire a setului de defecte ce pot apare într-un circuit secvenţial se apelează la adaptarea metodelor de generare a vectorilor de test la nivelul porţilor, metode care au fost prezentate pentru circuitele combinaţionale: • metoda diferenţei booleene • metoda ariei logice iterative 28

ATG pentru circuite secvenţiale - metoda diferenţei booleene • Pentru un circuit secvenţial diferenţa

ATG pentru circuite secvenţiale - metoda diferenţei booleene • Pentru un circuit secvenţial diferenţa booleană a funcţiei Zj obţinută la ieşirea j a circuitului în funcţie de variabila xi de intrare se defineşte ca: Unde s-a notat: iar Sk reprezintă starea circuitului la momentul k Dacă între intrarea xi şi ieşire Zj legătura se face printr-o cale ce conţine porţile P 1, P 2, …, Pr atunci vom simboliza această cale prin: 29

ATG pentru circuite secvenţiale - metoda diferenţei booleene • Se demonstrează următoarele două proprietăţi:

ATG pentru circuite secvenţiale - metoda diferenţei booleene • Se demonstrează următoarele două proprietăţi: • Dacă calea Ci a unui circuit secvenţial este neredundantă şi nerecovergentă, atunci setul complet de test pentru intrarea xi este dat de: • Pentru o cale Ci neredundantă şi recovergentă setul de test este dat de diferenţa booleană a căii dacă circuitul poate fi adus în starea Sk 30

ATG pentru circuite secvenţiale - metoda diferenţei booleene • Secvenţa de test se generează

ATG pentru circuite secvenţiale - metoda diferenţei booleene • Secvenţa de test se generează în felul următor: • Pentru fiecare ieşire Zj a circuitului se calculează diferenţele booleene, , a căilor de la fiecare intrare xi(i=1, 2, …, n). • Dacă conţine mai mult decât un termen se selectează termenul pentru care şi • Dacă termenul selectat în pasul anterior conţine una sau mai multe variabile de reacţie ce definesc starea circuitului, se determină secvenţa de ghidare care poate fi aplicată pentru a aduce mai întâi circuitul în această stare. • Dacă această stare nu există, secvenţa de test poate fi aplicată direct, fără a se aplica mai întâi o secvenţă de ghidare. 31

Metoda diferenţei booleene – exemplu Pentru primul termen: Secvenţa de ghidare este: Rezultă în

Metoda diferenţei booleene – exemplu Pentru primul termen: Secvenţa de ghidare este: Rezultă în felul acesta următoarele secvenţe de test: sau pentru PP 1 la intrarea a sau pentru PP 0 la intrarea a 32

ATG pentru circuite secvenţiale - metoda ariei logice iterative • Prin această metodă circuitul

ATG pentru circuite secvenţiale - metoda ariei logice iterative • Prin această metodă circuitul secvenţial se transformă în unul combinaţional “echivalent”. • În principiu, în locul circuitului cu reacţie se consideră o succesiune infinită de circuite combinaţionale identice. • Semnalul aplicat de o celulă celulei următoare este întârziat cu timpul de întârziere care apare pe bucla circuitului secvenţial. • Circuitul astfel obţinut se testează cu metodele cunoscute pentru circuite combinaţionale. • Numărul de celule care se iau în considerare va da lungimea secvenţei de test ce se aplică. 33

ATG pentru circuite secvenţiale - metoda ariei logice iterative • Logic iterative array, LIA

ATG pentru circuite secvenţiale - metoda ariei logice iterative • Logic iterative array, LIA pentru circuite sincrone: 34

ATG pentru circuite secvenţiale - metoda ariei logice iterative • Circuitul combinaţional echivalent pentru

ATG pentru circuite secvenţiale - metoda ariei logice iterative • Circuitul combinaţional echivalent pentru un bistabil, pseudo F/F: 35

ATG pentru circuite secvenţiale metoda ariei logice iterative • Pentru circuitele asincrone celulele combinaţionale

ATG pentru circuite secvenţiale metoda ariei logice iterative • Pentru circuitele asincrone celulele combinaţionale se obţin prin tăierea liniilor de reacţie. • La interconectarea celulelor vor rezulta intrări secundare şi ieşiri secundare nefolosite. Acestea vor fi evitate în procesul de elaborare a vectorilor de test. Exemplu 36

Metoda ariei logice iterative - exemplu 1 PP 1 1 0 37

Metoda ariei logice iterative - exemplu 1 PP 1 1 0 37

Metoda ariei logice iterative - exemplu 0 1 1 1 0 0 x 1

Metoda ariei logice iterative - exemplu 0 1 1 1 0 0 x 1 1 0 0 0 1 PP 1 1 1 0 1 1 0 1 38

Metoda ariei logice iterative - exemplu • Pentru defectul PP 1 în nodul G,

Metoda ariei logice iterative - exemplu • Pentru defectul PP 1 în nodul G, se obţine vectorul de test 10 x 0 acţionând în celula 2. În plus trebuie ca liniile de legătură dintre celule să fie “ 1”. Acest lucru se obţine prin aplicarea vectorului de iniţializare 0011 aplicat primei celule. 39

Cursuri online www. ael. utcluj. ro Informații pt studenti – Materiale didactice – Elemente

Cursuri online www. ael. utcluj. ro Informații pt studenti – Materiale didactice – Elemente de Testare Automată 40