TESTING DIGITAL INTEGRATED CIRCUITS WITH

Podobne dokumenty
On new class of test points and their applications

Temat: Pamięci. Programowalne struktury logiczne.

Elementy cyfrowe i układy logiczne

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Ćw. 7: Układy sekwencyjne

dwójkę liczącą Licznikiem Podział liczników:

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Zapoznanie się z podstawowymi strukturami liczników asynchronicznych szeregowych modulo N, zliczających w przód i w tył oraz zasadą ich działania.

Badanie działania bramki NAND wykonanej w technologii TTL oraz układów zbudowanych w oparciu o tę bramkę.

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

Tranzystor JFET i MOSFET zas. działania

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

(57) Tester dynamiczny współpracujący z jednej strony (13) B1 (12) OPIS PATENTOWY (19) PL (11) PL B1. (54) Tester dynamiczny

ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI

BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO

LABORATORIUM TECHNIKA CYFROWA BRAMKI. Rev.1.0

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Ćwiczenie 26. Temat: Układ z bramkami NAND i bramki AOI..

WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2

CHARAKTERYSTYKI BRAMEK CYFROWYCH TTL

Sterowniki Programowalne (SP)

Mikrooperacje. Mikrooperacje arytmetyczne

LABORATORIUM PODSTAW ELEKTRONIKI. Komputerowa symulacja układów różniczkujących

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Statyczne badanie przerzutników - ćwiczenie 3

Architektura komputerów Wykład 2

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

Sposoby opisu i modelowania zakłóceń kanałowych

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

LICZNIKI PODZIAŁ I PARAMETRY

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

Ćwiczenie 23. Temat: Własności podstawowych bramek logicznych. Cel ćwiczenia

Zwiększanie wiarygodności systemów wykorzystujących układy programowalne

Ćw. 8 Bramki logiczne

Elementy cyfrowe i układy logiczne

2.2 Opis części programowej

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

Regulacja dwupołożeniowa (dwustawna)

Cyfrowe układy scalone

U 2 B 1 C 1 =10nF. C 2 =10nF

Pracownia pomiarów i sterowania Ćwiczenie 4 Badanie ładowania i rozładowywania kondensatora

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

1. Definicja i przeznaczenie przerzutnika monostabilnego.

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Synteza strukturalna automatów Moore'a i Mealy

11.Zasady projektowania komórek standardowych

PROGRAMOWALNE STEROWNIKI LOGICZNE

Maciej Piotr Jankowski

Cyfrowe układy scalone

Automatyzacja i robotyzacja procesów produkcyjnych

Opracował: Jan Front

Automatyka SZR. Korzyści dla klienta: [ Zabezpieczenia ] Seria Sepam. Sepam B83 ZASTOSOWANIE UKŁADY PRACY SZR

Projektowania Układów Elektronicznych CAD Laboratorium

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

LICZNIKI Liczniki scalone serii 749x

Sterownik nagrzewnic elektrycznych HE module

Generator przebiegów pomiarowych Ex-GPP2

Szybkie prototypowanie w projektowaniu mechatronicznym

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

Ćwiczenie ZINTEGROWANE SYSTEMY CYFROWE. Pakiet edukacyjny DefSim Personal. Analiza prądowa IDDQ

Politechnika Poznańska, Instytut Elektrotechniki i Elektroniki Przemysłowej, Zakład Energoelektroniki i Sterowania Laboratorium energoelektroniki

Układy zegarowe w systemie mikroprocesorowym

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Komputerowe projektowanie układów ćwiczenia uzupełniające z wykorzystaniem Multisim/myDAQ. Katedra Mikroelektroniki i Technik Informatycznych PŁ

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Ćwiczenie 25 Temat: Interfejs między bramkami logicznymi i kombinacyjne układy logiczne. Układ z bramkami NOR. Cel ćwiczenia

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

Katedra Przyrządów Półprzewodnikowych i Optoelektronicznych Laboratorium Przyrządów Półprzewodnikowych. Ćwiczenie 4

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

Technologie Informacyjne

1.2 Funktory z otwartym kolektorem (O.C)

Logiczne układy bistabilne przerzutniki.

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Urządzenia zewnętrzne

ćw. Symulacja układów cyfrowych Data wykonania: Data oddania: Program SPICE - Symulacja działania układów liczników 7490 i 7493

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

OPROGRAMOWANIE DEFSIM2

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

1.Podstawytechnikicyfrowej

Spacery losowe generowanie realizacji procesu losowego

Wzmacniacze operacyjne

Politechnika Gdańska. Gdańsk, 2016

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Transkrypt:

TESTING DIGITAL INTEGRATED CIRCUITS WITH NOVEL LOW POWER HIGH FAULT COVERAGE TECHNIQUES AND A NEW SCAN ARCHITECTURE JĘDRZEJ SOLECKI POLITECHNIKA POZNAŃSKA WYDZIAŁ ELEKTRONIKI I TELEKOMUNIKACJI Autoreferat rozprawy doktorskiej Promotor: prof. dr hab. inż. Jerzy Tyszer

1. Wprowadzenie Wraz z obserwowanym w ostatnich kilku dekadach postępem technologicznym, urządzenia elektroniczne odgrywają coraz ważniejszą rolę w życiu codziennym, a oczekiwania użytkowników wobec mocy obliczeniowej, pojemności pamięci, czy też zasobów sieciowych stale rosną. Jednocześnie bezprecedensowy rozwój technologii wytwarzania układów scalonych umożliwia integrację coraz większej liczby tranzystorów w pojedynczym układzie przy malejącym koszcie produkcji w przeliczeniu na pojedynczy komponent. Jak zaobserwował Gordon E. Moore [5], złożoność cyfrowych układów scalonych podwaja się średnio co osiemnaście miesięcy. Tak dynamiczny rozwój pozwala na produkcję coraz wydajniejszych urządzeń. Wzrost złożoności produkowanych układów scalonych znacząco zwiększa prawdopodobieństwo wystąpienia uszkodzeń. Połączenia między tranzystorami wykonane z użyciem współczesnych procesów technologicznych osiągają szerokość dziesiątek atomów, natomiast grubość warstw izolacyjnych bramek tranzystorów wynosi 3-5 atomów. Proces fotolitografii wykorzystuje szereg metod umożliwiających stosowanie światła laserowego o długości fali znacznie większej niż podane wyżej wymiary, jednak uzyskany w ten sposób obraz maski jest probabilistycznie zdeformowany. Z tego powodu nawet niewielkie uchybienia w procesie produkcji mogą doprowadzić do przekroczenia marginesów błędów gwarantujących prawidłową pracę układu. Uszkodzenie nawet pojedynczego elementu w strukturze układu powoduje, że układ nie działa prawidłowo. Dodatkowo, niektóre uszkodzenia objawiają się dopiero w wyniku stresu środowiskowego, na przykład w obecności wahań temperatury otoczenia lub zmian charakterystyk napięcia zasilania. Wraz z wdrażaniem technologii poniżej 22nm, obserwuje się nowe typy uszkodzeń, które w wielu przypadkach pozostają niewykrywalne dla metod testowania stosujących klasyczne modele uszkodzeń. Nowe i bardziej złożone modele uszkodzeń uwzględniają na przykład strukturę układu na poziomie tranzystorów. Wykorzystanie tego typu modeli oznacza z reguły istotne zwiększenie ilości danych testowych, a zatem także wydłużenie czasu testowania, nierzadko poza akceptowalne granice. W układzie zbudowanym z 2,5 miliona bramek logicznych wystąpić może ponad 5 milionów uszkodzeń modelowanych jako sklejenie z 0 lub sklejenie z 1, ponad 7 milionów uszkodzeń powodujących opóźnienia zmiany stanu i ponad 14 milionów uszkodzeń modelowanych na poziomie tranzystorów. Jeżeli w strukturze układu znajduje się 100 tysięcy przerzutników, to liczba stanów wewnętrznych układu wynosi 2 100000. Sekwencyjny generator testów wymagałby przeszukiwania 3

tak dużej przestrzeni w celu osiągnięcia stanów gwarantujących pobudzenie i propagację uszkodzeń, co byłoby procesem niezwykle czasochłonnym, w praktyce niewykonalnym. Najważniejszą współcześnie techniką umożliwiającą efektywne testowanie złożonych układów sekwencyjnych jest opracowana w latach 70. ścieżka testująca (Rys. 1). W trybie testowym wszystkie elementy pamięci układu są łączone w dostępne z zewnątrz rejestry przesuwające. Po wprowadzeniu wektora testowego, układ jest przełączany w tryb funkcjonalny. Następnie jego odpowiedź zostaje zapisana i wysunięta z układu. Ścieżka testująca pozwala zatem testować sekwencyjne układy scalone wykorzystując bardzo efektywne algorytmy generowania testów dla układów kombinacyjnych. Warto jednak zauważyć, że metoda ta obarczona jest dużym kosztem związanym z czasem aplikacji testów. Ze 100000 przerzutników można utworzyć 500 ścieżek testujących o długości 200 przerzutników każda. Przyjmując, że do przetestowania układu wymagane jest 20000 deterministycznych wektorów testowych, ich wprowadzanie zajmuje 4 miliony cykli (20000 200) natomiast rejestrowanie odpowiedzi układu trwa jedynie 20000 cykli (niecałe 0.5%). W rozprawie zaproponowano oryginalne rozwiązanie, które pozwala na znacznie bardziej efektywne wykorzystanie czasu testowania. Rysunek 1: Testowanie z wykorzystaniem ścieżki testującej. Istotny problem współczesnego testowania stanowi także aktywność układu w trakcie podawania wektorów testowych. Istotnie, pobudzenia testowe mogą średnio zwiększać liczbę przełączeń dwu- lub trzykrotnie przy 30-krotnym wzroście chwilowym [17]. W takich przypadkach może dojść do degradacji testowanego układu, a nawet jego nieodwracalnego uszkodzenia. Wraz z rosnącym zapotrzebowaniem na urządzenia o niskim poborze mocy, sterowanie pracą układu w trybie testowym staje się odrębnym i złożonym zagadnieniem zarówno teoretycznym jak 4

i praktycznym [2]. W rozprawie zaproponowano metody testowania deterministycznego oraz autotestowania pseudolosowego, które pozwalają kontrolować poziom aktywności układu w czasie testowania. Wymagania stawiane nowym technologiom testowania kształtowane są także przez coraz większy udział urządzeń elektronicznych o krytycznym znaczeniu dla zdrowia lub bezpieczeństwa. Niezawodność techniki cyfrowej w medycynie, obronności, w systemach bezpieczeństwa transportu lotniczego, kolejowego i samochodowego lub w łączności bezprzewodowej jest w niekwestionowany sposób zależna od wysokiej jakości testowania produkcyjnego oraz stałego monitorowania poprawności pracy układu [3]. Typowym rozwiązaniem pozwalającym zapewnić niezawodność pracy układu w docelowym systemie jest autotestowanie pseudolosowe. Jego zastosowanie w omawianych dziedzinach jest jednak ograniczone ze względu na niedostateczne pokrycie uszkodzeń. Autotestowanie wykorzystujące deterministyczne dane testowe pozwalałoby na osiągnięcie wysokiej jakości testowania zarówno na etapie produkcji jak i po wdrożeniu produktu. Praktyczne zastosowanie takiego podejścia jest jednak często nieopłacalne ze względu na koszt dodatkowej pamięci. W rozprawie przedstawiono metodę agresywnej kompresji danych testowych pozwalającą osiągnąć pełne pokrycie uszkodzeń przy znacznie zredukowanej ilości danych testowych. Każde z proponowanych w rozprawie rozwiązań zostało zaimplementowane jako osobne oprogramowanie lub w formie zmodyfikowanych narzędzi komercyjnych udostępnionych przez firmę Mentor Graphics. Możliwość praktycznego zastosowania wszystkich oryginalnych rozwiązań potwierdzono eksperymentalnie wykorzystując aktualnie wytwarzane układy scalone. 2. Hybrydowy generator testów pseudolosowych W rozdziale 2. rozprawy przedstawiono energooszczędny generator sekwencji pseudolosowych PRESTO (ang. PRESelected TOggling) [1], [6], umożliwiający programowanie poziomu aktywności układu podczas testowania. Omawiane rozwiązanie przedstawiono na Rys. 2. Struktura generatora bazuje na n-bitowym liniowym generatorze sekwencji pseudolosowych z przesuwnikiem fazy. Oba moduły rozdzielone są zatrzaskami sterowanymi przez odpowiedni bit w rejestrze sterującym. Gdy sygnał sterujący przyjmuje wartość 1, zatrzask jest transparentny i propaguje bez zmian dane z generatora do przesuwnika fazy. W przeciwnym razie zatrzask zapamiętuje odpowiedni bit stanu generatora sekwencji i separuje go od przesuwnika fazy. Ponieważ w najpowszechniej stosowanej (na potrzeby testu) strukturze każde z wyjść przesuwnika fazy stanowi sumę jego trzech różnych wejść, do danej ścieżki testującej wprowadzana jest stała wartość tylko wtedy, gdy odpowiadające jej wejścia przesuwnika fazy połączone są z zatrzaskami separującymi. 5

Rysunek 2: Struktura generatora PRESTO. Proporcja liczby zer i jedynek w rejestrze sterującym decyduje o aktywności układu podczas wprowadzania testu. Z początkiem każdego wektora testowego rejestr sterujący jest przeładowywany danymi z dodatkowego rejestru przesuwającego, którego zawartość jest wyznaczana losowo na podstawie programowalnych wag. Rejestr S aktywuje zbiór bramek AND, które umożliwiają uzyskanie wartości 1 z prawdopodobieństwem odpowiednio 0,5, 0,25, 0,125 i 0,0625. Bramka OR zwiększa zakres wyboru prawdopodobieństw poza potęgi 2. Tabela 1 przedstawia prawdopodobieństwo wystąpienia 1 na wyjściu bramki OR w zależności od wartości zapisanej w rejestrze S. Dodatkowa bramka NOR wykrywa wartość 0000 i pozwala na wyłączenie wszystkich zatrzasków, a zatem i trybu ograniczonego przełączania, niezależnie od zawartości rejestru sterującego. Przedstawiony na Rys. 2 moduł sterujący przerzutnikiem typu T zwiększa możliwości kontroli generatora poprzez wprowadzenie dodatkowych faz przełączania i zamrożenia w trakcie wprowadzania wektorów testowych do ścieżek testujących. Długość każdej z faz wyznaczana jest probabilistycznie na podstawie zawartości rejestrów H i T oraz analogicznego do opisanego wcześniej generatora prawdopodobieństw. Rys. 3 przedstawia przykładowe wektory testowe uzyskane wykorzystując generator PRESTO dla hipotetycznego układu z 15 ścieżkami testującymi. Kolor niebieski i czerwony odpowiadają różnym wartościom logicznym, natomiast szare fragmenty reprezentują obszary wypełnione wartościami losowym. 6

Tabela 1: Prawdopodobieństwo wprowadzenia 1 do rejestru przesuwającego Zawartość rejestru S Prwadopodobieństwo 1 0,5 2 0,25 3 0,625 4 0,125 5 0,5625 6 0,34375 7 0,671875 8 0,0625 9 0,53125 10 0,296875 11 0,6484375 12 0,1796875 13 0,58984375 14 0,384765625 15 0,69238281 Podstawową miarą aktywności układu podczas testowania jest przełączanie ważone (ang. Weighted Transition Metric, WTM). Miarę tę wyznacza się zliczając liczbę przełączeń występujących podczas wprowadzania wektora testowego uwzględniając odległości każdej zmiany stanu od wejścia ścieżki testującej. Dla sekwencji losowych wartość tej miary wynosi zwykle blisko 50%. W opisywanym rozwiązaniu, o liczbie przełączeń występujących w wektorach testowych decyduje zawartość rejestrów S, H, oraz T. W rozprawie zaproponowano algorytm umożlwiający automatyczne wyznaczenie wartości sterujących w oparciu o żądany poziom przełączania. Na Rys. 4 przedstawiono uśrednioną dla 5 układów scalonych korelację między aktywnością układu żądaną przez użytkownika (oś X) oraz zaobserwowaną podczas symulacji wektorów testowych wygenerowanych przez PRESTO (oś Y). Linia czerwona reprezentuje przełączanie uśrednione dla wszystkich wektorów testowych. Rysunek 3: Przykładowe wektory testowe wygenerowane za pomocą PRESTO 7

Linia niebieska przyjmuje wartość WTM zmierzoną dla wektora testowego z największą liczbą przełączeń. Linie czarne z kolei odpowiadają odchyleniu standardowemu wykonanych pomiarów. Uzyskane wyniki wskazują, że obserwowane przełączanie bardzo dobrze odpowiada zadanemu, cechując się tylko niewielkimi wahaniami. Rysunek 4: Wartości przełączania dla 5 testowanych układów. Analizę eksperymentalną przeprowadzono wykorzystując szereg rzeczywistych układów scalonych, których charakterystyki zebrano w Tabeli 2. Kolejne kolumny przedstawiają liczbę bramek logicznych, liczbę ścieżek testujących, długość najdłuższej ścieżki testującej oraz pokrycie uszkodzeń uzyskane dla testu pseudolosowego bez ograniczenia liczby przełączeń (WTM = 50%). Pokrycie uszkodzeń uzyskane Liczba bramek Tabela 2: Charakterystyki badanych układów. Liczba ścieżek testujących Najdłuższa ścieżka testująca Pokrycie uszkodzeń [%] D1 590k 35 686 90,59 D2 830k 84 416 91,07 D3 500k 128 353 85,36 D4 1,4M 160 541 93,06 D5 1,3M 203 300 91,18 D6 220k 122 104 92,63 D7 1,9M 524 258 85,89 D8 3,6M 104 3218 84,51 8

Tabela 3: Pokrycie uszkodzeń [%]. WTM 5% 10% 15% 20% 25% D1 83,13 84,08 84,29 84,58 84,74 D2 89,13 89,76 90,03 90,10 90,14 D3 85,55 86,21 86,07 86,16 86,52 D4 86,37 88,50 90,20 92,37 92,63 D5 85,61 87,41 88,16 89,64 89,45 D6 89,68 90,97 91,26 91,73 92,07 D7 81,78 83,73 84,56 85,59 85,80 D8 83,53 84,27 84,47 85,25 85,12 przez wektory testowe otrzymane z wykorzystaniem generatora PRESTO dla poszczególnych wartości przełączania zebrano w Tabeli 3. Uzyskane pokrycie uszkodzeń zgodnie z oczekiwaniami maleje wraz z ograniczaniem aktywności układu. W rozprawie przeanalizowano także metodę umożliwiającą deterministyczne wyznaczanie zawartości rejestru sterującego. Zaproponowano algorytm, który na podstawie wektorów testowych wyznacza pozycje jedynek w rejestrze sterującym w taki sposób, aby prawdopodobieństwo wygenerowania testu dla danego uszkodzenia było jak największe. Dzięki dodatkowym danym sterującym istnieje możliwość znacznej redukcji czasu testowania. Rys. 5 przedstawia wykres redukcji liczby Rysunek 5: Redukcja liczby wektorów testowych. 9

wektorów testowych przy zastosowaniu opisanej metody i ograniczeniu przełączania do 10% dla wybranych sześciu układów. Wartości na osi odciętych odpowiadają liczbie wektorów testowych wygenerowanych przez pseudolosowy generator PRE- STO, po aplikacji których pokrycie uszkodzeń wynosi C. Oś Y reprezentuje różnicę w liczbie wektorów potrzebnych do uzyskania tego samego pokrycia C przez generator wspomagany deterministycznie wyznaczaną zawartością rejestru sterującego. Na przykład układ D2 wymaga 70000 mniej wektorów testowych dla uzyskania takiego samego pokrycia uszkodzeń jakie w pełni pseudolosowa wersja generatora osiąga po podaniu 100000 wektorów testowych. Dla każdego z badanych układów dodatkowe dane sterujące zajęły 4KB pamięci. W wielu przypadkach pseudolosowe wektory testowe nie umożliwiają osiągnięcia wystarczającego pokrycia uszkodzeń (por. sekcja 1.). W rozprawie przeanalizowano możliwość wykorzystania generatora PRESTO do aplikacji zredukowanych i deterministycznych wektorów testowych. Niewielkie zmiany w strukturze prezentowanej na Rys. 2 umożliwiają wykorzystanie modułu PRESTO jako dekompresora danych testowych, zachowując możliwość kontroli przełączania. Na potrzeby opisywanego rozwiązania opracowano nowy algorytm kodowania wektorów testowych, uwzględniający fazy zamrożenia i przełączania. Jak wykazano w rozprawie, generator PRESTO umożliwia pracę w jednym z trzech trybów: generatora sekwencji pseudolosowych, generatora sekwencji pseudolosowych wspomaganego deterministyczną zawartością rejestru sterującego oraz dekompresora danych testowych. Proponowana technologia jest zatem kompletnym rozwiązaniem łączącym zalety autotestowania oraz dekompresji deterministycznych danych testowych, umożliwiając elastyczne zarządzanie kosztem i jakością testu. Obie funkcje realizowane są przez ten sam moduł, dzięki czemu zapotrzebowanie na powierzchnię krzemu jest ograniczone (w rozprawie przeprowadzono dokładną analizę powierzchni krzemu zajmowanej przez każdą wersję generatora PRESTO). W każdym trybie działania generatora PRESTO jest dostępna precyzyjna kontrola poziomu przełączania co gwarantuje wiarygodne wyniki testu. 3. Autotestowanie deterministyczne W kolejnej części rozprawy zaproponowano metodę autotestowania deterministycznego, wykorzystującą zredukowane dane testowe przechowywane w dodatkowej pamięci układu w celu osiągnięcia pełnego pokrycia uszkodzeń. Wysoki stopień kompresji uzyskano wykorzystując dwie obserwacje. Przede wszystkim, analiza testów dla dużych układów sekwencyjnych wskazuje, że wyspecyfikowane bity w wektorach testowych skupiają się w niewielkich częściach ścieżek testujących [15]. Obecność tego typu klastrów można wytłumaczyć analizując wielowejściową bramkę AND lub OR. Aby wykryć sklejenie z 0 na wyjściu 32-wejściowej bramki 10

AND, wszystkie jej wejścia muszą przyjąć wartość 1. Z kolej do wygenerowania testu dla i-tego wejścia sklejonego z 1, ponownie wszystkie wejścia z wyjątkiem i-tego ustawione są na 1 (Rys. 6). Jak łatwo zauważyć, test dla sklejenia z 0 na wyjściu omawianej bramki, po przełączeniu jednego bitu może posłużyć do przetestowania uszkodzenia na odpowiednim wejściu. Tego typu wektor testowy stanowi rdzeń klastra i jest nazywany wektorem bazowym, natomiast wektory pochodne uzyskiwane są przez jego niewielką modyfikację. Rysunek 6: Testowanie 32-bitowej bramki AND. Kolejna obserwacja dotyczy skupienia większości wyspecyfikowanych wartości w pojedynczej ścieżce testującej. Pomimo, iż zjawisko to może zależeć od sposobu tworzenia ścieżek testujących, wszystkie analizowane w pracy układy wykazywały tę właściwość. Rys. 7 przedstawia rozkład liczby wyspecyfikowanych bitów w ścieżkach testujących. Pierwsza kolumna (1) oznacza udział, uśredniony dla wszystkich wektorów testowych, wyspecyfikowanych bitów, które trafiają do najbardziej popularnej ścieżki testującej. Kolejna kolumna (2) reprezentuje procent wyspecyfikowanych bitów znajdujących się w drugiej najbardziej popularnej ścieżce. Jak widać średnio 45% wszystkich wartości wektora testowego znajduje się w pojedynczej ścieżce testującej, podczas gdy druga najbardziej wyspecyfikowana ścieżka przyjmuje 21% bitów, a więc o ponad połowę mniej. Rysunek 7: Rozmieszczenie wyspecyfikowanych bitów w ścieżkach testujących. 11

Rysunek 8: Proponowana architektura deterministycznego autotestowania. W oparciu o powyższe obserwacje w rozprawie zaproponowano strukturę autotestowania deterministycznego przedstawioną na Rys. 8. Do dekompresji danych testowych wykorzystano środowisko EDT [14] z n-bitowym generatorem pierścieniowym, do którego dane testowe dostarczane są z wbudowanej pamięci. Między generatorem pierścieniowym i przesuwnikiem fazy umieszczono n dwuwejściowych bramek XOR sterowanych sygnałem C. Gdy sygnał jest aktywny, wszystkie dane trafiające do przesuwnika fazy, a zatem też do ścieżek testujących są zanegowane. O chwili ustawienia sygnału C decyduje sterownik BIST. Gdy zawartość rejestru cykl jest równa liczbie cykli liczonych od początku danego wektora testowego, wyjście C przyjmuje wartość 1. Lista cykli, w których dokonuje się inwersji danych testowych, przechowywana jest dla każdego bazowego wektora testowego w dodatkowej pamięci. Proces aplikacji wektorów testowych rozpoczyna się od wprowadzenia niezmienionego wektora bazowego. Następnie ten sam wektor bazowy jest cyklicznie dekompresowany, podczas gdy sterownik BIST selektywnie neguje w odpowiednich szczelinach czasowych wartości wprowadzane do ścieżek testowych, aby uzyskać wektory pochodne wykrywające nowe uszkodzenia. 12

W rozprawie zaproponowano dwa algorytmy wyznaczania zbioru bazowych wektorów testowych. Pierwsza metoda pozwala uzyskać najbardziej stromą charakterystykę pokrycia uszkodzeń w funkcji liczby testów dzięki przeszukiwaniu znacznej części przestrzeni rozwiązań. Drugie, iteracyjne, podejście oferuje niezauważalnie gorsze wyniki przy znacznych oszczędnościach czasu wykonania. W pierwszym kroku, algorytm wyznacza listę uszkodzeń odpornych na ϑ losowych wektorów testowych. Następnie dla każdego z pozostałych uszkodzeń wyznaczany jest deterministyczny wektor testowy oraz wszystkie możliwe wektory pochodne uzyskane poprzez zanegowanie wartości w kolejnych cyklach zegara. Uzyskana w ten sposób grupa wektorów poddawana jest symulacji uszkodzeń aby usunąć nieefektywne wektory pochodne. Cały proces powtarza się dopóki istnieją uszkodzenia niewykryte. Dodatkowo, opisana wyżej procedura powtarzana jest dla początkowo pominiętych i jeszcze niewykrytych uszkodzeń. Rysunek 9: Pokrycie uszkodzeń (lewa oś) w funkcji pamięci oraz odpowiadające czasy aplikacji testu (prawa oś) wyrażone w liczbie wprowadzonych wektorów testowych. Wyniki pierwszej grupy badań eksperymentalnych przedstawia Rys. 9. Cztery krzywe pokrycia uszkodzeń w funkcji ilości danych uzyskano dla jednego z badanych układów scalonych przy różnych wartościach parametru ϑ. Jako punkt odniesienia przyjęto technologię kompresji danych testowych EDT (kolor czarny). Krzywe znajdujące się w dolnej części wykresu, odpowiadają podanemu na prawej osi Y czasowi aplikacji wyrażonemu w liczbie wektorów testowych. Uzyskane wyniki pokazują, iż krzywe pokrycia uszkodzeń pozostają niemal nierozróżnialne przy różnych wartościach parametru ϑ, natomiast czas aplikacji ulega skróceniu wraz ze wzrostem ϑ. Ze względów praktycznych, dalsze eksperymenty przeprowadzono dla ϑ=5000. 13

L. bramek L. ścieżek tesujących Tabela 4: Charakterystyki układów. Konfiguracja ścieżek testujących Rozmiar dekompresora EDT L. wejść dekompresora Pokrycie uszkodzeń 1 220K 13K 122 x 138 17 1 98,87% 2 450K 45K 226 x 200 32 4 98,67% 3 1,5M 145K 700 x 207 42 8 97,81% 4 1,2M 85K 427 x 200 32 4 92,30% 5 600K 20K 35 x 686 32 1 91,22% 6 840K 34K 84 x 416 32 1 92,30% Kolejne eksperymenty przeprowadzono dla aktualnie produkowanych układów scalonych opisanych w Tabeli 4. W kolejnych kolumnach podano liczbę bramek logicznych w strukturze układów, liczbę elementów pamięci w ścieżkach testujących, konfigurację ścieżek testujących oraz rozmiar i liczbę wejść dekompresora. W ostatniej kolumnie zebrano pokrycie uszkodzeń uzyskane za pomocą oprogramowania do generowania deterministycznych wektorów testowych. Pierwsza grupa eksperymentów miała na celu wyznaczenie ilości danych testowych niezbędnych do osiągnięcia zadanego pokrycia uszkodzeń. Wyniki zebrano w Tabeli 5. Kolejne sekcje odpowiadają pokryciu uszkodzeń stanowiącym 90%, 95% oraz 99% maksymalnego możliwego do uzyskania pokrycia przedstawionego w ostatniej kolumnie Tabeli 4. Dla każdego poziomu pokrycia uszkodzeń przedstawiono ilość danych uzyskanych dla kompresji EDT oraz proponowanego rozwiązania (BIST). Ostatnia kolumna przedstawia uśredniony dla każdego wiersza stopień kompresji autotestowania deterministycznego w stosunku do EDT. Tabela 5: Zapotrzebowanie na pamięć [ 10 3 bitów]. 90% 95% 99% EDT BIST EDT BIST EDT BIST Comp. D1 24 12 51 23 146 57 2,26x D2 294 64 648 140 1491 388 4,36x D3 378 57 1017 140 2960 490 6,65x D4 1181 105 2511 228 6385 645 10,72x D5 100 63 178 101 367 187 1,77x D6 44 37 121 79 410 210 1,56x 14

Tabela 6: Pokrycie uszkodzeń [%]. 64 seed 128 seed 256 seed Max EDT BIST EDT BIST EDT BIST EDT BIST D1 82,75 88,43 88,45 93,53 93,10 96,93 97,10 98,87 D2 74,77 87,86 81,25 92,49 86,71 95,98 95,34 98,67 D3 80,66 91,91 85,18 94,96 89,16 96,74 93,79 97,81 D4 55,09 78,63 62,9 83,63 69,61 87,66 83,78 92,30 D5 74,80 78,40 81,56 85,99 87,01 90,30 89,73 91,22 D6 81,26 81,16 84,68 85,84 87,50 89,35 91,30 92,11 W kolejnym eksperymencie (jego wyniki przedstawia Tabela 6) zbadano pokrycie uszkodzeń osiągalne przy ograniczonej pamięć danych testowych. Jako jednostkę ilości danych przyjęto liczbę stanów początkowych dekompresora EDT (ang. seed) mieszczących się w danym obszarze pamięci. Ostatnia część tabeli (Max) odnosi się do rozmiaru pamięci, który gwarantuje pełne pokrycie uszkodzeń (podane w ostatniej kolumnie Tabeli 4) z wykorzystaniem autotestowania deterministycznego. Na przykład dla układu D1, maksymalne pokrycie uszkodzeń 98.87% można uzyskać stosując autotestowanie deterministyczne z 107544-bitową pamięcią. W takiej samej pamięci można zapisać 636 skompresowanych wektorów testowych, które z kolei pozwalają uzyskać 97.1% pokrycia uszkodzeń. Otrzymane wyniki pokazują, że przy ograniczonej ilości danych testowych proponowane rozwiązanie uzyskuje znacznie wyższe pokrycie uszkodzeń niż technologia EDT. Rysunek 10: Pokrycie uszkodzeń w funkcji wprowadzonych wektorów testowych. 15

Rys. 10 przedstawia pokrycie uszkodzeń w funkcji liczby testów. Wykres ten dotyczy układu D1, jednak podobne charakterystyki zaobserwowano w pozostałych przypadkach. Krzywa w kolorze czarnym odpowiada autotestowaniu z użyciem 32000 pseudolosowych wektorów testowych. Czerwona i niebieska krzywa reprezentują odpowiednio opracowany schemat autotestowania oraz technologię EDT. Czas aplikacji testów oraz jakość testowania proponowanej metody są znacząco lepsze niż wyniki otrzymane przez autotestowanie pseudolosowe. Technologia EDT z kolei pozwala uzyskać docelowe pokrycie uszkodzeń w krótszym czasie niż autotestowanie deterministyczne, jednak wymaga znacznie większej (w tym przypadku 2.25 razy większej) pamięci. 4. Technologia TestExpress Jak pokazano w pierwszej sekcji, ilość danych testowych rośnie szybciej niż złożoność układów scalonych. W rozdziale 4. rozprawy zaprezentowano metodę bazującą na technologii ścieżki testującej, jednak zasadniczo różniącą się sposobem podawania wektorów testowych. W odróżnieniu od konwencjonalnego podejścia w zaproponowanym rozwiązaniu nie wszystkie ścieżki testujące wprowadzają dane testowe oraz nie wszystkie rejestrują odpowiedzi układu. Ponadto każda ze ścieżek testujących pracuje w jednym z trzech trybów: pobudzania, zapisu lub funkcjonalnym. Dodatkowo pobudzanie testowanego układu i rejestrowanie jego odpowiedzi odbywa się w każdym cyklu zegara, dzięki czemu proponowana metoda pozwala na podanie n razy większej liczby wektorów testowych w czasie potrzebnym do aplikacji jednego testu wykorzystując konwencjonalną n-bitową ścieżkę testującą. Rysunek 11: Technologia TestExpress. 16

Warto zauważyć, że proponowane rozwiązanie utrzymuje układ w trybie zbliżonym do funkcjonalnego z liczbą przełączeń na poziomie bliskim nominalnemu. Struktura nowego rozwiązania, nazwanego TestExpress [9], [13], została przedstawiona na Rys. 11. Każda ze ścieżek testujących jest dynamicznie przełączana w jeden z trzech trybów pracy za pomocą rejestru konfiguracyjnego. Ścieżki znajdujące się w trybie funkcjonalnym (M) nie biorą bezpośrednio udziału w testowaniu wykonują operacje zgodne z przeznaczeniem testowanego układu. Ścieżki pobudzające (S) odpowiedzialne są za pobieranie w każdym cyklu jednego bitu wektora testowego, przesuwając jednocześnie swoją zawartość o jedną pozycję w prawo. Ścieżki te jedynie pobudzają układ, nie zapisując jego odpowiedzi. Zbieranie odpowiedzi układu jest realizowane przez ścieżki rejestrujące (C). W każdym cyklu zapisują i akumulują aktualny stan układu. wysuwając pojedynczy bit do kompaktora odpowiedzi testowych. Zawartość ścieżek rejestrujących wykorzystywana jest w każdym cyklu jako nowy wektor testowy. Zaproponowana budowa przerzutnika testującego pozwala jednak wyłączyć tę funkcję. Przechowywane w pamięci testera dane są wprowadzane do dekompresora. Uzyskane po ekspansji wektory testowe są podawane następnie do ścieżek testujących znajdujących się w trybie pobudzania. Tester przechowuje także wartości rejestru sterującego, które mogą zostać wielokrotnie przeładowane w trakcie sesji testującej. Odpowiedni dobór konfiguracji ścieżek testujących pozwala zarządzać liczbą przełączeń w trakcie testowania. Dzięki temu, że zaproponowane algorytmy wyboru konfiguracji gwarantują wysoką jakość testu przy 80% udziale ścieżek testujących w trybie funkcjonalnym, przełączanie układu jest zbliżone do nominalnego. W celu zrealizowania ścieżki testującej obsługującej opisane wyżej tryby, zaproponowano nową strukturę przerzutnika testującego przedstawioną na Rys. 12. Wejście przerzutnika typu D stanowią dwa dwuwejściowe multipleksery. Wyzerowany Rysunek 12: Architektura przerzutnika testującego wykorzystanego w technologii TestExpress. 17

sygnał sterujący M1 wybiera tryb funkcjonalny i łączy przerzutnik z układem testowanym. Dla wartości sterujących M1M2 = 10, układ działa jak rejestr przesuwający, transportując dane testowe z wejścia SI podłączonego do poprzedniego przerzutnika testującego lub dekompresora w przypadku pierwszego elementu ścieżki testującej. Gdy M1M2 = 11, układ znajduje się w trybie rejestrowania odpowiedzi, a bramka XOR pozwala jednocześnie zapisać aktualną odpowiedź układu oraz wartość odpowiedzi testowej zapamiętanej w poprzednim przerzutniku. Opcjonalne wyjście układu Q(low power), sterowane przez bramki AND oraz NAND, umożliwia blokadę propagacji zarejestrowanych odpowiedzi z powrotem do testowanego układu, co pozwala na dodatkową redukcję przełączania. W odróżnieniu od rozwiązań konwencjonalnych, technologia TestExpress rozdziela funkcję sterowania i obserwacji do oddzielnych ścieżek testujących. Istotne znaczenie ma zatem sposób łączenia przerzutników w ścieżki testujące. Aby zapewnić wysoką jakość testowania, przynajmniej jeden przerzutnik testujący, do którego propaguje się uszkodzenie powinien znajdować się w innej ścieżce testującej niż wartości wymagane do jego pobudzenia. W rozprawie zaproponowano algorytm [12] operujący na grafie, którego wierzchołki stanowią elementy stanu układu. Jeżeli pomiędzy dwoma przerzutnikami istnieje połączenie przez część kombinacyjną układu, odpowiadające im wierzchołki są połączone krawędzią. W rozprawie wykazano, że problem tworzenia ścieżek testujących jest równoważny problemowi kolorowania grafu. Aby wszystkie ścieżki testujące miały porównywalną długość, zaproponowano również dedykowany algorytm ich równoważenia. Kolejnym elementem decydującym o jakości testu uzyskanego za pomocą TestExpress jest sposób wyboru konfiguracji ścieżek testujących [11], [7]. W rozprawie przedstawiono nowy algorytm, który dla zbioru wektorów testowych wygenerowanych dla pewnej liczby uszkodzeń wyodrębnia ścieżki testujące zawierające pobudzenie oraz elementy, do których propagują się uszkodzenia. Następnie, używając metody symulowanego wyżarzania [4], algorytm znajduje konfigurację, która pokrywa największą liczbę uszkodzeń. Rysunek 13: Generowanie wektorów testowych. 18

Każda utworzona konfiguracja jest przekazywana do specjalnie dostosowanego generatora wektorów testowych [8]. Zaproponowany algorytm znajduje w pierwszym kroku testy dla pewnej grupy uszkodzeń. Następnie dokonuje scalenia kompatybilnych wektorów testowych z uwzględnieniem możliwości ich aplikacji w każdym cyklu zegara. Rys. 13 przedstawia procedurę łączenia przykładowych testów Tabela 8: Przełączanie. Tryb pobudzania Tryb rejestrowania Tryb funkcjonalny Średnia ważona D1 48,27% 49,17% 12,95% 20% D2 49,74% 48,54% 12,75% 20% D3 49,64% 48,58% 6,15% 15% D4 49,37% 48,96% 12,37% 20% D5 49,56% 48,10% 3,32% 12% L. bramke Tabela 7: Charakterystyki układów. L. elementów stanu L. ścieżek testujących Najdłuższa ścieżka testująca L. uskodzeń D1 2.6M 165k 1,142 158 4.5M D2 1.6M 145k 735 200 1.9M D3 1.1M 85k 433 200 2.0M D4 450k 45k 230 200 0.7M D5 475k 30k 195 150 0.6M t0, t1, t2 oraz t3. W pierwszym cyklu do wynikowego wektora testowego włączane jest pobudzenie t0 oraz t1. W kolejnym cyklu zawartość ścieżki testującej jest przesuwana w prawo, dzięki czemu wektor t2 staje się kompatybilny z wynikiem poprzedniego scalenia. Analogicznie, w kolejnym cyklu, t3 zostaje dołączony do testu. Wynikowy wektor testowy składa się ostatecznie z 7 bitów dwóch uzyskanych w omówionych wyżej cyklach oraz pięciu, które pozostały w buforze. Opracowane metody zostały zweryfikowane eksperymentalnie z użyciem pięciu produkowanych współcześnie układów cyfrowych, których charakterystykę przedstawia Tabela 7. Dla każdego układu podano kolejno informacje o liczbie bramek logicznych, elementów pamięci, ścieżek testujących, długości ścieżek testujących oraz o liczbie modelowanych uszkodzeń. W pierwszym eksperymencie zbadano liczbę przełączeń stanu występujących w każdej ścieżce testującej w stosunku do teoretycznego maksimum. Wyniki dla wszystkich trybów pracy zebrano w kolejnych kolumnach Tabeli 8. Ostatnia kolumna zawiera średnie przełączanie obserwowanego w układzie. Nowe rozwiązanie pozwala na zmniejszenie przełączania do poziomu poniżej 20%, co oznacza ponad dwukrotną redukcję w porównaniu z konwencjonalną ścieżką testującą. 19

Rys. 14 przedstawia wykresy pokrycia uszkodzeń w funkcji czasu testowania. Na każdym wykresie pokazano cztery krzywe oznaczone jako 1, 2, 3 i 4. Krzywa (1) reprezentuje pokrycie uzyskane dla konwencjonalnej ścieżki testującej i środowiska EDT. Kolejne krzywe odpowiadają następującym scenariuszom wykorzystania technologii TestExpress: (2) - częstotliwość wprowadzania wektorów testowych pozostaje niezmieniona w stosunku do konwencjonalnej ścieżki testującej; (3) - wprowadzanie wektorów testowych z jednoczesnym wysuwaniem odpowiedzi uzyskanych dla poprzedniego pobudzenia (podejście to zakłada istnienie dodatkowego rejestru konfiguracyjnego); (4) - podawanie testu podobnie jak w przypadku (3) jednak z podwojoną częstotliwością zegara, możliwą do uzyskania dzięki ponad dwukrotnej redukcji współczynnika przełączania. Stosując konwencjonalną ścieżkę testującą, układ D1 osiąga docelowe pokrycie uszkodzeń po 3611 s. W najlepszym przypadku (4) TestExpress osiąga ten sam wynik 4.18x szybciej (po 863 s). Szczegółowe wyniki dla wykonanych eksperymentów zebrano w Tabeli 10. Kolejne kolumny od (1) do (4) podają, dla każdego z powyższych scenariuszy, czas potrzebny do osiągnięcia docelowego pokrycia oraz przyspieszenie w stosunku do podejścia (1). Kolejne kolumny informują o liczbie konfiguracji oraz redukcji ilości danych testowych w porównaniu z konwencjonalną strukturą ścieżki testującej. Tabela 9: Redukcja czasu i ilości danych. D1 D2 D3 D4 D5 Czas testowania [μs] i przyspieszenie (1) (2) (3) (4) 3611 1878 1726 863 1,00x 1,92x 2,09x 4,18x 1156 1065 829 414 1,00x 1,09x 1,39x 2,79x 2641 1520 1252 626 1,00x 1,95x 2,44x 4,88x 1284 889 654 327 1,00x 1,44x 1,96x 3,93x 732 773 614 307 1,00x 0,95x 1,19x 2,38x Liczba konfiguracji Redukcja danych testowych 49 1,86x 60 1,15x 68 1,92x 62 1,80x 54 1,11x 20

D1 D4 D2 D5 D3 Rysunek 14: Pokrycie uszkodzeń w funkcji czasu. 5. Podsumowanie W rozprawie zaproponowano nowe metody testowania układów cyfrowych wielkiej skali integracji, które zdaniem autora pomagają rozwiązać aktualne i przyszłe problemy ograniczające efektywność stosowanych współcześnie rozwiązań. W pierwszej części pracy zaproponowano nowy generator testów pseudolosowych z programowalną kontrolą liczby przełączeń w wyjściowych wektorach testowych. 21

Ponadto umożliwia on aplikację deterministycznych danych testowych przy zachowaniu ograniczonej aktywności układu. Połączenie zalet obu rozwiązań pozwala elastycznie kształtować koszt i jakość testowania na każdym etapie produkcji i życia układu. W dalszej kolejności zaprezentowano metodę autotestowania deterministycznego przeznaczoną dla urządzeń o krytycznym znaczeniu dla zdrowia lub bezpieczeństwa, wymagających najwyższej jakości testu przez cały okres działania urządzenia. Nowe podejście umożliwia osiągnięcie bardzo wysokiej kompresji danych testowych co pozwala na ich przechowywanie we wbudowanej pamięci. W ostatniej części pracy zaproponowano rozwiązanie istotnie zwiększające efektywność wykorzystania czasu testowania w porównaniu z powszechnie stosowanymi metodami. Nowe podejście umożliwia aplikację deterministycznych wektorów testowych oraz rejestrację odpowiedzi układu w każdym cyklu zegara, co z kolei oznacza możliwość użycia wielokrotnie większej liczby wektorów testowych niż było to możliwe dotychczas przy założonych ograniczeniach czasowych. Wszystkie rozwiązania przedstawione w pracy zostały zweryfikowane i potwierdzone w trakcie badań eksperymentalnych przeprowadzonych z wykorzystaniem aktualnie wytwarzanych układów i systemów cyfrowych oraz opracowanego przez autora oryginalnego oprogramowania będącego nietrywialnym rozszerzeniem istniejących narzędzi komercyjnych. 22

6. Bibliografia [1] M. Filipek, G. Mrugalski, N. Mukherjee, B. Nadeau-Dostie, J. Rajski, J. Solecki, and J. Tyszer, "Low-power programmable PRPG with test compression capabilities," IEEE Trans. VLSI Systems, vol. 23, no. 6, pp. 1063-1076, June 2015. [2] P. Girard, N. Nicolici, and X. Wen (ed.), Power-aware testing and test strategies for low power devices. New York: Springer, 2010. [3] "IEEE draft standard for access and control of instrumentation embedded within a semiconductor device," IEEE Association, Sept. 2014. [4] S. Kirkpatrick, C. D. Gelatt Jr., and M. P. Vecchi, "Optimization by simulated annealing," Science, vol. 220, no. 4598, pp. 671-680, May 1983. [5] G. E. Moore, "Cramming more components onto integrated circuits," Electronics, vol. 38, no. 8, pp. 114-117, Apr. 1965. [6] G. Mrugalski, N. Mukherjee, J. Rajski, J. Solecki, and J. Tyszer, "Low power programmable PRPG with enhanced fault coverage gradient," in Proc. ITC, 2012, paper 9.3. [7] G. Mrugalski, J. Rajski, J.Solecki, and J.Tyszer, "Scan chain configuration for test-per-clock based on circuit topology," US Patent 9009553, 2015. [8] G. Mrugalski, J. Rajski, J.Solecki, and J.Tyszer, "Test generation for testper-clock," US Patent Application No. 20140372824, 2014. [9] G. Mrugalski, J. Rajski, J.Solecki, and J.Tyszer, "Test-per-clock based on dynamically-partitioned reconfigurable scan chains," US Patent Application No. 20140372818, 2014. [10] G. Mrugalski, J. Rajski, Ł. Rybak, J. Solecki, and J. Tyszer, "A deterministic BIST scheme based on EDT-compressed test patterns," in Accepted for IEEE ITC, 2015. [11] G. Mrugalski, J. Rajski, J. Solecki, and J. Tyszer, "Fault-driven scan chain configuration for test-per-clock," US Patent 9003248, 2015. [12] G. Mrugalski, J. Rajski, J. Solecki, and J. Tyszer, "Scan chain stitching for test-per-clock," US Patent Application No. 20140372821, 2014. [13] G. Mrugalski, J. Rajski, J. Solecki, J. Tyszer, and C. Wang, "TestExpress - new time-effective scan-based deterministic test paradigm," Submitted to IEEE Trans. CAD, 2015. 23

[14] J. Rajski, J. Tyszer, M. Kassab, and N. Mukherjee, "Embedded deterministic test," IEEE Trans. CAD, vol. 23, no. 5, pp. 776-792, May 2004. [15] K.-H. Tsai, J. Rajski, and M. Marek-Sadowska, "Star test: the theory and its applications," IEEE Trans. CAD, vol. 19, no. 9, pp. 1052-1064, Sept. 2000. [16] L.-T. Wang, C.-W. Wu, and X. (ed.) Wen, VLSI test principles and architectures: design for testability. San Francisco, CA: Morgan Kaufmann Publishers Inc., 2006. [17] Y. Zorian, "A distributed BIST control scheme for compex VLSI devices," in Proc. VTS, 1993, pp. 4-9. 24