PODSTAWY MIKROELEKTRONIKI:  wykład 6 cz. 1


Streszczenie

Wroc


Nie wszystkie wyprodukowane układy są sprawne. W układach mogą występować różnorodne defekty produkcyjne, toteż konieczne jest przetestowanie każdego egzemplarza układu, zanim zostanie on użyty. W przypadku dużych układów cyfrowych jest to bardzo trudne zadanie. Konstruktor układów powinien w czasie projektowania planować również sposób testowania układu i uwzględniać to w projekcie, ponieważ układ, którego nie można przetestować, jest bezużyteczny.

Defekty, uszkodzenia i ich modele

O układzie scalonym, który nie spełnia wymagań technicznych, mówimy że jest uszkodzony. Uszkodzenia w układach scalonych można podzielić na dwie grupy: uszkodzenia parametryczne i uszkodzenia katastroficzne. Z uszkodzeniem parametrycznym mamy do czynienia wtedy, gdy układ wykonuje swoją funkcję, ale jego parametry elektryczne (w przypadku układów cyfrowych np. maksymalna częstotliwość zegara czy też pobór mocy) są poza dopuszczalnymi granicami. Uszkodzenie katastroficzne to takie, gdy układ w ogóle nie działa - nie wykonuje swej funkcji. Uszkodzenia parametryczne są powodowane przez nadmiernie duże rozrzuty parametrów elementów układu. Uszkodzenia katastroficzne są spowodowane defektami w strukturze układu, na przykład przerwami lub zwarciami. Typowe bramki cyfrowe CMOS, a zwłaszcza bramki statyczne, są mało wrażliwe na parametry tranzystorów. Dlatego uszkodzenia parametryczne nie są w przypadku układów cyfrowych często spotykane. W układach cyfrowych CMOS najczęściej obserwujemy uszkodzenia katastroficzne, a ich przyczyną są zwykle defekty strukturalne. Przykład takiego defektu - cząstki przewodzącej, która zwiera ścieżki przewodzące - pokazuje zdjęcie.

Defekt


Najpospolitsze są defekty powodujące zmiany w połączeniach w układzie: zwarcia ścieżek oraz przerwy w ścieżkach. Dość często spotykanym defektem jest przerwa w połączeniu spowodowana brakiem kontaktu między ścieżkami biegnącymi w różnych poziomach metalizacji, co jest spowodowane niedotrawieniem okna kontaktowego. Zdarzają się też inne defekty, jak na przykład "dziury" w cienkim dielektryku bramkowym tranzystorów MOS powodujące połączenie elektryczne bramki z kanałem i całkowicie zniekształcające charakterystyki uszkodzonego tranzystora.

Aby móc opracować testy dla układu cyfrowego, musimy wiedzieć, jak wpływają defekty w układzie na wykonywane przez ten układ funkcje. Opis działania układu uszkodzonego, tj. zawierającego defekt, nazywamy modelem uszkodzenia. Najprostszym modelem uszkodzenia jest model znany pod nazwą "stałe zero/stała jedynka" (lub niekiedy "sklejenie do zera/sklejenie do jedynki", w jęz. angielskim "stuck at 0/stuck at 1"). Będziemy go w skrócie oznaczać symbolem "SA0/SA1".

!
Model uszkodzenia "SA0/SA1" polega na założeniu, że każdy defekt w układzie prowadzi do tego, że w jakimś jego węźle stan logiczny nie zmienia się - zawsze jest tam stan "0" lub stan "1". Chodzi tu oczywiście o te węzły w układzie, w których w prawidłowo działającym układzie stan logiczny zmienia się.

Model "SA0/SA1" nie ma żadnego uzasadnienia teoretycznego, a symulacje komputerowe i praktyka pokazują, że nie więcej niż kilkanaście procent wszystkich defektów strukturalnych daje w efekcie uszkodzenie typu "SA0/SA1". Znacznie częściej spotyka się uszkodzenia polegające na tym, że zmienia się funkcja logiczna wykonywana przez bramkę czy też blok, w którym wystąpił defekt. Mimo to model "SA0/SA1" jest powszechnie i niemal wyłącznie stosowany w teorii i praktyce testowania układów cyfrowych. Wieloletnia praktyka pokazała bowiem, że jest to model skuteczny. Otrzymywane przy użyciu tego modelu zestawy testów dla układów cyfrowych pozwalają przetestować te układy z dostateczną dla celów praktycznych wiarygodnością. Wielką zaletą modelu "SA0/SA1" jest jego prostota, a przede wszystkim niezależność od struktury fizycznej układu. Dla stosowania w praktyce tego modelu wystarczy znać schemat logiczny projektowanego układu. Nie jest konieczna znajomość schematu elektrycznego ani topografii układu.  Istnieją też inne, bliższe rzeczywistości fizycznej modele uszkodzeń, są one jednak rzadko stosowane. Dalej zobaczymy, w jaki sposób model "SA0/SA1" jest wykorzystywany do otrzymywania zestawów testów dla układów cyfrowych.

Uwagi terminologiczne:
Jeżeli przyjmiemy dodatkowe założenie, że w układzie testowanym występuje tylko jedno uszkodzenie, to mamy do czynienia ze szczególnym przypadkiem modelu "SA0/SA1" zwanym "pojedynczy model sklejeniowy", określanym skrótem "SSL" (z jęz. angielskiego: "single stuck-at line").

Podstawowe pojęcia i problemy

Wyobraźmy sobie, że kupujemy w sklepie kalkulator i chcemy sprawdzić, czy działa prawidłowo. W tym celu wykonujemy w sposób mniej lub bardziej przypadkowy kilka obliczeń, których prawidłowy wynik jest nam znany. Wyniki wyświetlone przez kalkulator są poprawne. Czy po takim teście możemy być pewni, że kalkulator działa całkowicie prawidłowo? Nie! Taką pewność uzyskalibyśmy dopiero wtedy, gdybyśmy wykonali wszystkie możliwe działania dla wszystkich możliwych argumentów. Taki test nosi nazwę wyczerpującego testu funkcjonalnego. Jest oczywiste, że nie da się go wykonać kupując w sklepie kalkulator.

A gdyby test był wykonywany przez szybki tester, taki, jaki stosowany jest do testowania układów scalonych?

Przypuśćmy, że testujemy układ kombinacyjny mający wejście n-bitowe. Jedno słowo n-bitowe podane na wejście dla celów testowania będziemy nazywali wektorem testowym. Wyczerpujący test funkcjonalny wymaga podania na wejście wszystkich możliwych kombinacji zer i jedynek, czyli 2n wektorów testowych, i zbadania poprawności odpowiedzi układu. Jeżeli testujemy układ sekwencyjny mający wejście n-bitowe i m stanów wewnętrznych, wyczerpujący test funkcjonalny wymaga podania na wejście 2(n+m) wektorów testowych. Czy to dużo? Wyobraźmy sobie prosty układ, dla którego n=25, m=50. Potrzebne jest więc 275 wektorów testowych. Jest to liczba równa około 3,8x1022. Jeżeli dysponujemy testerem, który potrzebuje 1 µs na jeden wektor testowy, testowanie naszego prostego układu będzie trwało około 109 lat!

Ten prosty przykład pokazuje, że

!
wyczerpujący test funkcjonalny jest niemożliwy do wykonania nawet dla zupełnie prostych układów.

A ponieważ wyczerpujący test funkcjonalny nie jest możliwy, musimy mieć miarę jakości testów pozwalającą nam oszacować, jaki jest stopień wiarygodności wyników testowania. Innymi słowy, musimy znać odpowiedź na pytanie, jaki procent wszystkich możliwych uszkodzeń w układzie wykryje zestaw wektorów testowych, który nie jest wyczerpującym testem funkcjonalnym. Ten procent będziemy nazywali poziomem wykrywalności uszkodzeń dla danego zestawu wektorów testowych. Im niższy ten poziom, tym większe prawdopodobieństwo, że w wyniku testowania zakwalifikowany zostanie jako sprawny układ, który w rzeczywistości jest uszkodzony.

Poziom wykrywalności uszkodzeń jest miarą teoretyczną określaną przy zastosowaniu modelu uszkodzeń "SA0/SA1" i przy dalszych upraszczających założeniach. Jedno z nich to założenie, że uszkodzenie typu "SA0/SA1" może z jednakowym prawdopodobieństwem wystąpić w każdym węźle układu. Tak w rzeczywistości nie jest. W związku z tym poziom wykrywalności uszkodzeń nie wiąże się bezpośrednio i jednoznacznie z faktyczną liczbą układów wadliwych. Oto wyniki badań statystycznych pokazujących typowy związek poziomu wykrywalności uszkodzeń z faktycznym procentem układów wadliwych wśród układów zakwalifikowanych jako sprawne. Dane te nie są uniwersalne, zostały uzyskane dla określonych rodzajów układów i określonych sposobów ich testowania, ale dają pewne pojęcie o istniejącej tu zależności:

Poziom wykrywalności uszkodzeń Procent układów wadliwych wśród układów zakwalifikowanych jako sprawne
50%
7%
90%
3%
95%
1%
99%
0,1%
99,9%
0,01%

Wprowadzimy jeszcze dwa inne nowe pojęcia: kontrolowalności węzłów i obserwowalności węzłów w układzie. Metody testowania, o których będzie dalej mowa, wykorzystują model uszkodzenia "SA0/SA1" zakładający, że uszkodzenie polega na ustalonym stanie "0" lub "1" w jakimś węźle układu. Zatem dla sprawdzenia, czy wystąpiło uszkodzenie, trzeba będzie ustawiać określone stany w węzłach i sprawdzać te stany.

Mówimy, że badany węzeł jest kontrolowalny, jeśli sekwencja wektorów testowych o skończonej długości pozwala na ustawienie w tym węźle żądanego stanu ("0" lub "1"). Węzeł jest tym łatwiej kontrolowalny, im krótsza jest ta sekwencja.

Uwaga terminologiczna: zamiast "kontrolowalny", "kontrolowalność" mówi się także "sterowalny", "sterowalność".

Podobnie mówimy, że badany węzeł jest obserwowalny, jeśli sekwencja wektorów testowych o skończonej długości pozwala na pojawienie się na wyjściu układu stanu pozwalającego określić, jaki był stan ustawiony w węźle ("0" lub "1"). Węzeł jest tym łatwiej obserwowalny, im krótsza jest ta sekwencja.

Dla
układów kombinacyjnych prawidłowo zaprojektowanych pod względem logicznym kontrolowalność i obserwowalność węzłów nie stanowi problemu. Natomiast w przypadku układów sekwencyjnych zmiana stanu w niektórych wewnętrznych węzłach układu może wymagać niezwykle długich sekwencji wektorów testowych. Jak zobaczymy, istnieją sposoby projektowania układów zasadniczo poprawiające kontrolowalność i obserwowalność węzłów w układach sekwencyjnych.

Posługując się zdefiniowanymi wyżej pojęciami można zadanie określenia sposobu testowania układu oraz wygenerowania odpowiedniego zestawu wektorów testowych sformułować następująco:

!
Celem jest uzyskanie jak najkrótszej sekwencji wektorów testowych zapewniającej wymagany poziom wykrywalności uszkodzeń.

Trzeba się przy tym pogodzić z faktem, że dla dużych i złożonych układów poziom wykrywalności uszkodzeń będzie z reguły niższy niż 100%. Nacisk na to, że sekwencja wektorów testowych powinna być jak najkrótsza, bierze się stąd, że testowanie dużych układów jest kosztowne. Wynika to z bardzo wysokiego kosztu nowoczesnych testerów. Nierzadkie są przypadki, gdy koszt testowania układu jest porównywalny z kosztem jego wyprodukowania.

Uwaga terminologiczna: termin "poziom wykrywalności uszkodzeń" jest równoważny często używanemu terminowi "pokrycie uszkodzeń", co jest dosłownym tłumaczeniem angielskiego  terminu "fault coverage".

Wroc
Dalej


sem. 16Z