w13 –testowanie układów cyfrowych

6
05.12.2017 1 W13 – Testowanie układów cyfrowych Henryk Maciejewski Jacek Jarnicki Jarosław Sugier www.zsk.iiar.pwr.edu.pl 1. Modele błędów w układach cyfrowych 2. Generowanie wektorów testowych dla układów kombinacyjnych Metody tablicowa Metoda różnic boolowskich Metoda pobudzenia ścieżek B. Wilkinson, Układy cyfrowe, WKŁ. Uszkodzenia i modele błędów

Upload: others

Post on 27-Nov-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: W13 –Testowanie układów cyfrowych

05.12.2017

1

W13 – Testowanie układów cyfrowych

Henryk Maciejewski

Jacek Jarnicki

Jarosław Sugier

www.zsk.iiar.pwr.edu.pl

1. Modele błędów w układach cyfrowych

2. Generowanie wektorów testowych dla układów kombinacyjnych• Metody tablicowa

• Metoda różnic boolowskich

• Metoda pobudzenia ścieżek

B. Wilkinson, Układy cyfrowe, WKŁ.

Uszkodzenia i modele błędów

Page 2: W13 –Testowanie układów cyfrowych

05.12.2017

2

Rozważamy uszkodzenia prowadzące do błędów logicznych układu.

Zakładamy model: pojedynczy błąd „sklejenia”:

stuck-at-0, stuct-at-1

Lokalizacje błędów: każdy sygnał wejściowy, wewnętrzny, wyjściowy

Modele błędów w układach cyfrowych

Rozważamy układ: 𝑧 = 𝐹 𝑥1, 𝑥2, 𝑥3, 𝑥4 = (𝑥1 + 𝑥2𝑥3)(𝑥2𝑥3 + 𝑥4)

uszkodzenie = s-a-0 na wejściu x4

z = wartość funkcji bez uszkodzenia

z = wartość funkcji z uszkodzeniem

Generowanie wektorów testowych -metoda tablicowa

Page 3: W13 –Testowanie układów cyfrowych

05.12.2017

3

Rozważamy układ: 𝑧 = 𝐹 𝑥1, 𝑥2, 𝑥3, 𝑥4 = (𝑥1 + 𝑥2𝑥3)(𝑥2𝑥3 + 𝑥4)

Uszkodzenie wykrywajątesty:𝑥1 = 1,0,0,1 = 𝑥1 𝑥2 𝑥3 𝑥4𝑥2 = 1,0,1,1 = 𝑥1 𝑥2 𝑥3 𝑥4𝑥3 = 1,1,0,1 = 𝑥1 𝑥2 𝑥3 𝑥4

Generowanie wektorów testowych -metoda tablicowa

x1 x2 x3 x4 z z xor(z, z)

0 0 0 0 0 0 0

0 0 0 1 0 0 0

0 0 1 0 0 0 0

0 0 1 1 0 0 0

0 1 0 0 0 0 0

0 1 0 1 0 0 0

0 1 1 0 0 0 0

0 1 1 1 0 0 0

1 0 0 0 1 1 0

1 0 0 1 0 1 1

1 0 1 0 1 1 0

1 0 1 1 0 1 1

1 1 0 0 1 1 0

1 1 0 1 0 1 1

1 1 1 0 0 0 0

1 1 1 1 0 0 0

Różnica boolowska funkcji 𝐹 𝑥1, 𝑥2, … , 𝑥𝑛 względem zmiennej 𝑥𝑗, 1 ≤ 𝑗 ≤𝑛 :

𝜕𝐹

𝜕𝑥𝑗= 𝐹 𝑥1, 𝑥2, … , , 0,… , 𝑥𝑛 ⨁𝐹 𝑥1, 𝑥2, … , , 1,… , 𝑥𝑛 = 𝐹𝑥𝑗⨁𝐹𝑥𝑗

• Funkcja n-1 zmiennych

•𝜕𝐹

𝜕𝑥𝑗= 1 dla danego wektora wejściowego 𝑥𝑖 , 𝑖 ≠ 𝑗 wartość F zależy

od zmiennej xj

•𝜕𝐹

𝜕𝑥𝑗= 0 dla danego wektora wejściowego 𝑥𝑖 , 𝑖 ≠ 𝑗 wartość F nie

zależy od xj

Metoda różnic boolowskich (booleandifference)

Page 4: W13 –Testowanie układów cyfrowych

05.12.2017

4

Poprzedni przykład: 𝑧 = 𝐹 𝑥1, 𝑥2, 𝑥3, 𝑥4 = (𝑥1 + 𝑥2𝑥3)(𝑥2𝑥3 + 𝑥4)

𝐹𝑥4 = 𝑥1 + 𝑥2𝑥3 𝑥2𝑥3 + 1 = 0

𝐹𝑥4 = 𝑥1 + 𝑥2𝑥3 𝑥2𝑥3 + 0 = 𝑥1 + 𝑥2𝑥3 𝑥2𝑥3 = 𝑥1𝑥2𝑥3

𝜕𝐹

𝜕𝑥4= 𝐹𝑥4⨁𝐹𝑥4 = 𝑥1𝑥2𝑥3

stąd wektory testowe, uwzględniając warunek, aby x4 odróżniało się od uszkodzenia

Metoda różnic boolowskich (booleandifference)

Wynik metody tablicowej: 𝑥1 = 1,0,0,1 = 𝑥1 𝑥2 𝑥3 𝑥4𝑥2 = 1,0,1,1 = 𝑥1 𝑥2 𝑥3 𝑥4𝑥3 = 1,1,0,1 = 𝑥1 𝑥2 𝑥3 𝑥4

𝜕𝐹

𝜕𝑥4= 𝐹𝑥4⨁𝐹𝑥4 = 𝑥1𝑥2𝑥3 = 𝑥1 𝑥2 + 𝑥3 = 𝑥1𝑥2 𝑥3 + 𝑥3 + 𝑥1𝑥3 𝑥2 + 𝑥2

= 𝑥1𝑥2𝑥3 + 𝑥1𝑥2 𝑥3 + 𝑥1𝑥2𝑥3

stąd wektory testowe (przy x4 = 1, aby odróżniało się od uszkodzenia )𝑥1 = 𝑥1 𝑥2 𝑥3 𝑥4 = 1,0,0,1𝑥2 = 𝑥1 𝑥2 𝑥3 𝑥4 = 1,0,1,1𝑥3 = 𝑥1 𝑥2 𝑥3 𝑥4 = 1,1,0,1

Wektory testowe dla błędów @ xj uzyskuje się jako:

𝑥𝑗𝜕𝐹

𝜕𝑥𝑗dla s-a-0 ഥ𝑥𝑗

𝜕𝐹

𝜕𝑥𝑗dla s-a-1

Page 5: W13 –Testowanie układów cyfrowych

05.12.2017

5

Test = activate + propagate

Activate: wymuszamy w danym punkcie układu wartość przeciwną do błędu badanego w tym punkcie(np. wymuszamy 1, gdy badamy s-a-0)

Propagate: ustawiamy wartości sygnałów na pozostałych bramkach w układzie tak żeby spowodować propagację błędu uszkodzenia do wyjścia.

Metoda pobudzenia ścieżek (pathsensitization)

Aktywowanie podstawowych bramek

Symbol D:

𝐷: sygnał przy niewystępowaniu błędu ma mieć wartość 1ഥ𝐷 : sygnał przy niewystępowaniu błędu ma mieć wartość 0

:

Page 6: W13 –Testowanie układów cyfrowych

05.12.2017

6

Propagowanie sygnału 𝐷 / ഥ𝐷 do wyjścia układu

Bramki XOR i XNOR zawsze propagują 𝐷 (jako 𝐷 albo ഥ𝐷)

Przykład𝑓 = 𝐷

Activate

𝑥0 + 𝑥1 = 1 𝑥0, 𝑥1 ∈ 01,10,11

Propagate

𝑎 = 𝑥2 ∙ 𝑥3 = 1 𝑥2 = 𝑥3 = 1

𝑏 = 0 𝑥4 = 1

𝑐 = 0 𝑥5 = 0

Stąd zbiór testów wykrywających uszkodzenie:

(0,1,1,1,1,0)

(1,0,1,1,1,0)

(1,1,1,1,1,0)