Documente Academic
Documente Profesional
Documente Cultură
2014 Curs 4 TT
2014 Curs 4 TT
dxi
P1 :
dF ( X ) dF ( X )
dxi
dxi
P2 :
dF ( X ) dF ( X )
dxi
d xi
P3 :
dF ( X )
0
dxi
P4 :
dF ( X )
1
dxi
P5 :
d [ F ( X )G( X )]
dG( X )
dF ( X ) dF ( X ) dG( X )
F(X )
G( X )
dxi
dxi
dx
dxi
dxi
P6 :
d [ F ( X ) G( X )]
dG( X )
dF ( X ) dF ( X ) dG( X )
F(X )
G( X )
dxi
dxi
dx
dxi
dxi
dF ( X )
xi
1
dxi
dF ( X )
xi
1
dxi
6
La ieirea Z se realizeaz
funcia:
Z ABC B D ABD
BD
dA
dA
dZ
ABD
dA
PP0 la intrarea A se
testeaz cu:
dZ
dA
ABD
de test sunt:
ABCD=10x1
BC D
dE
dE
PP1 la intrarea A se
testeaz cu:
E[ BC D] AB[ BC D] ABD
Vectorii
de test sunt:
ABCD=11x1
8
10
D
X
0
H
1
1
D
1
H
0
11
12
H
h
h
I
1
h
13
A
0
1
I
h
h
L
1
h
14
B
0
0
C
0
X
D
X
0
E
X
X
F
X
X
B
0
C
1
D
1
E
X
F
X
15
16
E
0C
0C
1C
1C
F
0C
0C
0C
1C
G
0C
0C
0C
H
0C
0C
0C
1C
1C
Z
0C
0C
0C
1C
1C
1C
S se determine pentru
circuitul alturat vectorii
de test care pun n
evidn defectul PP0 n
G.
S se determine pentru
circuitul alturat vectorii
de test care pun n
evidn defectul PP0 n I.
Exist vectori de test care
pun n eviden ambele
defecte?
20
A
0
&
>=1
G1
G4
>=1
0
&
&
0
0
G2
0
0
E
F
G3
G6
1
G5
Pentru circuitul
alturat s se
determine setul
vectorilor de test care
disting defectul PP0
n A de defectul PP0
n C.
G1
&
&
0
G3
G2
0
&
0
&
0
Z2
0
G3
21
Z1
0
G5
v / vf
AND
0 1 D
D x
OR 0
1 D D x
0/0
0 0
1 D D x
1/1
0 1
1 1
1/0
0 D D 0
D 1 D 1 x
D 1 1 D x
0/1
D
x
0 D 0 D
0 x
1 x
1 1
x x
22
23
24
25
Justify (l,val)
Begin
seteaz l la val
If l este o PI then Return
c=valoare de control pentru l
i=inversiunea lui l
inval=val i
if inval c
then for every intrare j a lui l
Justify (j,inval)
else
Begin
selecteaz o intrare j a lui l
Justify (j,inval)
end
end
26
27
Propagate (l,err)
Begin
seteaz l la err
if l este o PO then Return
k = fanout-ul lui l
c=valoarea de control a lui k
i=inversiunea lui k
for every intrare j a lui k alta dect l
Justify j, c
Propagate k , err i
End
28
30
Solve()
Begin
if Imply_and_check()=FAILURE then return FAILURE
if ((eroare la PO) and toate liniile sunt justificate)
then return SUCCESS
if (nici o eroare nu poate fi propagat la o PO)
then return FAILURE
selecteaz o problem nerezolvat
Repeat
Begin
selecteaz o maier nencercat de rezolvare a ei
if Solve()=SUCCESS then return SUCCESS
end
until s-au ncercat toate modalitile de rezolvare a ei
return FAILURE
end
31
Problema de la care se pleac n generarea unui test pentru defectul l s-a-v este de a
justifica valoarea
a liniei l i de a propaga eroarea de la l la o PO (La baza
algoritmului este tehnica Divide et Impera)
ncercarea de rezolvarev a unei probleme poate duce la SUCCESS sau FAILURE. La
nceput algoritmul manevreaz toate problemele ce au soluii unice, deci care pot fi
rezolvate prin procesul de implicare. Acestea sunt procesate de procedura
Imply_and_check (care verific i inconsistena).
FAILURE dac
1. apare o inconsisten
2. ntr-o stare consistent nu se poate propaga eroarea spre o PO
SUCCESS dac se atinge scopul propus, adic dac s-a propagat eroarea la o
PO i s-au rezolvat toate problemele de justificare a liniilor.
Dac Solve() nu poate determina imediat una din aceste valori, atunci selecteaz una
din problemele curente nerezolvate (o problem de justificare a liniilor sau de
propagare a erorii). Aceast selecie, precum i selecia unei modaliti de rezolvare
a ei, este n principiu arbitrar (din punctul de vedere al obinerii unei soluii
pentru un anumit defect detectabil), cu toate c acest proces de selecie afecteaz
eficiena algoritmului, precum i vectorul de test ce se genereaz.
32
33
34
35
Este format din toate porile a cror ieire are valoarea x, dar care au
una sau mai multe valori de intrare eronate (D sau D/).
Propagarea erorii const n selectarea unei pori din frontiera D i n
asignarea unor valori pentru intrrile nespecificate astfel nct ieirea
porii s devin de valoare D sau D/ proces numit D-drive.
36
37
38
39
40
n a in t e
D up
&
1
1
x
1
&
0
1
x
x
&
0 F r o n t ie r a J = ( . . . )
x
x
x
x
&
&
&
1
&
(b )
F r o n t ie r a J = ( . . . a )
1
&
x
(a)
(c)
(d )
41
n a in t e
D up
0
x
&
0
x
&
1
1
&
1
1
&
0
x
&
F r o n t ie r a J = ( . . . )
0
x
&
1
x
&
F r o n t ie r a J = ( . . . a )
1
0
&
D
1
&
F r o n t ie r a D = ( . . . a )
D
1
&
D
0
&
F r o n t ie r a D = ( . . . a )
D
0
&
a
a
a
a
(a)
(b )
F r o n t ie r a J = ( . . . )
(c)
F r o n t ie r a J = ( . . . )
(d )
F r o n t ie r a D = ( . . . )
(e)
F r o n t ie r a D = ( . . . )
( f)
42
n a in t e
D up
D
x
&
D
1
&
D
D
&
F r o n t ie r a D = ( . . . )
F r o n t ie r a D = ( . . . a )
D
1
&
D
1
&
D
D
&
F r o n t ie r a D = ( . . . )
(c)
F r o n t ie r a D = ( . . . )
(d )
F r o n t ie r a D = ( . . . a )
(a)
(b )
&
F r o n t ie r a D = ( . . . a )
&
43
D-alg()
Begin
if Imply_and_check()=FAILURE then return FAILURE
if (eroarea nu este la PO) then
Begin
if Frontiera D = then return FAILURE
repeat
Begin
Selecteaz o poart G nencercat din Frontiera D
c=valoarea de control a lui G
Asigneaz c/ la fiecare intrare a lui G ce are valoarea x
if D-alg() = SUCCESS then return SUCCESS
end
until s-au ncercat toate porile din Frontiera D
return FAILURE
end
/ eroarea este propagat la o PO /
If Frontiera J = then return SUCCESS
Selecteaz o poart G din Frontiera J
c=valoarea de control a lui G
Repeat
begin
selecteaz o intrare j a lui G ce are valoarea x
Asigneaz c la j
if D-alg() = SUCCESS then return SUCCESS
Asigneaz la j / inverseaz decizia/
end
until sunt specificate toate intrrile lui G
return FAILURE
end
45