Sunteți pe pagina 1din 26

128 Fiabilitate si Diagnoza

2.3 Diagnoza defectelor bazata pe analiza efect - cauza

Se prezinta o tehnica de diagnoza a defectelor care are urmatoarele


caracteristici:
1) este aplicabila defectelor locale singulare si multiple .
2) nu cere enumerarea defectelor.
3) poate identifica defectele locale care împiedica initializarea.
4)poate indica prezenta defectelor locale de tip neblocat.
5) poate identifica liniile corecte în D.U.T.(Device under test ).

Aceasta tehnica nu cere dictionar de defecte locale si nu este


bazata pe compararea raspunsului obtinut de la D.U.T . cu raspunsul
asteptat ,care nu se presupune a fi cunoscut. Analiza cauza-efect
calculeaza direct raspunsul actual al D.U.T. la testul aplicatiei (efectul)
pentru a determina situatiile de defect posibile (cauzele ) care pot genera
acest raspuns.

2.3.1 Motivare

Tehnicile conventionale de diagnoza a defectelor locale se


bazeaza pe dictionar de defecte care este construit prin simularea
defectului.
Tehnicile de simulare sufera de unele probleme întâlnite în
calculul valorilor logice necunoscute. O detectie posibila se zice ca apare
când un simulator de defect propaga o valoare u la iesirea primara (PO)
. Defectele care împiedica initializarea influenteaza detectia, deoarece
simptomele lor de eroare depind de stari initiale necontrolabile . Astfel
modul de abordare cu dictionar de defecte nu poate fi utilizat pentru
aceasta clasa de defecte.
O alta deficienta a metodei bazata pe dictionar de defecte este
utilizarea unui defect de tip blocat-la-x singular . Implicit într-un astfel
de model circuitul trebuie testat frecvent, asa încât sa nu poata apare mai
mult de un defect locale între 2 testari. Aceasta strategie nu este valida
când un defect local se manifesta ca defect local multiplu si când un
circuit realizat nou este testat pentru prima oara . Chiar daca toate
defectele locale singulare componente ale unui defect local multiplu
sunt individual detectate ,un defect local multiplu poate sa nu fie
Diagnoza 129

detectat; aceasta este un rezultat al relatiilor de mascare dintre defecte. S-


a observat ca prezenta defectelor locale redundante invalideaza de
asemenea strategia de testare frecventa, când un defect local redundant
poate masca existenta unui alt defect local detectabil . Acest defect
poate avea loc când testul aplicat este incomplet, ceea ce duce la
obtinerea acelorasi functii pentru defectele nedetectate ca pentru defecte
locale redundante .Este de subliniat ca aproape toate circuitele practice
sunt redundante si/sau testate cu teste incomplete.
În toate aceste situatii un model de defect multiplu este cerut .
Totusi în aproape toate cazurile practice un dictionar de defecte multiple
este imposibil de realizat . Chiar daca un dictionar foarte mare este
construit odata, e probabil sa devina invalid la schimbari .
Este posibil ca un test complet pentru defecte locale singulare sa
fie bun sau chiar complet pentru defecte locale multiple. Exista un numar
de metode care pot determina defectele multiple nedetectate de un test
complet pentru defecte locale singulare. Aceste metode sunt fie algebrice
si/sau bazate pe o analiza explicita a relatiei de mascare dintre defecte, si
totusi acestea nu sunt practice pentru circuite mari .
Mai mult, aplicabilitatea lor este limitata la circuite
combinationale. Problema determinarii defectelor locale multiple
nedetectate de un test dat este importanta pentru generare testelor (TG)
pentru defecte multiple, unde partea dificila nu este generare pentru un
defect multiplu specificat , ci selectia acestui defect .
Algoritmul poate fi utilizat la procesul de localizare de defect
daca se pot identifica acele simptome care nu pot fi generate de un
defect de tip blocat la. De exemplu daca stim sa obtinem raspunsul si
ca defectul în circuit nu este de tip blocat-la, putem adapta o strategie de
diagnoza specifica pentru a verifica corecta plasare de componente .

2.3.2 Modul de abordare propus

Se va introduce o noua idee de abordare a diagnozei defectelor


care va duce la rezolvarea problemelor expuse în paragraful precedent.
Presupunem ca avem un dictionar pentru defecte multiple. Este
foarte improbabil ca în timp ce dictionarul este folosit, mai mult decât o
mica parte din simptomele precalculate vor fi realmente observate.
Aceasta arata ca mult din efortul depus în construirea unui dictionar este,
130 Fiabilitate si Diagnoza

într-un sens, inutil, deoarece multe din intrarile sale nu vor fi apelate
niciodata. Aceasta observatie sugereaza ca poate fi mai eficient sa
prelucram direct simptomele actual obtinute în timpul testarii mai
degraba decât a trata toate simptomele posibile care pot fi generate de un
model de defect dat. Procesul implicat în cele 2 situatii este diferit ca
natura. Constructia unui dictionar de defect este un calcul apriori sau o
analiza cauza-efect care determina efectele (simptomele) pentru toate
cauzele posibile . Metoda propusa este un calcul posterior sau o analiza
efect-cauza, care determina doar acele cauze compatibile cu efectul
obtinut.
Acest tip de analiza bazat pe calculul raspunsului obtinut a fost
folosit de Breur pentru circuite combinationale. Principalul dezavantaj a
tehnicii lor rezulta din utilizarea unei metode algebrice care cere
rezolvarea unui foarte mare sistem de ecuatii Booleane.
În metoda data o cauza nu e numai un defect ci si o situatie de
defect în circuit, unde printr-o situatie de defect întelegem ca unele linii
sunt defecte, altele sunt normale. Identificarea liniilor normale este un
concept utilizat implicit sau explicit în multe din realizarile anterioare
referitoare la localizarea defectelor în circuite combinationale. O
diferenta majora este ca în toate realizarile anterioare o linie se afirma ca
este normala prin demonstrarea explicita ca defectele nu sunt prezente în
aceea linie, bazata pe faptul ca testele care detecteaza aceste defecte trec
(asa încât nici o eroare nu este observata la iesiri); în metoda data se
determina implicit starea unei linii deducând valorile liniei în timpul
aplicarii testului. Suntem interesati în primul rând de identificarea
liniilor normale (acelea pentru care valorile de 1 si 0 pot fi deduse), si
apoi procedam la localizarea liniilor care nu pot fi dovedite a fi normale.
O consecinta importanta a acestui concept este ca nu se cere
enumerarea defectelor deoarece este folosita o analiza de defect
neexplicita. Nici o metoda bazata pe enumerarea defectelor nu poate fi
eficienta în cazul defectelor multiple.
Un alt element cheie a metodei prezentate este ca nu se presupune
explicit multiplicitatea defectului si nu se foloseste a analiza a explicita a
relatiei de mascare dintre defecte; mai degraba, multiplicitatea defectului
si aceste relatii sunt implicit determinate ca un rezultat al deductiei
valorilor liniilor interne.
Diagnoza 131

S-a implementat procesul de deductie a valorilor interne în circuit


sub test printr-un algoritm de trasare înapoi ( backtracking ),referit ca
Algoritm de Deductie, care este ghidat de structura circuitului.
Într-o abatere majora de la principiile stabilite în diagnoza, nu se
presupune ca valorile asteptate într-un circuit bun sunt cunoscute (
exceptie fac bineînteles, valorile intrarilor primare Pi ). Astfel detectia
defectelor nu e o preconditie pentru localizarea erorii. De fapt, detectia
defectelor si localizarea lor este inseparabila în metoda propriu -zisa.

2.3.3 Bazele teoretice ale algoritmului de conducere

Fie N modelul circuitului combinational, N* implementare lui N


sub un test, T secventa de test aplicata, R raspunsul lui N la testul T, si
R* raspunsul lui N* la testul T. Scopul diagnozei defectelor este de a
verifica existenta defectelor în N* (detectia defectelor) si de a le
identifica (pozitia defectelor). Analiza efect-cauza este ghidata mai
degraba de topologia retelei decât de o descriere algebrica a circuitului.
Primul pas în aceasta abordare este deducerea valorilor semnalelor
interioare în N* ; acest pas este realizat de Algoritmul deductiv. În pasul
al doilea valorile deduse sunt folosite la determinare starii liniilor în N*.
În modelul de tip blocat-la orice linie din N* are una din starile :
nomala, blocata-la-0, sau blocata-la-1.

2..3.3.1 Principii de baza

Teorema urmatoare exprima o conditie necesara pentru deducerea


valorilor liniilor interne în N* presupunând existenta unor linii normale
în N*.
Teorema1,(Cale normala): Valorile logice ale unei linii interne l
pot fi deduse dintr-un experiment terminal doar daca exista cel putin o
cale normala conectând l cu unele iesiri primare (PO).
Presupunem ca nu ar exista nici o cale normala care sa lege linia l
cu o iesire -PO. Asta înseamna ca pe oricare din aceste cai exista cel
putin un defect. Atunci toate iesirile sunt independente de valoarea lui l,
si deci nici o informatie referitoare la aceste valori nu pot deriva din R*.
132 Fiabilitate si Diagnoza

Teorema caii normale stipuleaza faptul ca Algoritmul de deductie


ar trebui sa porneasca de la iesirile primare (PO) si sa avanseze catre
iesirile primare (PI) încercând sa identifice cât mai multe linii normale
posibile stiind ca existenta unei linii normale este factorul principal care
permite alte noi deductii.

2..3.3.2 Proprietati de consistenta

Vom reprezenta valorile actuale în N* prin vectorul V*=[ v*tl ],


unde v*tl este valoare liniei l când este aplicat testul t ∈T. Valorile
asteptate în N sunt date de V0=[ v0tl ]. Se vor folosi doar valorile asteptate
ale intrarilor primare care reprezinta chiar testul aplicat T.
Se vor defini patru proprietati de consistenta ale valorilor [ v*tl ] în
cadrul modelului de tip blocat -la . Când se va face referirea la valoare se
va întelege valoarea actuala a unei linii în N*.
P0 . Daca linia l este b-l -a, a ∈{0,1}, atunci v*tl = a, ∀ t ∈ T.
P1 . Fie l iesirea unei porti. Daca l este normala, atunci în orice
test t ∈ T, valorile lui l si cele ale intrarilor portii trebuie sa acopere un
cub primitiv al portii.
P2 . Fie k o ramura fanout (FOB) a lui j. Daca k este normala
atunci v*tk = v*tj ∀ t ∈ T (k si j au aceleasi valori în orice test).
P3 . Fie i o iesire primara. Daca i este normala, atunci v*ti =
v0ti, ∀ t ∈T (valorile lui i
sunt valorile sale asteptate).
Cubul primitiv al unei porti SI-NU cu trei intrari este dat în figura
B_III- 41 (u reprezinta o valoare logica nespecificata).

a b c l
1 1 1 1
0 u u 1
u 0 u 1
u u 0 1

Figura B_III- 41. Poarta SI-NU cu 3 intrari


Se observa ca pentru orice pereche de cuburi primitive în care
valoarea iesirii este complementara exista o intrare care îsi modifica
valoarea.
Diagnoza 133

Teorema 2. (Calea normala completa): Daca o iesire primara (PO)


”o” are valori complementare în testele t si t’, atunci exista cel putin o
cale normala completa în N* între o intrare primara si “o”, si orice nod al
acestei cai are valori complementare în t si t’ .
Justificare: În mod cert linia ”o” este normala în N*.
Consideram intrarile portii care are ca iesire pe “o”. Cum v *to = v *t’o
atunci din P1, exista cel putin o intrare k asa încât v *tk = v *t’k ; astfel k
este normala. Acum fie k este o intrare primara, caz în care calea este
completa, fie este o linie interna. Daca k este FOB (fanout branch), atunci
din P2 ,radacina ei (sursa fanout) ia aceleasi valori ca si k în testele t si t’.
Daca k este iesirea unei porti atunci, repetând rationamentul, una din
iesirile portii trebuie sa aiba valori complementare în cele doua teste.
Astfel calea normala poate fi extinsa pâna când devine o cale normala
completa si valorile în t si t’ ale fiecarei linii din cale sunt
complementare.
Desi proprietatile P0-P3 sunt suficiente pentru caracterizarea
comportarii unui circuit sub modelul de tip blocat-la, se foloseste un
concept aditional care foloseste un efect combinat al proprietatilor P0-P3.
Ne vom referi la acest concept ca valori fortate (FV).
Definitie1: Un nod l se zice ca are ,,proprietati de FVc în testul t
unde ( c ∈{0,1}), daca fie v*tl= c fie v*tl= c ∀ t∈T. Un nod are “
valoarea fortata c în testul t “ daca are proprietatea de FVc în testul t
indiferent de situatia de defect din N*; aceasta se indica prin FV=c . Daca
linia l nu are nici o valoare fortata în testul t aceasta se indica prin
FVtl=ϕ.
Urmatoarea lema impune pentru intrarile primare valorile
asteptate ca valori fortate.
Lema1: Pentru orice intrare primara i FVti = v0ti.
Justificare: Fie v0ti = c. Atunci daca i este normala atunci din
proprietatea 3, v*ti = c. Aceasta este adevarat chiar daca i este blocat-la c.
Daca linia I este blocata-la c , atunci din prima proprietatea de
consistenta v*ti = c∀t ∈ T . FVti =c.
Teorema3: Daca k este o FOB(ramura fanout) a lui j, atunci FVtk
=FVtj ∀t ∈ T .
Teorema4: Fie l iesirea unei porti neinversoare (inversoare) si
x1,x2,…xp intrarile sale. Atunci FVtl= c( c ) FVtxi =c pentru i = 1,2,..p.
134 Fiabilitate si Diagnoza

Teorema 3 atribuie unei ramuri fanout valorile fortate ale


radacinii. Teorema4 subliniaza legaturile dintre valorile fortate ale iesirii
unei porti si cele ale intrarilor. Calcularea valorilor fortate într-un circuit
începe de la intrarile primare (Lema 1) dupa care se aplica teoremele3 si
4 în cazurile posibile. Acest proces este similar cu simularea circuitului
pentru un test dat dar folosind reguli mult mai restrictive de propagare.
Fie Flc ={t : FVtl = c} ;Flc este setul de teste în care l are valoarea
fortata c.
Corolar1: Daca pentru t ∈ T, v*t1l =c, atunci v*tl =c pentru orice t
∈ Fl .c

Justificare: Consideram un test t ∈ Flc . Cum FVtl=c, atunci, fie a)


v*tl =c, sau b) v*t’l = c , t∀T . Dar v*t1l = c contrazice cazul b si astfel doar
cazul a este valid.
Daca l are valoarea fortata c în testul t atunci l are proprietatea
FVc în testul t indiferent de situatia de defect din N*, deci independent de
valorile celorlalte linii. Sa consideram liniile A si B din figura B_III- 42
si sa presupunem ca FVtA = ϕ.

Figura B_III- 42. Valori fortate conditionate

Presupunem ca se cunoaste valoarea lui A v*tA =1. Daca B este


normal atunci prin P2 v*tB = 1. Aceasta este de asemenea adevarat daca B
este blocat-la-1. Daca B este blocat-la-0 atunci v*t’B = 0 ∀t ' ∈ T . Astfel
stiind ca v*tA = 1, B are proprietatea de FV1; astfel se spune ca B are
valoarea fortata conditionata (CFV) 1 în testul t cu conditia {v*tA = 1} si
indicam aceasta prin notatia FVtB = 1/{v*tA = 1}. În general o valoare
fortata conditionata este determinata de un set de conditii. Continuând
exemplul, daca v*tC = 1 atunci FVtB =1/{v*tC = 1}si este usor de
demonstrat ca FVtE = 1/{v*tA = 1, v*tB = 1}. Se pot calcula atât CFV-
urile cât si valorile fortate considerându-le pe primele ca valori fortate
Diagnoza 135

conditionate cu un set gol de conditii: FVtl =c este echivalenta cu FVtl =


c/ϕ .
Urmatoarele doua teoreme generalizeaza teoremele 3 si 4. C
reprezinta un set de conditii.
Teorema 5: Daca k este o ramura fanout a lui j atunci CFVtk/Ck =
CFVtj/Cj si Ck = Cj.
Teorema 6: Fie l iesirea unei porti neinvertoare (invertoare) si
x1,x2,…xp intrarile portii. Atunci CFVtl =c( c )/Cl daca CFVtxi =c/Ci , cu i
=1,2,…,p si Cl = C1 U C2 U … U Cp

2.3.3.3 Valori deduse si valori actuale

Deducerea valorilor interne în N* se bazeaza pe proprietatile de


consistenta ale valorilor actuale. O solutie generata de Algoritmul de
Deductie este un set posibil de valori actuale si se reprezinta printr-un
vector V = [ vtl ]; vtl reprezinta valoarea dedusa a liniei l în testul t. Vtl ia
valori în setul {0,1,x} unde x denota faptul ca valoarea binara a liniei l în
testul t nu a putut fi dedusa. Exista cazuri în care Algoritmul de Deductie
nu duce la nici o solutie , caz în care se spune ca raspunsul R* nu poate fi
generat sub regulile de consistenta ale modelului de tip blocat-la. În
aceasta situatie, defectul în N* este un defect care nu poate fi echivalat cu
nici un defect permanent de tip blocat.
În general se obtin mai multe solutii plecând de la acelasi raspuns
R*. Daca Algoritmul de Deductie genereaza solutiile V1,V2,…,Vm (m ≥
1) , atunci fiecare solutie Vi = [ vitl ] reprezinta un set posibil de valori
actual. Este necesar ca Algoritmul de Deductie sa genereze toate solutiile
posibile ( cu restrictia impusa de teorema caii normale ). Bazându-ne pe
aceasta cerinta avem urmatoarea lema.
Lema2. Exista o solutie Vk care acopera valorile actuale V* (
adica vktl = v*tl pentru oricare vktl = u).
Daca m > 1 nu putem identifica care solutie Vk acopera pe V*
dar cu siguranta se poate identifica un subset al valorilor actuale si anume
valorile comune tuturor solutiilor.
Lema3. Daca vitl = δ pentru i = 1,2,…,m, δ={0.1} atunci v*tl =δ.
Trebuie facuta diferenta dintre o linie care este normala în N* si o
linie care este identificata ca normala. Chiar daca valorile actuale sunt
136 Fiabilitate si Diagnoza

cunoscute, o linie normala poate lua aceeasi valoare în toate testele si nu


poate fi identificata ca normala; în general, este posibil sa nu se
determine toate valorile actuale dar un anumit subset al liniilor normale
va fi identificat.
Definitie2: O linie l este normala referindu-ne la solutia V daca
exista testele t1 si t2 asa încât vt1l =0 si Vt2l = 1.
Lema4: Daca linia l este normala referindu-ne la solutia Vi unde i
= 1,2,..,m atunci linia l este normala în N*.

2.3.4 Algoritmul de Deductie

2.3.4.1 Strategia

Calculul valorilor lui V se poate privi ca un proces de justificare a


valorii în care încercam sa justificam valorile obtinute la iesirile primare
(PO). Valorile cunoscute ale fiecarei linii normale (altele decât intrarile
primare) trebuie justificate de valori atribuite liniilor care o preced
(bazându-ne pe proprietatile P1 si P2). Situatia în care exista doar o
singura cale de justificare a valorii reprezinta o implicatie; de exemplu,
pentru a justifica valoarea 0 la iesirea unei porti SI-NU, algoritmul
atribuie valoarea 1 la toate intrarile portii. Sa presupunem ca trebuie
justificata valoarea 1 la iesirea unei porti SI-NU. Aceasta poate fi
realizata în mai multe moduri. Într-un astfel de caz algoritmul ia o decizie
selectând o varianta a cubului primitiv în care iesirea are valoarea 1.
Aceasta se transpune prin atribuirea valorii 0 unei intrari a portii.
Procesul de deductie necesita folosirea strategiei de revenire asa încât
daca o decizie duce la o stare de inconsistenta (stare în care este încalcata
o proprietate de consistenta), algoritmul revine înainte de ultima decizie
luata si ia o alta decizie. Dupa ce este luata o decizie, procesul de
implicatie calculeaza toate valorile unic determinate de luarea deciziei si
verifica consistenta lor.
Concepte similare sunt folosite de algoritmul D. Diferenta majora
este ca algoritmul deductiv se lucreaza cu un set de teste si ca doar
valorile liniilor normale necesita justificare.

2.3.4.2 Procesul de implicatie


Diagnoza 137

Initial, procesul de implicatie calculeaza toate valorile care pot fi


unic determinate din valorile obtinute la iesirile primare. Se va ilustra
acest proces prin intermediul exemplelor.
Exemplul 1. Consideram circuitul din figura B_III- 43a. Testul
aplicat este în figura B_III- 43b. Presupunem ca la aplicarea testului,
circuitul da pentru D valorile 101 (figura B_III- 43c). Acum începe
procesul de deductie. Întâi notam ca valorile 0 si 1 au fost obtinute pentru
iesirea primara D, astfel D nu este blocata-la-1 sau blocata-la-0, deci D
este normala (fault free). Apoi ,D fiind iesirea unei porti SI, valoarea de 1
în testul t1 implica ca valoarea tuturor intrarilor portii trebuie sa fie 1 în
t1; astfel am dedus ca B=C=1 în testul t1 (figura 43d). Este important de
notat ca putem face aceasta deductie doar dupa descoperirea ca D este
normala, deoarece daca doar valoarea 1 ar fi fost obtinuta pentru D, D
poate fi blocata-la-1 si nu vom putea sti daca valorile sale transmit orice
informatie despre valorile lui B si C.
B este o intrare primara a circuitului. Diferit de alte (non-PI) linii,
care pot propaga erori datorate defectelor produse la unele linii
predecesoare, erori la intrari pot apare doar daca ea însasi este blocata-la-
x. Astfel valorile actuale ale intrarilor primare pot fi fie identice cu
valorile asteptate (deci neeronate) fie, daca o valoare indica o eroare,
intrarea primara este blocata la acea valoare. Deoarece B are valoarea 1 în
testul t1, aceasta arata ca nu este blocata-la-0 si deci în toate testele unde
se asteapta valoarea 1, valoarea actuala trebuie sa fie la fel. Deci B=1 în
testul t1 implica B=1 în testul t2 (figura B_III-43e).
Notam ca cele doua implicatii calculate pâna acum sunt diferite ca
natura: prima implica setarea liniei pentru acelasi test(t1) în timp ce a
doua implica valoarea aceleasi linii(B) în teste diferite. Ne vom referi la
aceste doua tipuri de implicatii ca orizontale si verticale.
Valoarea 0 liniei D în testul t2,si faptul ca D este normala, indica
ca una din intrarile portii trebuie sa aiba valoarea 0 în testul t2. Deoarece
B=1 în testul t2 rezulta ca C=0 (figura3f). În acest punct, atât valoarea 1
cât si 0 au fost deduse pentru C, deci C este o linie normala. Acelasi lucru
trebuie sa fie valabil si pentru intrarea invertorului (INV), deoarece daca
A are un defect blocat-la-x, C nu poate avea valoarea 0 si 1. Apoi toate
valorile cunoscute ale lui C (în t1 si t2) sunt complementate si atribuite
lui A (figura B_III-43g). Deoarece A este intrare primara, faptul ca A=0
în testul t1 implica A=0 în testul t3 (figura B_III-43h). Deoarece C este
normala si A=0 în testul t3 implica C=1 în t3 (figura B_III-43I). În final
138 Fiabilitate si Diagnoza

(figura B_III-43j) valoarea lui D în testul t3 implica B=1 (aceasta este o


eroare) si C=1 (aceasta a fost obtinuta si în pasul anterior). Procesul de
deductie a determinat (în cazuri foarte simple) toate valorile actuale.
Stim de asemenea ca actuala situatie de defect în circuit, numeste toate
liniile normale, mai putin B care este blocata-la-1.

(b) (c )
A B A B C D
t1 0 1 t1 1
t2 1 1 t2 0
t3 0 0 t3 1
(d) (e)
A B C D A B C D
t1 1 1 1 t1 1 1 1
t2 0 t2 1 0
t3 1 t3 1

(f) (g)

A B C D A B C D
t1 1 1 1 t1 0 1 1 1
t2 1 0 0 t2 1 1 0 0
t3 1 t3 1

(h) (i)
A B C D A B C D
t1 0 1 1 1 t1 0 1 1 1
t2 1 1 0 0 t2 1 1 0 0
t3 0 1 t3 0 1 1
Diagnoza 139

(j) (k)
A B C D A B C D
t1 0 1 1 1 t1 4 1 1 0
t2 1 1 0 0 t2 4 2 3 0
t3 0 1 1 1 t3 5 7 6 0

(l) (m) (n)


A B C D A B C D A B C D
t1 5 2 6 0 t1 1 1 0 0 t1 4 2 3 0
t2 4 2 3 0 t2 0 1 1 1 t2 4 1 1 0
t3 4 1 1 0 t3 0 t3 0

Figura B_III-43.Exemplul1: (a)Circuitul, (b)Testul aplicat,


(c)Raspunsul obtinut (d)-(j)Implicatii, (l)Ordonare alternativa,
(m)Deductii pentru un raspuns imposibil, (n)Ordonarea

O tabela de ordonare este prezentata în figura B_III-43k pentru a


reprezenta pasii în secventa implicatiilor. Intrarile în tabela de ordonare
arata ordinea în care sunt obtinute valorile corespunzatoare în figura
B_III-43j. Valorile lui D sunt cunoscute initial (pas 0). Valorile lui B si C
au fost obtinute în pasul 1 si asa mai departe.
Rezultatul final nu depinde de ordinea implicatiilor. Figura B_III-
43l arata o alta ordonare în care este calculata întâi valoarea lui D în
testul t3. Toate implicatiile sunt similare cu cele explicate pentru prima
ordonare exceptând cele pentru implicatii verticala calculata în pasul2,
care este bazata pe faptul ca o eroare a fost întâlnita la intrarea B( B=1 în
testul t3 ) si deci B este blocat la 1.
Daca implicatiile se refera la procesul de propagare a valorii
logice în retea, se pot distinge doua tipuri de implicatii orizontale:
implicatii directe (pas 6) si implicatii inverse (pas 1 si 4). Pasul 3 este
tratat ca implicatie directa din B la D, care initiaza o implicatie inversa de
la D la C. Implicatia directa este similara cu propagarea valorii calculata
140 Fiabilitate si Diagnoza

la o simulare logica, cu diferenta ca aici valorile pot fi propagate doar de


linii identificate ca normale.
Calculul implicatiilor verticale în linii mai apropriate de iesiri
primare (PO) aduce în multe situatii o reducere semnificativa în
cantitatea de calcul. Pentru exemplul 1 presupunem ca raspunsul obtinut
este 0 1 0. Întrucât D are valoarea fortata 1 în testul t1 si valoarea actuala
a lui D este 0 în t1 rezulta ca D trebuie sa aiba valoarea 0 în toate testele.
Dar în testul t2 D are valoarea 1. Aceasta contradictie indica ca raspunsul
obtinut este imposibil, deci ca nu este potrivit cu modelul nostru. Figura
B_III-43m arata valorile deduse de calculul acestui raspuns ( tabela de
ordonare este în figura B_III-41n) fara utilizarea altor valori fortate decât
cele de la intrarile primare. Eroarea la A în testul t1, înseamna ca A este
blocata-la-1, în timp ce eroarea în t2 înseamna ca A este blocata-la-0,
evident rezulta o contradictie. Ideea importanta este ca aici inconsistenta
a fost detectata dupa pasul 4 în timp ce utilizând valoarea fortata a lui D
în testul t1, raspunsul imposibil a fost detectat imediat.
Exemplul 2 . Fie circuitul si testul ilustrate în figura B_III-44.
A B C
t1 0 1 1
t2 1 1 0
t3 1 0 1
t4 1 1 1
t5 0 0 1

(a) (b)

A B C D E F G H I J K L M
t1 0 1 1 0 0 1 1 1 0 1
t2 1 1 0 1 1 0
t3 1 0 1 1 1 0
t4 1 1 1 1 1 1 1 1 0 0 1 0
t5 0 0 1 0 0 1
(c )

Figura B_III-44.(a) Circuitul pentru exemplul 2. (b) Testul aplicat. (c)


Valorile fortate
Diagnoza 141

Presupunem ca raspunsul este R*=01010. Toate valorile deduse


sunt procesate prin intermediul unei liste de atribuire. O intrare în lista
defineste o atribuire si modul asociat de propagare prin intermediul
vectorului (l,t,v,Mod), unde l este o linie, t indexul testului în T si
v ∈[0,1]. Figura B_III-45(a) reprezinta executia procesului de implicatie
reflectata în continutul listei.
P MP P M P P M P
A l t v O N A l t v O N A l t v O N
S D I S D I S D I
1 M 1 0 I 20 G 3 0 I 26 39 B 3 0 I 40
2 M 2 1 I 6 21 D 5 0 V 30 40 B 5 0 V 41
3 M 3 0 I 8 22 A 1 0 I 41 F 5 0 F 42
4 M 4 1 I 23 A 2 1 I 42 G 5 0 F
5 M 5 0 I 10 24 A 3 1 I 43 H 5 0 FV 44
6 L 1 0 I 12 25 A 4 1 I 44 I 5 1 FV 45
7 K 1 0 I 26 F 1 1 I 45 L 5 1 FV 46
8 L 3 0 I 27 F 3 0 I 31 46 L 2 0 V 47
9 K 3 0 I 28 H 3 0 FV 33 47 K 2 1 I 48
10 L 5 0 I 29 F 4 1 I 34 48 G 2 1 I 49
11 K 5 0 I 30 A 5 0 I 49 F 2 1 I 50
12 L 4 0 V 13 31 C 1 1 I 36 50 C 2 1 I
13 K 4 1 I 14 32 B 1 1 I 38
14 G 4 1 V 16 33 I 3 1 FV
15 D 4 1 V 17 34 C 4 1 I
16 G 1 1 V 19 35 B 4 1 I
17 D 2 1 V 36 C 3 1 V 39
18 D 3 1 V 20 37 C 5 1 V
19 D 1 0 I 21 38 B 2 1 V

(a)
A B C D E F G H I J K L M
t1 0 1 1 0 1 1 0 0 0
t2 1 1 1 1 1 1 1 0 1
t3 1 0 1 1 0 0 0 0 0
t4 1 1 1 1 1 1 1 0 1
t5 0 0 1 0 0 0 0 0 0

(b)
142 Fiabilitate si Diagnoza

A B C D E F G H I J K L M
st n n 1 n x n n x x x n 0 n
(c)

Figura B_III-45.(a)Executia procesului de implicatie


(b)Valorile deduse (si actuale). (c)Diagnoza defectelor.

Initial lista contine cinci valori obtinute pentru M, care se vor


propaga înapoi(I). La fiecare pas o intrare este scoasa din lista, este
executata atribuirea vtl=v si mai departe este procesata conform modului
de propagare. Daca rezulta noi implicatii, acestea sunt introduse în lista.
Pentru o mai buna urmarire a procesului Primele Noi Implicatii sunt
ilustrate în coloana PNI. Figura B_III-45(b) arata toate valorile calculate
de acest proces. În pasul doi, linia M este identificata ca normala (are si
valoarea 1 si valoarea 0) si valorile actuale cunoscute (în testele t1 si t2)
pot fi folosite pentru deducerea valorilor lui K si L. Doar în testul t1
valorile lui K si L sunt unic determinate; Astfel ( L,1,,0,I) si (K, 1,0,I)
sunt introduse în lista pentru a fi propagate înapoi; acesta este un
exemplu de propagare inversa. Implicatiile generate în pasii 3 si 5 sunt
similare.
Procesarea realizata în pasul 6 este bazata pe Corolarul 1 si
tabelul de valori fortate aratate în figura B_III-44 ( c). Cum L are valoarea
0 în testul t1, lui L trebuie sa îi fie atribuita aceeasi valoare în toate testele
ce apartin lui F0L ={ t4}. Aceasta reprezinta o implicatie verticala care
leaga valorile aceleasi linii în teste diferite, intrarea corespunzatoare din
coada fiind facuta cu MOD = V(vertical). Pâna la pasul 12 nu mai este
generata nici o implicatie. Când o atribuire care a fost introdusa în lista ca
rezultat al unei implicatii verticale este scoasa, procesul de implicatii
încearca sa propage valoarea atât înainte cât si înapoi. Valoarea lui L în
testul t4 nu poate fi propagata înapoi deoarece L nu este normala.
Propagarea înainte a valorii L=0 în testul t4 este posibila deoarece M=1 si
se initiaza o propagare inversa pentru K(pasul13); aceasta este o
consecinta a proprietatii P1, care indica faptul ca cel putin una din liniile
lui K sau L trebuie sa aiba valoarea 1 în testul t4. În pasul 13 K devine
Diagnoza 143

normala si atunci K=1 implica D=1 si G=1 în testult4. În pasii 14 si 15


sunt generate noi implicatii verticale. În pasul 16, G=1 implica D=0
(deoarece K=0 în testult1). Analog D=1 în t3 implica G=0. În pasul 19,
D=0 în t1 implica D=0 în testul t5(implicatie verticala). De asemenea D
devine normala si toate valorile sale cunoscute (în testele t1-t4) sunt
atribuite radacinii sale; aceasta este o consecinta a proprietatii P2. Analog
G devine normala în pasul 20 si aceasta genereaza pasii 26,27 si 29.
De asemenea, în pasul 20 faptul ca G=3 în testul t3 genereaza
valoarea fortata conditionata 0 pentru H, care este o ramura fanout a lui F
(pasul 28). Propagarea valorilor fortate conditionate se realizeaza prin
intermediul listei folosita la deducerea valorilor având modul de
propagare notat MOD=FV. Când este scoasa o intrare (l,t,v,FV) din lista
are loc atribuirea FVtl=v. Astfel valorile fortate conditionate sunt
înregistrate în acelasi tabel ca valorile fortate neconditionate. Aceste
valori pot fi vazute ca o adaugare dinamica la figura B_III-44( c).
Valorile lui F în testele t1 si t4 nu genereaza valori fortate conditionate
pentru H deoarece H are deja valori fortate în aceste teste.
Sa reluam lantul implicatiilor în pasul 39. În acest punct linia F
este normala si valoarea sa în testul t5 este necunoscuta. Linia B are
valoare 0 în testul t3 ceea ce duce prin implicatie verticala la B=0 în
testul t5 care implica F=0 în testul t5; aceasta este un exemplu de
implicatie directa care este similara cu simularea logica. Valorile logice
pot fi propagate prin implicatii directe doar pe linii normale. Atribuirile
rezultate din implicatii directe sunt introduse în lista cu modul de
propagare MOD=F(forward). În pasul 41 valoarea lui F se propaga la
ramura fanout G si induce o valoare fortata conditionata pe cealalta
ramura fanout H, pentru care nu a fost dedusa nici o valoare. Aceasta
valoare fortata se propaga mai departe conform teoremei 6 si genereaza
valoarea fortata 1 pentru linia I care în combinatie cu FV5J=1 genereaza
valoarea fortata 1 pentru linia L în testul t5. Se observa ca valoarea lui L
în testul t5 este 0. Conform definitie unei valori fortate, L are fie valoarea
1 în testul t5 ori are valoarea o în toate testele. Astfel neconcordanta
dintre valoarea fortata conditionata si valoarea dedusa pentru L implica
faptul ca L trebuie sa aiba valoarea 0 în toate testele. În acest punct L are
valoarea 0 în toate testele mai putin testul t2 si se face atribuirea
(L,2,0,V) care este introdusa în lista. L=0 în testul t2 implica
K=1(deoarece M=1). Aceasta în schimb se propaga invers la G,F si C. Se
144 Fiabilitate si Diagnoza

observa ca valoarea lui C în testul t2 este în contradictie cu valoarea


fortata corespunzatoare, dar C are deja valoarea 1 în toate testele.
Acum toate valorile din figura B_III-45(b) au fost deduse.
Valorile liniilor I,J si H nu au putut fi deduse deoarece L nu a fost
identificata ca normala; aceasta este o consecinta a teoremei caii normale.
Toate valorile celorlalte linii au fost determinate. În aceste exemplu s-a
obtinut o singura solutie prin intermediul implicatiilor si nu a fost
necesara nici o decizie. Toate valorile deduse sunt valori actuale în N*.
Exemplul 3. În figura B_III-46 se prezinta sirul de implicatii
pornind de la raspunsul R*=10101.

P M P P M P
A l t v O N A l t v O N
S D I S D I
1 M 1 1 I 15 L 5 1 I 20
2 M 2 0 I 6 16 J 1 1 I
3 M 3 1 I 17 I 1 1 I 22
4 M 4 0 I 8 18 J 3 1 I 24
5 M 5 1 I 19 I 3 1 I
6 L 2 0 I 20 J 5 1 I
7 K 2 0 I 21 I 5 1 I
8 L 4 0 I 22 I 2 1 V 26
9 K 4 0 I 10 23 I 4 1 V 27
10 K 1 0 V 13 24 J 2 1 V 28
11 K 3 0 V 14 25 J 4 1 V
12 K 5 0 V 15 26 J 2 0 I
13 L 1 1 I 16 27 J 4 0 I
14 L 1 1 I 18 28 L 2 1 F

Figura B_III-46. Detectarea unei inconsistente.

Atribuirea J=0 în testul t2 (pasul26) difera cu valoarea deja


atribuita lui J în testul t2(pasul 24). Aceasta inconsistenta induca faptul ca
raspunsul R* nu poate fi generat în cadrul modelului de tip blocat-la.
Diagnoza 145

2.3.4.3 Structura de baza a algoritmului

Procedura recursiva DEDUCEREVAL prezinta structura de baza


a Algoritmului Deductiv. NRSOL va indica numarul solutiilor generate.
Înainte de prima activare a functiei DEUCEREVAL toate valorile
obtinute la iesirile primare sunt introduse în lista de atribuire având
modul de propagare MOD=I(înapoi). Functia IMPLY implementeaza
procesul de implicatii descris anterior procesând toate atribuirile si
verificându-le consistenta pâna când lista devine goala sau este detectata
o inconsistenta; acest rezultat va fi indicat via unei variabile CONSIST.
O alta sarcina a functiei IMPLY este de a monitoriza variabilele
care necesita justificare; aceasta se realizeaza prin intermediul variabilei
DEJUSTIFICAT. DEJUSTIFICAT(t)= adevarat daca linia l este normala
si valoarea sa în testul t trebuie sa fie verificata. Linia l nu poate fi iesirea
unui invertor sau o ramura fanout deoarece în aceste cazuri valorile lor
sunt imediat justificate prin implicatii; astfel l trebuie sa fie iesirea unei
porti.
O linie normala cu valori curente nejustificate se spune ca este activa.
Liniile active sunt mentinute în setul LINIIACTIVE. O solutie este
generata când LINIIACTIVE devine zero. Daca setul LINIIACTIVE nu
este gol se selecteaza una din liniile active (l) si unul din teste (t) în care
valoarea vtl trebuie justificata. Se ia o decizie ce consta în atribuirea uneia
din intrarile portii Valoarea Logica Dominanta a portii a carei iesire este l
(VLD(l)). (Valoarea Logica dominanta a unei porti SAU este 1). Aceasta
se realizeaza pentru fiecare intrare (i) a carei valoarea nu este cunoscuta.
Atribuirea se introduce în lista si se initializeaza un nou nivel de
recursivitate. MORESOL este numarul de solutii generate de aceasta
noua activare a procedurii DEDUCEREVAL. Daca MORESOL = 0
atunci atribuirea vtl=VLD(l) a condus numai la inconsistente si în acest
caz este introdusa în lista atribuirea alternativa împreuna cu noul nod de
decizie. În principiu selectia liniei l si a testului t este arbitrara. Se doreste
ca algoritmul sa proceseze valorile care pot fi justificate într-un numar cât
mai mic de cai alternative.

procedure DEDUCEREVAL ()
146 Fiabilitate si Diagnoza

NRSOL = 0; IMPLY (CONSIST)


daca(CONSIST)
daca (LINIIACTIVE!=0)
fie l = una din (LINIIACTIVE);
fie t = testul în care valoarea liniei trebuie justificata
DEJUSTIFICAT (t,l) =0;
fie i una din intrarile portii
daca (vtl != u)
ADAUGA (i,t,VLD(l),I)
DEDUCEREVAL ();
daca (MORESOL = 0)
ADAUGA (i,t,VLD( l ) ,I);
altfel NRSOL = NRSOL + MORESOL;
altfel NRSOL = NRSOL + 1;

Se va prezenta în continuare arborele de decizie (Figura B_III-47)


ca un mod de prezentare a procesului recursiv. În arborele de decizie sunt
trei tipuri de noduri, nod de decizie, nod de atribuire si nod terminal
reprezentate prin cerc, dreptunghi si respectiv patrat.

M;t3

L=1 L=0,K=1

X M;t2

L=1 K=2
Diagnoza 147

1 2

Figura B_III-47 Arbore de decizie

Continutul unui nod de decizie defineste testul si linia selectata. O


ramificatie apare doar la nodurile de decizie si fiecare ramura conduce la
un nod de atribuire, al carui continut ilustreaza decizia luata adica noua
valoare atribuita uneia din intrarile portii a carei iesire este l. Un nod de
atribuire poate fi urmat de un alt nod de decizie sau de un nod terminal.
Un nod terminal contine fie simbolul x pentru a semnaliza detectia unei
inconsistente sau un numar întreg pentru a indica a câta solutie a fost
generata. Când o unica solutie este generata arborele de decizie
degenereaza la un singur nod terminal.
Exemplul4. Presupunem ca la iesirea circuitului s-a obtinut
raspunsul R*=01110. Implicatiile generate de prima activare a procedurii
IMPLY sunt ilustrate în figura B_III-48(a).

A B C D E F G H I J K L M
t1 0 0 1 0 0 0
t2 1 1 1
t3 1 1 1
t4 1 1 1 1 0 1
t5 0 0 0 0 0
(a)
A B C
D E F G H I J K L M
t1 0 1 01 1 1 1 0 1 0 0 0
t2 1 1 10 0 0 1 1 1
t3 1 1 11 1 1 1 0 1 1
t4 1 1 11 1 1 1 0 1 1 0 1
t5 0 1 01 1 1 1 0 1 0 0 0
(b)
A B C D E F G H I J K L M
t1 0 0 1 0 0 0
t2 1 1 1 1 1
t3 1 1 1 1 0 1
t4 1 1 1 1 0 1
t5 0 0 0 0 0
148 Fiabilitate si Diagnoza

(c)
A B C D E F G H I J K L M
Y1 n 1 n n 1 n 1 n n 1 n n n
Y2 n x x n 1 x 1 x x x n 0 n
(d)
Figura B_III-48.(a) Valori deduse înaintea primului punct de decizie.
(b),(c) Cele doua solutii (d) Diagnoza defectelor

Se observa ca valorile lui M în testele t2 si t3 nu sunt justificate


si deci M este singura linie activa. Algoritmul selecteaza M;t3 ca primul
nod de decizie. Aceasta decizie atribuie valoarea logica dominanta a lui
M(1) liniei L în testul t3. Activarea procedurii IMPLY gaseste în lista
atribuirea (L,3,1,I) si procesul de implicatii începe din situatia prezentata
în figura B_III-48(a). Noile implicatiile generate de primul punct de
decizie conduc la o inconsistenta; algoritmul revine la ultimul punct de
decizie si restabileste starea listei la ceea anterioara punctului de decizie
incorect . În acest moment MORESOL=0 si decizia incorecta este
inversata; motivul este dat de faptul ca atunci când a fost procesata
valoarea L=1 K a fost lasat nespecificat si inconsistenta reflecta faptul ca
L nu poate fi 1 independent de valoarea lui K. Se introduc în lista
atribuirile(L,3,0,I) si (K,3,1,I). Dupa ce sunt procesate noile implicatii
apare necesara luarea unei noi decizii. Acum avem doar o singura linie
activa si o singura valoare nejustificata în testul t2. Cele doua decizii L=1
si K=1 conduc la doua solutii prezentate in figura B_III-48.
Folosirea strategiei de revenire garanteaza ca toate solutiile sunt
generate. Urmarirea conditiilor ce determina aparitia valorilor fortate
conditionate este realizata prin intermediul mecanismului de revenire. La
fiecare nivel de recursivitate valoarea tuturor variabilelor modificate în
timpul executiei functiei DEDUCEREVAL sunt salvate si restabilite în
cazul revenirii. Astfel daca o valoare este dedusa la nivelul i, si aceasta
valoare este conditia unei valori fortate conditionate, atât valoarea dedusa
cât si valoarea fortata vor disparea când algoritmul se reîntoarce la
nivelul i-1 asigurându-se astfel ca valorile fortate conditionate sunt luate
în calcul doar când conditiile generatoare sunt adevarate. Toate valorile
fortate conditionate existente la un moment dat pot fi procesate împreuna.
Diagnoza 149

2.3.4.4 Complexitatea Algoritmului de Deductie

În general daca mai multe valori sunt determinate prin implicatii,


mai putine valori trebuie sa fie justificate prin decizii si deci mai putine
noduri de decizie sunt necesare. Numarul de implicatii depinde de
restrictiile care trebuie satisfacute de valorile interne. Aceste restrictii
sunt impuse de testul aplicat T si de structura circuitului. Cele mai
importante restrictii sunt introduse de valorile fortate si de valorile fortate
conditionate. Valorile fortate tind sa dispara cu numarul de niveluri
logice astfel ca circuitele cu mai putine niveluri logice sunt mai usor de
procesat. Un test poate fi proiectat sa genereze un numar maxim de valori
fortate (de exemplu valoarea 0 la fiecare intrare a unei porti SI-NU).
Valorile fortate conditionate sunt induse pe ramurile fanout. Astfel
valorile într-un circuit cu ramuri fanout au conditii mult mai restrictive
decât într-un circuit lipsit de ramuri fanout (fanout free circuit). Marimea
testului aplicat T influenteaza de asemenea cantitatea de calcule necesare;
o solutie optimala apare în cazul unui test minimal de localizare pentru
defecte multiple.
De asemenea ordinul de marime al calculelor depinde de situatia
de defect existenta în N* care determina raspunsul R*.

2.3.5 Diagnoza defectelor

Starea unei linii se reprezinta fie prin simbolurile 0,1 sau n pentru
a indica situatia de defect blocat-la 0,1 sau situatia de linie normala.
Notam starea unei linii cu sl. O situatie de defect defineste stare tuturor
liniilor din circuitul N printr-un vector F= [ sl ]. Simbolurile de 0 si 1 în F
definesc defecte corespunzatoare. Fie NF reteaua obtinuta din N în
prezenta situatiei de defect F. Daca fiecare element din F este n atunci NF
reprezinta realizarea fara defecte a lui N; ne vom referi în acest caz la
situatia lipsita de defect si o vom nota cu ϕ. Fie ZF functia booleana a lui
NF. Raspunsul retelei NF la testul T se noteaza cu ZF(T). Doua situatii de
defect F1 si F2 se spune ca sunt echivalente sub testul T daca ZF1(T) =
ZF2(T) . Din experimentul definit de testul T si raspunsul R* putem
identifica o situatie actuala de defect în reteaua N* doar în cadrul unei
clase de situatii de defect echivalente sub testul T, si anume { F :
ZF(T)=R*} . Scopul nostru nu este de a enumera toti membrii acestei
150 Fiabilitate si Diagnoza

clase, ci de a gasi doar câteva situatii reprezentative pentru aceasta clasa.


Din fiecare solutie generata de Algoritmul de Deductie ca urmare a
procesarii raspunsului R* deriva o familie de situatii reprezentative,
generându-se un vector Y= [yl], unde yl ∈ {0,1,n,x}; yl=x înseamna ca
starea liniei l este necunoscuta. Cel mai simplu mod de a construi
vectorul Y este urmatorul : 1) yl=n daca atât valoarea 1 cât si 0 au fost
obtinute pentru linia l , 2) yl=0(1) daca a fost obtinuta doar valoarea 0(1)
,3) yl=x daca nu a fost obtinuta nici o valoare pentru l. S-a demonstrat ca
orice situatie de defect F obtinuta din Y înlocuind simbolul x cu 1 sau 0
satisface relatia ZF(T)=R*. Vectorii Y pentru exemplele 2 si 4 sunt
prezentati în figurile 5(c) si 8(d). La exemplul 2 se pot trage urmatoarele
concluzii : 1) liniile A,B,C,D,F,G,K si M sunt linii normale ( se observa
ca ele formeaza cai complete), 2) liniile C si L au fost identificate ca
defecte, si 3) starea liniilor E,H,I si J este necunoscuta. Se observa ca
defectul liniei C blocata la 1 este un defect real sub reteaua N* (din
proprietatea P3). Nu se poate determina situatia reala de defect a liniilor
în subreteaua formata din liniile E,H,I,J si L. În exemplul 4 liniile A,D,K
si M sunt linii identificate ca normale. Liniile C,F,I,H si L sunt
identificate ca normale doar referitor la prima solutie, care
de asemenea defineste liniile B,G si J ca blocate la 1. Faptul ca linia F
este identificata ca normala si ramura sa fanout G apare ca blocata indica
o posibila întrerupere între G si F. A doua solutie defineste liniile G si L
ca defecte. Este posibila o analiza si mai elaborata folosind simbolurile 0
si 1 pentru a indica faptul ca linia nu este blocata la 0 sau la 1. De
exemplu în prima solutie putem avea sG= 0 ceea ce înseamna ca linia G
poate fi blocata la 1 sau poate fi normala.
În cadrul exemplului 4 se observa ca în ambele solutii exista linii
pentru care nu s-au putut face nici o deductie. Aceasta deoarece nu putem
deduce valori ale unei linii interne daca nu avem certitudinea existentei
unei cai normale între acea linie si o iesire primara.
Folosirea strategiei de revenire garanteaza ca toate solutiile
posibile sunt generate. De aceea avem certitudinea ca una dintre solutiile
generate consista în întregime din valori reale. Din pacate nu este posibila
identificarea acestei linii, exceptând cazul unei singure solutii. Totusi se
poate identifica un subset al valorilor reale, si anume acele valori comune
tuturor solutiilor. Toate valorile determinate înaintea primului punct de
decizie sunt valori reale.
Diagnoza 151

Din pacate nu toate valorile reale pot fi deduse din primele implicatii.
O alta observatie importanta este ca anumite linii sunt identificate
ca normale doar referitor la prima solutie. Aceasta arata ca o linie
identificata ca normala într-o solutie nu înseamna neaparat ca ea este
normala în circuit. Liniile identificate ca normale în ambele solutii sunt
linii normale în circuit. Se observa de asemenea ca liniile normale
formeaza întotdeauna cai complete în circuit, unde o cale completa
defineste o legatura între o intrare si o iesire primara.
În cazul în care procesul de deductii nu reuseste sa genereze nici
un set consistent de valori reale înseamna ca nu exista nici un defect de
tip blocat-la care inserat în circuit poate genera raspunsul procesat.
Raspunsul poate fi generat în acest caz de un defect functional (de
exemplu o poarta invertoare functioneaza ca o poarta de transmisie). Este
important de notat ca procesul de deductie are capabilitatea de a
identifica existenta unui defect de tip neblocat.

2.3.6 Identificarea defectelor nedetectate si/sau


redundante

O aplicatie importanta a Algoritmului de Deductie o reprezinta


procesarea raspunsului asteptat R. Cum R = Zϕ (T) setul { F:ZF(T) =R }
include situatia lipsita de defect ϕ. Situatia de defect echivalenta cu ϕ sub
testul T defineste defecte nedetectate de testul T, inclusiv defectele
redundante.
Exemplul 5. Pentru circuitul din figura B_III-49 unde testul T
consta din toate cele opt combinatiile posibile si raspunsul procesat este
R*=R, Algoritmul de Deductie genereaza trei solutii : una o reprezinta
valorile asteptate si celelalte doua ( lc înseamna ca linia l este blocata la c)
indica existenta unor defecte multiple redundante si anume { D1,J1 } si {
G1,K1}. Algoritmul identifica de asemenea si potentialele defecte E1 si
H1. Calculul acestor rezultate necesita cinci noduri de decizie.
152 Fiabilitate si Diagnoza

Figura B_III-49. Identificarea defectelor multiple


redundante

Când T este un test complet pentru defecte singulare se pot


identifica defecte nedetectate. Abordarile anterioare ale acestei probleme
se bazau pe tehnici algebrice si analiza relatiilor de mascare între defecte.
Exemplu 6. Pentru circuitul din si testul din figura B_III-50
Algoritmul de deductie proceseaza raspunsul asteptat R*=R si genereaza
doua solutii : una o reprezinta situatia în care toate liniile sunt normale si
a doua indica un defect multiplu { A1,B1,D1,F0,G0 }.
Pentru acest exemplu a fost necesar un singur nod de decizie iar
efortul de calcul este egal cu cel necesar simularii de trei ori a circuitului.
Metodele bazate pe analiza explicita a relatiilor de mascare iau în calcul
doar mascarea unui singur defect, si în acest caz un defect multiplu
poate fi etichetat ca nedetectat.
Diagnoza 153

(a)

A B C D E F G
t1 0 0 1 0 1 1 1
t2 1 1 1 1 1 0 0
t3 0 1 1 1 0 0 1
t4 1 0 1 1 0 0 1
t5 1 1 0 1 1 0 1
t6 1 1 0 0 1 1 0
t7 1 1 0 1 0 1 0

(b)

Figura B_III-50. Identificarea unui defect multiplu nedetectat de un test


complet pentru defecte singulare.