Testy ukladow logicznych, Studia infa, Technika Cyfrowa TC, Nowy folder
[ Pobierz całość w formacie PDF ]
Testowanie układów logicznych
Definicje
Wyrażenia
f
0
i
f
1
Dla dowolnej funkcji boolowskej
f
x
1,
x
2,
x
3,
,x
n
definiujemy dwa wyrażenia:
f
0
=
f
0,
x
2,
x
3,
,x
n
i
f
1
=
f
1,
x
2,
x
3,
,x
n
Gdy jest potrzeba wskazania konkretnej zmiennej ustalonej
x
i
, można to zapisać
f
x
i
=0
bądź
f
x
i
=1
. Gdy nie wskazuje się zmiennej, domyślnie podstawia się pierwszą z listy argumentów
funkcji, jak w definicji powyżej.
Pochodna boolowska
Pochodną boolowską funkcji
f
x
1,
x
2,
x
3,
,x
n
względem zmiennej
x
i
definiuje się następująco:
∂
f
x
1,
x
2,
x
3,
,x
n
∂
x
i
=
f
x
i
=0
⊕
f
x
i
=1
∂
f
x
1,
x
2,
x
3,
,x
n
∂
x
i
=
f
x
1
,
,x
i
−1
,
0
,x
i
1
,
,x
n
⊕
f
x
1
,
,x
i
−1
,
1
,x
i
1
,
,x
n
Właściwości pochodnej boolowskiej są zbliżone do właściwości pochodnych cząstkowych:
●
Jeżeli
∂
f
x
1,
x
2,
x
3,
,x
n
∂
x
i
=0
dla
ustalonych
wartości
x
1
do
x
i-1
i
x
i+1
do
x
n
, to w tej
sytuacji wartość funkcji
f
nie zależy od
x
i
.
●
Jeżeli
∂
f
x
1,
x
2,
x
3,
,x
n
∂
x
i
=1
dla
ustalonych
wartości
x
1
do
x
i-1
i
x
i+1
do
x
n
, to w tej
sytuacji wartość funkcji
f
zależy od
x
i
i realizuje jedną z 2 funkcji:
x
i
lub
x
i
.
Podstawowe pochodne i ich właściwości
∂
x
1
x
2
x
n
∂
x
1
=
x
2
x
3
x
n
∂
x
1
∨
x
2
∨
x
n
∂
x
1
=
x
2
x
3
x
n
∂
x
1
⊕
x
2
⊕
x
n
∂
x
1
=1
∂
x
∂
x
=
∂
x
∂
x
=1
Pochodna negacji = pochodna względem negacji = pochodna
∂
f
x
1
,x
2
,
,x
n
∂
x
1
=
∂
f
x
1
,x
2
,
,x
n
∂
x
1
=
∂
f
x
1
,x
2
,
,x
n
∂
x
1
Pochodna funkcji złożonej
∂
f
g
x
1
,x
2
,
,x
n
∂
x
1
=
∂
f
g
x
1
,x
2
,
,x
n
∂
g
x
1
,x
2
,
,x
n
∧
∂
g
x
1
,x
2
,
,x
n
∂
x
1
∂
g
∧
∂
g
x
1
,x
2
,
,x
n
∂
x
1
Str 1 z 3
pawel@kraszewscy.net
=
∂
f
g
Testy układ
ó
w logicznych
Testy tworzy się dla
konkretnej realizacji sprzętowej
. Jeżeli dwa układy logiczne realizują tą samą
funkcję, ale są w inny sposób zaprojektowane w środku („zrealizowane”), to na ogół mają one
różne testy.
„Test” jest to zbiór pytań („wektorów testowych”) zadawanych badanemu układowi logicznemu.
Obserwując odpowiedzi układu i wiedząc, czy są one dobrze czy złe można orzec o poprawności
badanego układu, a w przypadku błędnego działania wskazać miejsce i typ błędu.
Obiekt badań
Obiektem badań jest dowolny układ logiczny mający
n
wejść i
m
wyjść. Dla testowania istotne są
trzy ograniczenia:
●
Znana jest
dokładna
struktura wewnętrzna badanego układu:
elementy z których się składa i ich wzajemne połączenia.
x1
x2
f
y1
y2
●
Wpływać na układ można
jedynie
przez „oficjalne” wejścia
x
1
do
x
n
. Nie można więc modyfikować stanu badanego systemu przez
jakiekolwiek dodatkowe wymuszenia.
●
Obserwować układ można
jedynie
przez „oficjalne” wyjścia
y
1
do
y
m
. Nie można więc monitorować żadnych wewnętrznych
sygnałów
xn
ym
Rys. 1: Przykładowy
układ logiczny
Typy błędów
Dla dowolnego sygnału
u
definiuje się cztery sytuacje:
●
sygnał funkcjonuje poprawnie
●
niezależnie od wymuszeń sygnał
u
ma stałą wartość „0”. Nazywany to „utknięciem w
zerze” (ang. „stuck at zero”) i oznaczamy
u/0
.
●
niezależnie od wymuszeń sygnał
u
ma stałą wartość „1”. Nazywany to „utknięciem w
jedynce” (ang. „stuck at one”) i oznaczamy
u/1
.
●
sygnał przyjmuje przeciwną wartość w stosunku do oczekiwanej. Nazywamy to „błędną
inwersją” (ang. „false inversion”). Jest to niezwykle rzadki przypadek.
Do dalszych analiz przyjmiemy założenie, że w badanym układzie
co najwyżej jeden
sygnał ma błąd typu
lub
u/1
.
Konstrukcja testów
Wektory testowe sprawdzające konkretne błędy są
rozwiązaniami tzw. równania testu. Rozważmy następujący
abstrakcyjny układ logiczny:
Badamy sygnał
u
znajdujący się w dowolnym miejscu układu
logicznego. Możemy wpływać na wartość tego sygnału za pomocą
funkcji
U
modyfikując wartość wejść
x
1
do
x
n
. Możemy też
obserwować ten sygnał poprzez wyjścia
y
1
do
y
m
powiązane z nim
funkcjami
Y
1
do
Y
n
.
x1
x2
xn
U
u
Y1
Y2
Y3
y1
y2
y3
Ym
ym
Rys. 2: Układ abstrakcyjny
Str 2 z 3
pawel@kraszewscy.net
u/0
Znając równania na funkcję
U
oraz na funkcje
Y
1
do
Y
n
skonstruować możemy odpowiednie
równania testów na
u/0
i
u/1
:
u
0
U
x
1,
x
2,
,x
n
∧
∂
Y
1
∂
u
∨
∂
Y
2
∂
u
∨
∂
Y
m
∂
u
=1
∂
u
=1
Rozwiązaniami każdego z tych równań może być zero, jeden lub więcej wektorów testowych.
Brak wektorów testowych dla jakiegoś błędu może oznaczać błąd projektowy układu, gdyż
oznacza to, że albo wyjście układu nie zależy od badanego węzła abo stan węzła nie zależy od
wejścia układu.
u
1
U
x
1,
x
2,
,x
n
∧
∂
Y
1
∂
u
∨
∂
Y
2
∂
u
∨
∂
Y
m
Jeżeli różne błędy mają dokładnie takie same zbiory wektorów testowych, to nie
można ich odróżnić. Nazywa się je
błędami nierozróżnialnymi
i traktuje jak jeden błąd.
Przykład konstrukcji wektor
ó
w testowych
Rozważmy układ jak na rys. 3. Układ ma 3 wejścia
a
,
b
i
c
oraz jedno
wyjście
y
. Występują w nim 4 węzły podatne na uszkodzenia, zatem
skonstruować musimy 8 testów (cztery na „stałe 0” i cztery na „stałe
1”).
W pierwszej kolejności wyznaczyć musimy równania wszystkich
węzłów nie będących wejściami:
b
a
y
c
Rys. 3: Układ do badania
∂
c
=
a
∧
b
Mając wszystkie równania i wszystkie pochodne można wyznaczyć wszystkie równania testów:
y
∂
y
=1
∂
y
∂
a
=
b
∧
c
∂
y
∂
b
=
a
∧
c
∂
y
0
y
∧
∂
y
∂
y
=1
y
=1
abc
=1
y
1
y
∧
∂
y
∂
y
=1
y
=1=
abc
=1
a
∨
b
∨
c
=1
a
0
a
∧
∂
y
∂
a
=1
abc
=1
a
1
a
∧
∂
y
∂
a
=1
abc
=1
b
0
b
∧
∂
y
∂
b
=1
abc
=1
b
1
b
∧
∂
y
∂
b
=1
abc
=1
c
0
c
∧
∂
y
∂
c
=1
abc
=1
c
1
c
∧
∂
y
∂
c
=1
abc
=1
Rozwiązania równań testów:
Błąd
y/0
y/1
a/0 a/1 b/0 b/1 c/0 c/1
Wektory
testowe
[111] [000] [001] [010] [011]
[100] [101] [110]
[111] [011] [111] [101] [111] [110]
Jak widać z powyższej tabeli – wszystkie błędy typu „stałe 0” są nierozróżnialne (wektor testowy
to [111]), natomiast wszystkie błędy typu „stałe 1” są rozróżnialne (mają inne zbiory wektorów
testowych).
Str 3 z 3
pawel@kraszewscy.net
y
=
a
∧
b
∧
c
Następnie należy wyznaczyć pochodne wszystkich wyjść względem wszystkich badanych węzłów:
∂
y
[ Pobierz całość w formacie PDF ]