Sunteți pe pagina 1din 11

B.

DIAGNOZA SISTEMELOR
(ELECTRONICE DIGITALE)
58 Fiabilitate si Diagnoza
Diagnoza 59

I. TESTAREA LA DIFERITE NIVELURI DE


ABSTRACTIZARE

1. Introducere

Un sistem digital este un circuit digital complex. Complexitatea


unui circuit este legata de nivelul de abstractizare cerut pentru a descrie
operatiile sale de o maniera inteligibila. Nivelul de abstractizare poate fi
caracterizat în mare prin tipul informatiei procesate de circuit (Figura
B_I-1).

Control Datele Nivelul de abstractizare


Valori logice Nivel logic
(sau secventa de valori logice)
Valori logice Cuvinte Nivel registru
Instructiuni Cuvinte Nivel set de instructiuni
Program Structuri de date Nivel procesor
Mesaje Mesaje Nivel sistem

Figura B_I-1. Niveluri de abstractizare

Desi un circuit digital poate fi vazut ca procesând cantitati


analogice ca tensiune si curent, nivelul cel mai de jos cu care se lucreaza
este nivelul logic. Informatia procesata la acest nivel este reprezentata de
valori logice discrete. Reprezentarea clasica utilizeaza valorile binare (0
si 1). Unele modele mai precise cer totusi mai mult de doua valori logice.
La acest nivel se face o distinctie între circuitele combinationale si cele
secventiale. Spre deosebire de circuitele combinationale, ale caror valori
logice la iesire depind doar de valoare curenta a intrarilor, un circuit
secvential poate memora valori logice anterioare, si deci proceseaza
secvente de valori logice.
60 Fiabilitate si Diagnoza

Începem sa vedem un circuit ca un sistem în momentul în care


considerând operatiile sale în termeni de valori logice procesate, acestea
devin fara interes sau neutilizabile. În general vedem un sistem ca fiind
alcatuit dintr-o parte de date care interactioneaza cu o parte de control. În
anumite cazuri functiile de control sunt înca definite în termeni de valori
logice iar informatia procesata de partea de date consta din cuvinte, unde
un cuvânt este un grup (vector) de valori logice. Deoarece asemenea date
sunt memorate în registre, acest nivel este numit nivel registru. La nivelul
urmator de abstractizare, nivelul set de instructiuni, informatia de control
este si ea organizata în cuvinte denumite instructiuni. Un sistem ale carui
operatii sunt conduse de un set de instructiuni se numeste procesor de
instructiuni. La nivelul de abstractizare urmator, nivelul procesor, putem
vedea sistemul digital ca procesând secvente de instructiuni, sau
programe, care opereaza pe blocuri de date, referite ca structuri de date.
În fine un alt nivel de abstractizare ( nu neaparat cel mai înalt ) , este de a
considera sistemul ca fiind compus din subsisteme independente, sau,
unitati, care comunica prin blocuri de cuvinte numite mesaje; acest nivel
de abstractizare este denumit nivel sistem.

În general stimulii si raspunsul care definesc un experiment de


testare corespund cu tipul informatiei procesat pe sistemul testat.
Astfel testarea este un termen generic care acopera o arie larga de
activitati si medii cum ar fi :
- unul sau mai multe sisteme testeaza un altul trimitând si
receptionând mesaje;
- un procesor se autotesteaza executând un program de diagnostic;
- ATE verifica un circuit aplicând si observând secvente binare;
Testele pot fi si la nivel parametric. La acest nivel se verifica
caracteristicile electrice ale circuitului cum ar fi praguri, polaritati ale
tensiunii, curentul de fuga, etc.

2. Erori si defecte

O operatie incorecta a sistemului testat (UUT) se numeste eroare


(observata). Conceptul de eroare difera ca si înteles la diferite niveluri.
De exemplu, o eroare observata la nivel de program de diagnostic poate fi
Diagnoza 61

un rezultat incorect al unei operatii aritmetice, în timp ce pentru un ATE


o eroare înseamna în mod curent o valoare binara incorecta.

Cauzele erorii observate pot fi :


a) erori de proiectare ;
b) erori de fabricatie ;
c) defecte de fabricatie ;
d) defecte fizice.

Exemple :
a) - specificatii incomplete sau inconsistente;
- nepotrivire între diferite niveluri de proiectare;
- nerespectarea regulilor de proiectare ;
b) - componente proaste ;
- trasee incorecte ;
- scurtcircuite cauzate de lipituri incorecte ;
c) Defectele de fabricatie nu sunt atribuibile direct erorilor umane;
mai degraba ele rezulta din imperfectiunile procesului de fabricatie. De
exemplu, scurtcircuitele si întreruperile sunt defecte uzuale în fabricatia
circuitelor LSI - MOS. Alte defecte de fabricatie includ dopaj (
introducerea în semiconductor a unor atomi straini ) incorect, erori de
aliniere a mastilor, încapsulare gresita. Localizarea corecta a defectelor de
fabricatie este importanta pentru a îmbunatati procesul de fabricatie.
d) Defectarile fizice apar în timpul duratei de viata a sistemului
datorita uzarii componentelor si/sau factorilor de mediu. De exemplu
conectorii de aluminiu din interiorul capsulei circuitului integrat se pot
întrerupe în timp datorita migratiei electronilor si coroziunii. Factorii de
mediu, cum ar fi temperatura, umiditatea si vibratiile accelereaza
defectarea componentelor. Radiatiile cosmice si particulele α pot induce
defecte în chip-uri care contin memorii RAM de mare densitate. Anumite
defecte fizice, numite ,, erori infantile “, apar imediat dupa fabricatie.

Erorile de fabricatie, defectele de fabricatie si defectarile fizice


sunt denumite împreuna ca defecte fizice .

Corespunzator cu stabilitatea lor în timp acestea pot fi clasificate


ca :
- permanente, sunt prezente tot timpul dupa aparitia lor ;
62 Fiabilitate si Diagnoza

- intermitente, apar doar la anumite momente de timp ;


- tranzitorii, apar la schimbarea temporara a unui factor de mediu ;
În general, defectele fizice nu permit o tratare matematica a
testarii si diagnozei. Solutia este utilizarea defectelor logice, care sunt
reprezentare convenabila a efectelor defectelor fizice în operarea
sistemului.
Un defect este detectat observând o eroare cauzata de el. Pentru
aceasta se construieste un model de defect. Cel mai utilizat model de
defect este ca o linie ( fir ) sa fie permanent “ blocata “ la o valoare
logica.

3. Modelare si simulare

La fel cum proiectarea precede fabricatia unui sistem, proiectarea


testelor poate fi realizata utilizând un experiment de testare care
utilizeaza un model al sistemului proiectat.
În acest context, model înseamna o reprezentare a sistemului pe
calculator în termeni de structuri de date si/sau programe. Modelul poate
fi exercitat prin stimularea sau cu o reprezentare a semnalelor de intrare.
Acest proces se numeste simulare logica ( numita de asemenea simulare
pentru verificarea proiectului sau simulare cu valori de adevar ).
Simularea logica determina evolutia în timp a semnalelor în model, ca
raspuns la o secventa de intrari aplicata.

4. Evaluarea testelor

O problema importanta în testare este evaluarea testelor, care se


refera la determinarea eficacitati sau calitatii unui test. Evaluarea testelor
este facuta în mod uzual în contextul unui model de defect si calitatea
unui test este masurata prin rata dintre numarul de defecte pe care le
detecteaza si numarul total de defecte din universul de defecte presupus;
aceasta rata se numeste acoperirea de defecte ( fault coverage ). Evaluarea
testelor se face printr-un experiment de simulare numit simulare cu
defect, care calculeaza raspunsul circuitului în prezenta defectului pentru
testul ce este evaluat.
Un defect este detectat daca raspunsul produs este diferit de
raspunsul asteptat în circuitul fara defect.
Diagnoza 63

5. Tipuri de testari

Metodele de testare pot fi clasificate dupa mai multe criterii (


Figura B_I-2 ).

Criteriul Atributele metodei de Terminologie


testare
Când se - Concurent cu operarea Testare on - line
realizeaza ? normala a sistemului. Testare concurente
- Ca o activitate Testare of-line
separata
Unde este sursa - În sistemul însusi. Auto-testare
de stimuli ? - Aplicata de un Testare externa
dispozitiv
extern numit testor
Ce testam ? - Erori de proiectare. Verificarea proiectului.
- Erori de fabricatie. Testare de acceptanta.
- Defecte de Burn - in ( prin ardere ).
fabricatie. Testare pentru asigurarea
- Defectiuni fizice calitatii. Testare de câmp.
infantile. Testare de mentenanta.

- Defectiuni fizice.
Care este - Circuit integrat Testare la nivel de
obiectul componenta.
fizic testat ? - Placa Testare la nivel de placa.
- Sistem Testare la nivel de
sistem.
Cum sunt - Preluare din Testare cu teste
produsi stimulii memorie. memorate.
si/sau raspunsul - Generate în timpul Testare algoritmica.
asteptat ? testarii. Testare comparata.
Cum se aplica - Într-o ordine Testare ne-adaptiva.
stimulii ? (predeterminata ) fizica.
- Depinzând de Testare adaptiva.
rezultatele
anterioare.
64 Fiabilitate si Diagnoza

Cât de repede se - Mai încet decât Testare statica.


aplica viteza de
stimulii ? operare normala. Testare dinamica.
- La viteza normala de
operare.
Care sunt - Întreaga secventa de Testare compacta.
rezultatele la iesire.
observate ? - Anumite functii ale Testare non-compacta.
secventei de la iesire.
Ce linii sunt - Doar liniile I / O. Testare la cupla.
accesibile - Liniile I / O si liniile Sonda ghidata.
pentru testare ? interne. Pat de cuie.
Testare cu fascicule de
electroni.
In-circuit.
Emulare in-circuit.
Cine verifica - Sistemul însusi. Auto-testare.
rezultatele ? Auto-verificare.
- Un dispozitiv extern Testare externa.
( testor ).

Figura B_I-2. Tipuri de testari

Observatii:

1. Testarea prin programe de diagnostic este realizata of-line, la


viteza si la nivel de sistem. Stimulii sunt generati de sistemul însusi care
lucreaza în mod auto-test. În sistemele a caror logica de control este
microprogramata, programele de diagnostic pot fi de asemenea
microprogramate (microdiagnostice ). Anumite parti ale sistemului
numite nucleu minimal ( hardcore ), trebuie sa fie fara defecte pentru a
permite lansarea programului. Stimulii sunt generati prin software sau
firmware si pot fi aplicati adaptiv. Programele de diagnoza se folosesc
pentru testare de mentenanta sau testare de câmp.
Diagnoza 65

2. Emularea in-circuit este o metoda de testare care elimina


necesitatea nucleului minimal pentru lansarea programelor de diagnostic.
Aceasta metoda este utilizata în testarea placilor si sistemelor bazate pe
microprocesoare si consta în scoaterea acestora de pe BUT si accesarea
prin conexiunile microprocesorului a restului BUT de la un testor extern.
Testorul poate emula functiile unui microprocesor eliminat ( în mod
uzual prin utilizarea unui microprocesor de acelasi tip ).Aceasta
configuratie executa programul de diagnostic utilizând microprocesorul si
memoria testorului.

3.În testarea on-line stimulii si raspunsul sistemului nu sunt


cunoscute în avans deoarece stimulii se obtin în timpul modului normal
de operare. Obiectul de interes în testarea on-line consta nu în raspunsul
însusi ci în anumite proprietati ale raspunsului, proprietati care trebuie sa
ramâna invariante în raport cu operatia fara defecte. De exemplu, doar o
iesire a unui decodificator fara defect poate avea valoarea logica 1. Codul
de operatie ( opcode ) a unui cuvânt instructiune din setul de instructiuni
a unui proces este restrictionat la un set de coduri “legale”. În general,
totusi , nu exista sau sunt dificil de verificat asemenea proprietati.
Metoda generata în testarea on-line se bazeaza pe tehnici de proiectare
fiabile care creeaza proprietati invariante care sunt usor de verificat în
timpul operarii sistemului. Un exemplu tipic este utilizarea unui bit
aditional de paritate pentru fiecare bit de memorie. Bitul de paritate este
setat pentru a crea o proprietate invarianta usor de identificat. Mai precis,
se face ca fiecare bit extins ( bitul original plus bitul de paritate ) sa aiba
aceeasi paritate ( numarul de biti de 1 sa fie modulo 2 ). Bitul de paritate
este redundant, în sensul ca nu contine informatie utila pentru operarea
normala a sistemului. Acest tip de redundanta informationala este
caracteristica sistemelor care utilizeaza coduri detectoare si corectoare de
erori.
Un alt tip de proiectare fiabila bazata pe redundanta este
redundanta modulara, care este bazata pe multiplicarea modulului de mai
multe ori. Modulele obtinute (trebuie sa aiba aceleasi functii, posibil cu
implementari diferite ) lucreaza cu aceleasi set de intrari, si proprietatea
de invarianta este ca toate trebuie sa produca acelasi raspuns. Sistemele
auto - testabile au subcircuite numite verificatoare, dedicate proprietatii
de invarianta.
66 Fiabilitate si Diagnoza

4. Testarea cu sonda ghidata este o tehnica utilizata la testarea


la nivel de placa.
Daca se detecteaza erori în cazul testarii la nivel de cupla ( aceasta
faza este numita si testare GO/NO GO ),testorul decide care linii interne
trebuie monitorizate si cere operatorului sa puna o sonda pe linia
selectata. Apoi testul este reaplicat.
Principiul este al trasarii înapoi a propagarii erorii (lor) de-a
lungul cai(lor) circuitului. Dupa fiecare aplicare a unui test testorul
verifica rezultatul obtinut la monitorizarea liniei si determina daca s-a
localizat defectul sau trasarea înapoi trebuie sa continue. În loc sa
monitorizeze câte o linie la un moment dat, anumite testoare pot
monitoriza un grup de linii, uzual pini ai unui circuit integrat.
Testarea cu sonda ghidata este o procedura secventiala în care un
subset din liniile interne accesibile este monitorizat la fiecare pas.
Anumite testoare utilizeaza un pat de cuie pentru a monitoriza toate
liniile interne accesibile într-un singur pas.

5. Tinta testarii in-circuit este sa verifice componentele deja


montate pe placa. Un testor extern utilizeaza un chip (circuit integrat)
pentru a aplica stimuli direct la intrarile circuitului integrat si a observa
raspunsul sau. Testorul trebuie sa fie capabil sa izoleze electronic
circuitul sub test de restul mediului de pe placa; de exemplu poate sa
forteze intrarile.

6. Testarea algoritmica se refera la generarea stimulilor în timpul


testarii. Numaratoarele si registrii de deplasare cu bucla inversa sunt
exemple de hardware utilizat pentru a genera stimuli de intrare.
Generarea algoritmica a stimulilor este o capabilitate a anumitor testoare
de a produce combinatii de anumiti stimuli fixati. Combinatia dorita este
determinata de un program de control scris într-un limbaj orientat spre
testor.
Raspunsul asteptat poate fi generat în timpul testului, fie de la o
copie buna a sistemului testat (numit martor), fie utilizând o emulare în
timp real a sistemului. Acest tip de testare se numeste testare prin
comparare.

7. Metodele bazate pe verificarea unei functii f( R) derivate din


raspunsul R al sistemului testat în locul verificarii lui R însusi, se spune
Diagnoza 67

ca se realizeaza o testare compacta, iar f( R ) se spune ca este o


reprezentare compresata sau semnatura lui R.