Documente Academic
Documente Profesional
Documente Cultură
V. SIMULAREA CU DEFECT
1. Introducere
evalueaza testul T
N Y
acoperirea defectelor este buna?
modifica T OK
OK
genereaza testul
pentru tinta
simulare
cu defect
descarca
defectele detectate
X
XI Z
4 3 2 1 0
pozitia defectelor
XI s-a-1
Y s-a-1
Z s-a-0
Z s-a-1
4 3 2 1 0
0 1 1 0 0 0 IZ defecte de inserat în Z
valoarea lui A
0 1 u
A1 0 1 0
A2 0 1 1
C1 = A1 ⋅ B1
C2 = A2 ⋅ B2
Operatorul de negatie, cu toate acestea, nu poate fi aplicat direct,
deoarece codul 01 va genera codul ilegal 10. O inversare B=NOT(A) este
realizata prin B1 = A2 , B2 = A1 ,adica complementam A1 si A2 si le
interschimbam. Figura B_V-6 arata un calcul simplu pentru Z = X ⋅ Y
(cu un cuvânt pe trei biti).
Valori Codificare
X 01u X1 010
X2 011
Y 011 Y1 011
Y2 011
X.Y 01u X1.Y1 010
X2.Y2 011
Z = X.Y 10u Z1 100
Z2 101
Figura B_V-6 Exemplu de operatie NAND în simularea paralela cu 3
valori
F 9 8 7 6 5 4 3 2 1 0
i 1 1 1 0 1 1 0 1 1 1 1
Li = {4 , 7}
1 0
A 1 A 0
1 Z 1 Z
B B
Figura B_V-8
else LZ = {I Ll } − { U L } U{Z j s − a − ( c ⊕i ) }
l ∈I j ∈I − C
Altfel spus, daca nici o intrare nu are valoarea c, orice efect al unui
defect la o intrare se propaga la iesire. Daca anumite intrari au valoarea c,
numai un defect ce afecteaza toate intrarile la c fara sa afecteze vreuna
la c se propaga la iesire. În ambele cazuri adaugam defectul local al
iesirii.
Diagnoza 235
01
a 01
01 00
b f
11 g j
c 11
h
11 m
11
d i
00 11
e
k
Figura B_V-9
11 01
10 y2 10 y2
R L2 , L2 R
LR
(a) (b)
La = {3, 9, 12} a 3 9 12
(a)
(b)
3
9
cuvînt
12
(c)
defecte
în circuit cuvînt
(d)
Întrucât fiecare linie α în circuitele fara si cu defecte poate lua una dintre
valorile logice 0,1 si u, doua liste Lδu si Lεu vor fi asociate cu o linie α a
carei valoare normala este v, unde {δ,ε}={0,1,u}-{v}. De exemplu, daca
v=1, atunci listele L0α si Luα sunt asociate cu linia α: L0α ( Luα ) reprezinta
setul tuturor defectelor care cauzeaza lui α valoarea 0(u). Pentru ca setul
tuturor defectelor procesate curent este egal cu setul L0α U L1α U Lαu , avem
ca Lvα = Lεα U Lδα .
0
a 1
b u
c 1 d
Figura B_V-12
Dezavantajul acestui mod este ca exista doua liste pentru fiecare linie, si
complexitatea procesarii cerute pentru propagarea defectului printr-un
element este mai mult decât dubla.
Regulile pentru setul de operatii pentru defecte stelate sunt date în tabela
din figura B_V-13; aici λ denota o intrare diferita de f sau *f.
Oricând o conditie de oscilatie cauzata de defectul f este identificata pe
linia α, f este introdus ca defect stelat în lista asociata.
Daca linia α oscileaza, atunci aceste defecte care cauzeaza oscilatia sunt
cu siguranta acele intrari în multimea ( La − La ) ∪ ( La − La ) , unde La si
La sunt vechea si noua lista de defecte. Prin schimbarea acestor intrari în
defecte stelate, oscilatia ar trebui sa înceteze si simularea poate fi
continuata .
O problema interesanta ,ramasa deschisa, este legata de continutul initial
al listelor de defect. Adesea nu se stie cum s-a ajuns la starea initiala a
circuitului, si deci nu este clar daca un defect f ar influenta initializarea
Diagnoza 243
Limitari
0
β 1 (b)
1
0
a1 1 (a)
1
0
b1 1
1
1 1
a1 0 1 a1 0 1
1 c1 1 1 c1 1
0 0
1 0
α 1 0 α 1 0
0 d1 1 0 d1 1
1 1
1 1
(a) α 0
1
(b) α 0
1
0 0
β 1 β 1
1 1
248 Fiabilitate si Diagnoza
eveniment I/O în d1
a eveniment I/O în β
0 c
1 1 e
1 1
b 0
d
1
a1 0 0
1 a1 1
0
0
α 1 1
0 c1 1
0
d1 1
0
(c) 1
1
β 0
1
1
0 f 0
1 1
f 1 1 1 f 1
1 f 1 1
1
(b)
(a)
Figura B_V-16
NV = ∅
if i se modifica în circuitul bun then
begin
seteaza i la valoarea v' în circuitul bun
for every f ∈ CLA
begin
if f ∈ L then
begin
seteaza i la vl' în circuitul f
if VAl = VA then sterge f din CLA
end
else /*nici un eveniment în circuitul f*/
if vl = v then adauga defectul recent vizibil f la NV
else if VAl = VA then sterge f din CLA
end
end
else /*nici un eveniment bun pentru i*/
for every f ∈ L
begin
seteaza i la valoarea vl' în circuitul f
if VAl = VA then sterge f din CLA
end
250 Fiabilitate si Diagnoza
f∈ CLB
- 4 5 1
3 - - 2 f∈L
f∈ NV
(b)
(a) u
u f 0
f 0 1
0
A
B
a 1
1 1
b 1 0
0
(c)
u
f u u
1 f 0
0
Figura B_V-20
252 Fiabilitate si Diagnoza
1 0 0 1
f 0 f 1 f 1 f 0
1 0 1 1
(a)
1 0 0 1
f 0 f 1 f 1 f 0
1 0 1 1
(b)
2.6.Comparatie
0
0 1 A
1
1
0
0
0 1
1 0 1
1 B 0
0
1 (a)
C
1
0
0 1 A
1
1
0
0
0 1
1 0 1
1 B 0
0
1 (b)
C
1
Figura B_V-22 Exemplu de trasare a caii critice într-un circuit fara fan-
out-uri
258 Fiabilitate si Diagnoza
B1 D
1 1
B
B2 0 F
0
1
C E
(a)
1
A 1
D
1 B1 1
B
B2 0 F
0
0
C E
(b)
Lema 2.1.Daca o iesire a unei porti este critica, atunci intrarile sale
sensibile, daca exista, sunt de asemenea critice.
Exemplul urmator ilustreaza trasarea caii critice într-un circuit fara “fan-
out-uri”.
Exemplul 2.4.Figura B_V-22(a) prezinta un circuit ,valorile sale de linie
pentru un test dat, si intrarile sensibile (marcate cu punct). Trasarea caii
critice începe prin marcarea primei iesiri ca si critica. Celelalte linii
critice sunt identificate prin aplicarea recursiva a lemei 2.1.Figura B_V-
22(b) arata caile critice cu linii îngrosate.
Este important sa se observe ca algoritmul a evitat complet zonele
marginite de B si C, pentru ca mergând înapoi de la iesire, mai întâi
determina ca B si C nu sunt critice. Prin contrast, un simulator
conventional ar propaga efectele tuturor defectelor în aceste zone (B si C)
înainte de a descoperi la poarta de iesire ca aceste defecte sunt detectate.
Pentru circuitele fara “fan-out-uri”, trasarea caii critice poate fi executata
de o procedura simpla de traversare în adâncime a unui arbore, care
marcheaza drept critice si urmareste recursiv pe rând fiecare intrare
sensibila a unei porti cu iesirea critica. Exemplul urmator ilustreaza
problema care apare în extinderea trasarii caii critice la cazul general al
circuitelor cu “fan-out-uri” reconvergente.
Exemplul 2.5.Pentru circuitul si testul dat în figura B_V-23(a) începem
de la iesirea primara, si folosind în mod repetat lema 2.1, identificam F,
D, A si B1 drept critice. Nu putem, cu toate acestea, determina daca
tulpina B1 este critica fara o analiza aditionala. Într-adevar, efectele
defectului Bs-a-0 se propaga pe doua cai cu paritati de inversiune diferite,
asa încât se anuleaza una pe cealalta când reconverg la poarta F.
Fenomenul, numit automascare, nu apare pentru testul prezentat în
figura B_V-23(b), pentru ca propagarea efectelor de-a lungul caii
începând de la B2 se opreste la poarta E. Aici B este critica.
Deci principala problema este sa determinam daca o tulpina x este
critica, data de existenta unor ramuri “fan-out” ale tulpinii, care sunt
critice. Fie v valoarea lui x în testul analizat t. O solutie evidenta este sa
simulam implicit defectul x s −a −v , si daca t detecteaza acest defect, atunci
marcheaza x drept critica. Trasarea caii critice rezolva aceasta problema
printr-un alt mod de analiza, descris în cele ce urmeaza.
Definitia 2.3.Fie t un test care activeaza defectul f într-un circuit
combinational cu o singura iesire. Fie y o linie cu nivelul Iy, sensibila la f
Diagnoza 261
prin t. Daca vreo cale sensibila la f trece prin y sau nu atinge vreo linie cu
nivel mai mare de Iy, atunci y este numita linie de captura a lui f în testul
t.
O linie de captura, daca exista, este propice pentru propagarea efectelor,
pentru ca este comuna tuturor cailor în care efectele lui f se pot propaga
spre iesirea primara în testul t. Daca t detecteaza f, atunci exista cel putin
o linie de captura a lui f, aceasta fiind însasi iesirea primara. Daca efectul
lui f se propaga pe o singura cale, atunci fiecare linie de pe aceasta cale
este o linie de captura a lui f.
linii de captura
1
defect 1
n 1
b 1 e 0
1 1
a 1 j
q
1 1
0 p
1
calea sensibila
y = v nu poate atinge vreo linie al carei nivel este mai mare decât cel al
lui y.
1.Sa presupunem ca toate liniile de captura a lui f în t sunt critice. De
aici, eroarea y = v cauzata de y s −a −v se propaga spre iesirea primara.
Atunci acelasi lucru este adevarat pentru defectul y = v cauzat de f. Deci
testul t detecteaza defectul f.
2.Sa presupunem ca testul t detecteaza defectul f. De aici, eroarea y = v
cauzata de f în y se propaga spre iesirea primara. Atunci aceasta este
adevarat pentru eroarea y = v cauzata de y s −a −v . Deci t detecteaza
y s −a −v * si deci toate liniile de captura a lui f sunt critice în t.
CI
CI1
X2
X X1 CI2 T U S
I Q T1
I1 N
T2
I2
Y R N1 N2
Y1
Y2 T3 C0
I3
(a)
CI
CI1
X2
X1 I CI2 T U S
Q T1
X I1 N
T2
Y I2 V
R N1
Y1
Y2 N2
(b)
defectului (sau una apropiata tulpinii). Atunci tulpina este critica daca
linia de captura este critica.
Întrucât liniile de captura sunt definite pentru un circuit cu o singura
iesire, partitionam un circuit cu mai multe iesiri primare în circuite cu o
singura iesire numite conuri. Un con contine toata logica ce alimenteaza
o iesire primara. Pentru a profita de simplitatea trasarii caii critice în
circuitele fara “fan-out-uri”, în interiorul fiecarui con identificam
“regiunile fara fan-out-uri”. Figura B_V-25 arata aceste structuri pentru
un circuit cu doua iesiri. Intrarile unei regiuni fara fan-out-uri sunt puncte
de verificare ale circuitului, adica ramuri “fan-out” si/sau iesiri primare.
Iesirea unei regiuni fara fan-out-uri este o tulpina sau o iesire primara.
Construirea conurilor si a regiunilor fara fan-out-uri este un pas de
preprocesare al algoritmului. Figura B_V-26 schiteaza algoritmul trasarii
caii critice pentru evaluarea unui test dat. Presupunem ca simularea fara
defect, incluzând marcarea intrarilor portilor sensibile, a fost efectuata.
Algoritmul proceseaza fiecare con, începând cu iesirea sa primara, si
alterneaza între doua operatii principale: trasarea caii critice într-o
regiune fara fan-out-uri ,reprezentata de procedura Extend ,si verificarea
daca o tulpina este critica, efectuata de procedura Critical. Odata ce o
tulpina j este determinata drept critica, trasarea caii critice continua de la
j.
for every iesire primara z
begin
ramuri_de_verificat = ∅
Extend (z)
while ( ramuri_de_verificat ≠ ∅)
begin
j = ramura de cel mai înalt nivel în ramuri_de_verificat
îndeparteaza j din ramuri_de_verificat
if Critical (j) then Extend (j)
end
end
Extend (i)
begin
264 Fiabilitate si Diagnoza
Critical(j)
begin
Frontiera = {fan-out-urile lui j}
repeat
begin
i = poarta de cel mai jos nivel din Frontiera
îndeparteaza i din Frontiera
if (Frontiera ≠ ∅) then begin
if Propagates (i) then adauga fan-out-urile lui i la Frontiera
end
else begin
if Propagates (i) and i este critica then return TRUE
return FALSE
end
end
end
1 1 0 0 0 0
1 1 0
1 1 1
X, Y CI U
CI CI X, Y
Y X R
X X Y
∅ Y Q
Y Y ∅
CO CO, L3 L
∅ L -
Figura B_V-30 Executia trasarii caii critice în circuitul din figura 2.25
pentru testul 1 1 1
Exemplul 2.6: tabelul din figura B_V-30 prezinta executia trasarii caii
critice în circuitul din figura B_V-25(a) pentru testul 1 1 1. Figura B_V-
31 arata caile critice obtinute. De observat ca tulpina L este critica în
conul S, dar se automascheaza în conul CO.
CI
CI1
X2
X1 I CI2 T U S
Q N T1
X I1
T2
Y I2 V
R N1
Y1
Y2 N2
4. Esantionarea defectelor
µK
µF = =F
m
si varianta
σ k2 1 m
σ l = 2 = F (1 − F ) 1 −
2
m m M
Cu un nivel de încredere de 99,7%, putem pretinde ca acoperirea
estimata a defectului este în intervalul [F-3σf, F+3σf]. De aceea, este
aproape sigur ca estimatia erorii este marginita de 3σf. Eroarea maxima
emax este data de:
m 1
emax = 3 F (1 − F ) 1 −
M m
m=500
0.07
Eroarea 0.06
maxima emax m=1000
0.05
0.04 m=2000
0.03
0.02
0.01
nr.sensibilitate
S(I) =
n
l1
l l2
lk
Figura 2.34
Acum fie I o tulpina cu k ramuri subordonate I1, I2, …,Ik (vezi figura
B_V-34). Presupunem ca am calculat toate valorile O(I1) si acum dorim
sa determinam O( I ). Fie Li(L) notatia pentru evenimentul a carui
probabilitate este O(li)(O(l)), adica propagarea efectelor de la li(l) la o
iesire primara. Vom face doua presupuneri: 1.Evenimentele {Li} sunt
independente si 2.Evenimentul L apare daca si numai daca apare orice
subset al lui {Li}.Atunci:
K
L = U Li
i =1
Din cauza fan-out-urilor reconvergente, L poate aparea chiar si atunci
când nici unul din evenimentele {Li} nu se produce, si aparitia unui
subset al lui {Li} nu garanteaza ca L va avea loc. STAFAN trateaza
K
probabilitatea lui UL
i =1
i ca o limita superioara a valorii lui O( I ).
6.Concluzii
Diagnoza 273