POLITECHNIKA POZNAŃSKA



Podobne dokumenty
Magistrala JTAG (metoda testowania / programowania)

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

mgr inż. Tadeusz Andrzejewski JTAG Joint Test Action Group

Metody testowania Magistrala JTAG

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Laboratorium przedmiotu Technika Cyfrowa

Technika Cyfrowa i Mikroprocesory

LICZNIKI Liczniki scalone serii 749x

PROGRAMOWALNE STEROWNIKI LOGICZNE

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

To jeszcze prostsze, MMcc1100!

Statyczne badanie przerzutników - ćwiczenie 3

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

dokument DOK wersja 1.0

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

Automatyczne testowanie w układach FPGA

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.

LEKCJA TEMAT: Zasada działania komputera.

Systemy operacyjne I Laboratorium Część 3: Windows XP

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

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Instrukcja do oprogramowania ENAP DEC-1

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

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

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

Liczniki, rejestry lab. 07 Układy sekwencyjne cz. 1

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

Układy kombinacyjne. cz.2

Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Opracował: Jan Front

Programowanie Mikrokontrolerów

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

Aby pobrać program FotoSender naleŝy na stronę lub i kliknąć na link Program do wysyłki zdjęć Internetem.

Systemy uruchomieniowe

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Podział układów cyfrowych. rkijanka

Technika Mikroprocesorowa

Metody obsługi zdarzeń

Ćw. 7: Układy sekwencyjne

Dokumentacja sterownika mikroprocesorowego "MIKSTER MCC 026"

Elementy cyfrowe i układy logiczne

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

POLITECHNIKA SZCZECIŃSKA WYDZIAŁ ELEKTRYCZNY

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

LICZNIKI PODZIAŁ I PARAMETRY

1. Instalacja systemu Integra 7

Wyjście do drukarki Centronix

POLITECHNIKA SZCZECIŃSKA WYDZIAŁ ELEKTRYCZNY

TECH-AGRO B ę d z i n

POWIADOMIENIE SMS ALBATROSS S2. Opis aplikacji do programowania

Rejestratory Sił, Naprężeń.

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

KORZYSTANIE Z CERTYFIKATU KWALIFIKOWANEGO W PROGRAMIE PŁATNIK

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

POLITECHNIKA SZCZECIŃSKA WYDZIAŁ ELEKTRYCZNY

Modułowy programowalny przekaźnik czasowy firmy Aniro.

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

Mikroprocesor Operacje wejścia / wyjścia

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

WSCAD. Wykład 5 Szafy sterownicze

Kontrakty zakupowe. PC-Market

SML3 październik

Architektura komputerów

Standard transmisji równoległej LPT Centronics

Dodatek do instrukcji. (wersja z partycjami)

Politechnika Gdańska. Gdańsk, 2016

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

UKŁADY MIKROPROGRAMOWALNE

Instrukcja Instalacji

Parametryzacja przetworników analogowocyfrowych

Opis szybkiego uruchomienia programu APBSoft

Architektura komputerów

Konsola operatora TKombajn

Multimetr cyfrowy VA18B Instrukcja instalacji i obsługi. oprogramowania PC-LINK

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Technika mikroprocesorowa. Konsola do gier

Współpraca Integry z programami zewnętrznymi

Interface sieci RS485

Podstawy obsługi aplikacji Generator Wniosków Płatniczych

Prezentacja systemu RTLinux

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

Rozdział 2. Konfiguracja środowiska pracy uŝytkownika

Konfiguracja programu pocztowego Outlook Express i toŝsamości.

Instrukcja obsługi Konfigurator MLAN-1000

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

Programowanie w językach asemblera i C

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE

Program Dokumenty zbiorcze dla Subiekta GT.

POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRYCZNY KATEDRA ENERGOELEKTRYKI LABORATORIUM INTELIGENTNYCH INSTALACJI ELEKTRYCZNYCH

POWIADOMIENIE SMS ALBATROSS S2. Opis aplikacji do programowania

1 Moduł Neuronu Cyfrowego

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

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

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

FAQ: /PL Data: 26/11/2008 Komunikacja w protokole MPI za pomocą Global Data (GD) pomiędzy sterownikami S7-300

Transkrypt:

1. Wstęp POLITECHNIKA POZNAŃSKA Raport RB 016/02 Testowanie układów i pakietów cyfrowych metodą ścieŝki brzegowej wg IEEE 1491.1 (Interfejs JTAG) Zygmunt Kubiak INSTYTUT INFORMATYKI Piotrowo 3a, 60-965 Poznań 3

1. Wstęp Spis treści 1. Wstęp... 3 2. Magistrala ułatwionego testowania IEEE 1149.1... 5 2.1. Szczegóły sprzęgu IEEE 1149.1... 6 3. Rodzina SCOPE - produkty firmy Texas Instruments... 16 3.1. Wprowadzenie... 16 3.2. Biblioteka komórek do projektów ASIC... 17 3.3. Układy cyfrowe typu OCTALS... 19 3.4. Rodzina mikroprocesorów sygnałowych... 24 3.5. Układy cyfrowe pomocnicze... 25 4. Program ilustrujący metodę testowania, według standardu IEEE 1149.1.. 28 4.1. Struktura programu... 28 4.2. Obsługa programu... 31 4.3. Przykłady funkcjonowania programu... 33 5. Podsumowanie... 38 6. Literatura... 41 4

1. Wstęp 1. Wstęp Klasyczne metody testowania, tzn. testowanie wewnątrzobwodowe i testowanie funkcjonalne straciły swoje znaczenie na skutek wprowadzenia nowych technologii w produkcji układów scalonych takich jak obudowy (odstępy między wyprowadzeniami mniejsze od 0,1 cala), sposoby montaŝu (układy SMD montaŝ powierzchniowy) oraz znaczny wzrostu złoŝoności układów scalonych. Wczoraj Dziś Jutro? Rys. 1.1. Rozwój nowych technologii w produkcji układów scalonych utrudnia dostęp do elementów Przyczyny te sprawiły, Ŝe zaczęto poszukiwać nowych metod ułatwiających testowanie, czego efektem jest na dzień dzisiejszy standard IEEE 1149. Producenci układów i systemów cyfrowych wbudowują juŝ dzisiaj w produkowane struktury krzemowe układów scalonych ASIC i w pakiety cyfrowe sprzęgi ułatwiające testowanie zgodne ze standardem IEEE 1149. Najlepszym przykładem na rozwój tego kierunku jest opracowanie rodziny SCOPE (ang. System Controllability, Observability and Partitioning Environment) firmy Texas Instruments. Do rodziny SCOPE naleŝy biblioteka gotowych matryc bramkowych i standardowych komórek TSG 500 dla systemu automatycznej syntezy sprzęgu IEEE 1149.1 w układach scalonych ASIC. Texas Instruments wprowadził takŝe na rynek (w ramach rodziny SCOPE) całą gamę układów scalonych (74ACT8990, 74ACT8997, 74ACT8999, 74BCT8244, 74BCT8245, 74BCT8373, 74BCT8374 itp.) umoŝliwiających instalowanie sprzęgu IEEE 1149.1 na pakietach zbudowanych ze standardowych układów cyfrowych. Podobnie firma Logical Solutions Technology Inc. produkuje standardowe układy scalone, umoŝliwiające sprzętową implementację na pakiecie, sprzęgu IEEE 1149.3. Texas Instruments oferuje ponadto system ASSET (ang. Advanced Support System for Emulation and Test) do wspomagania uruchamiania i testowania pakietów cyfrowych wyposaŝonych w 5

1. Wstęp sprzęg IEEE 1149.1. Magistrala szeregowa, zgodna z normą IEEE 1149.1 została opracowana przez zespół firm europejskich i amerykańskich zrzeszonych w grupie JTAG (Joint Test Action Group). SłuŜy do szeregowego przesyłania danych testowania z testera zewnętrznego do testowanego układu cyfrowego za pomocą linii SI (ang. Scan In) oraz z testowanego układu cyfrowego do testera zewnętrznego za pomocą linii SO (ang. Scan Out). Tester zewnętrzny linią SI moŝe takŝe przesyłać do testowanego układu cyfrowego słowo sterujące ustawiające róŝne tryby testowania. Na pozostałych liniach magistrali ułatwiającej testowanie są wysyłane z testera zewnętrznego do testowanego układu cyfrowego następujące sygnały: włącz/wyłącz testowanie, zegar sterujący testowaniem, włącz/wyłącz przesyłanie szeregowe. Interfejs, wkomponowany w architekturę testowanego układu cyfrowego, zawiera rejestr wejściowy brzegowej ścieŝki sterująco-obserwacyjnej, rejestr wyjściowy brzegowej ścieŝki sterująco-obserwacyjnej, oraz układ sterowania sprzęgu. Wewnętrzne magistrale tego sprzęgu umoŝliwiają testerowi zewnętrznemu nawiązanie komunikacji odpowiednio z rejestrem wejściowym i wyjściowym brzegowej ścieŝki sterująco-obserwacyjnej oraz z testerem wewnętrznym i/lub dodatkową logiką ułatwiającą testowanie (samotestowanie). Takie wielkie firmy jak Hewlett-Packard, Texas Instruments, IBM, Philips, Ferranti, Siemens, Thomson-CSF, Honeywell, Ericsson, NEC Corn i około 200 innych połączyły swoje wysiłki na rzecz zaakceptowania standardu JTAG przez większość firm produkujących układy scalone, pakiety i systemy cyfrowe oraz sprzęt testujący. Podkomitet techniczny międzynarodowego zespołu JTAG zabiegał o zaakceptowanie projektu standardu przez komitet ds. standaryzacji przy IEEE Computer Society. Równocześnie członkowie tej grupy prowadzili dyskusje z amerykańską grupą pracującą nad magistralą TM-ETM i grupą, która opracowała magistralę TURINO i takŝe czyniła starania stworzenia z niej standardu międzynarodowego. Dyskusje te doprowadziły do zorganizowania pod koniec lat osiemdziesiątych w ramach komitetu ds. standaryzacji przy IEEE Computer Society kilku grup roboczych mających na celu opracowanie standardu sprzęgu i magistrali ułatwionego testowania, która łączy zalety zarówno magistrali JTAG, magistrali TM-ETM, jak i magistrali TURINO. Powstały grupy robocze do spraw następujących zagadnień: IEEE 1149.0 standardu magistrali ułatwiającej testowanie (ang. standard testability bus); IEEE 1149.1 standardu architektury brzegowej ścieŝki sterująco-obserwacyjnej i sterownika dostępu do testowania (ang. standard test accesspon and boundary-scan architecture), IEEE 1149.2 standardu rozszerzonego cyfrowego sprzęgu zapewniającego dostęp szeregowy (ang. extended serial digital interface), 6

IEEE 1149.3 IEEE 1149.4 IEEE 1149.5 standardu cyfrowego sprzęgu zapewniającego równoległy dostęp na bieŝąco (ang. real time parallel digital interface), standardu sprzęgu dla sygnałów analogowych (ang. analog interface), standardu magistrali testowania i obsługi panelu (ang. test and maintenance backplane bus). 2. Magistrala ułatwionego testowania IEEE 1149.1 Sygnały magistrali ułatwionego testowania IEEE 1149.1 moŝna podzielić wg ich funkcji na następujące główne grupy: sterowania rodzajem testowania TRST* (ang. Test ReSeT) inicjalizuje wszystkie układy sprzegu ułatwiającego testowanie, (ang. Test Mode Selection) wejście szeregowe wyboru rodzaju testowania, wejścia/wyjścia dla danych diagnostycznych (ang. Test Data In) wejście danych przesyłanych szeregowo (ang. Test Data Out) wyjście danych przesyłanych szeregowo, zegarowe (ang. Test ClocK) wejście zegarowe dla sygnałów,,. Magistrala ułatwionego testowania IEEE 1149.1 ma sygnał zegarowy, który jest uŝywany do sterowania operacji związanych z szeregowym wprowadzaniem i wyprowadzaniem danych oraz związanych z rodzajem pracy. Dane na magistrali IEEE 1149.1 są szeregowe, tzn. zanim zostaną uŝyte jako pobudzenie lub odpowiedź testowanego układu, są najpierw wprowadzane do ścieŝki sterującoobserwacyjnej. W związku z tym dane te nie sterują na bieŝąco (ang. real time) zaadresowanymi węzłami testowanego urządzenia, jak równieŝ nie są na bieŝąco pobierane z zaadresowanych punktów obserwacyjnych, jak ma to miejsce przy przesyłaniu danych na bieŝąco (dane bieŝące są przesyłane bezpośrednio do/z zaadresowanych punktów bez pośrednictwa ścieŝki sterująco-obserwacyjnej). W związku z tym wejścia i wyjścia w opisywanej magistrali, są nazywane wejściami/wyjściami szeregowymi (, ). Interfejs IEEE 1149.1 nazywany podzbiorem minimalnym MSDS (ang. Minimum Serial Digital Subset) zapewniający dostęp szeregowy do węzłów testowanego układu lub pakietu, oprócz opisanych sygnałów, oraz zawiera takŝe sygnał. Ten szeregowo wprowadzony sygnał informuje o poŝądanym trybie pracy, moŝe być takŝe uŝyty do konfigurowania układów ułatwiających testowanie. Dane z wejścia są wprowadzane szeregowo w odpowiedzi na narastające zbocze sygnału. Co najmniej jedna linia 7

jest niezbędna w podzbiorze MSDS (patrz rys. 2.14 a,b,c). Ostatnim i nie zawsze stosowanym sygnałem podzbioru MSDS jest sygnał TRST*, który słuŝy do zerowania układów sprzęgu ułatwiającego testowanie. Gwiazdka przy nazwie tego sygnału informuje, Ŝe sygnał ten jest aktywny w stanie niskim. Podzbiór MSDS moŝe takŝe słuŝyć do wyprowadzania danych na zewnątrz, które to dane zostały zebrane przez inny podzbiór mający moŝliwość pracy na bieŝąco. UŜycie przetworników A/C i C/A do przetwarzania sygnałów analogowych na format MSDS jest takŝe moŝliwe. Wreszcie w sytuacjach, w których jest to niezbędne, moŝliwe jest uŝycie magistrali innej niŝ opisywanej tu magistrali IEEE 1149.1, a następnie wykonanie odpowiedniej konwersji danych i sygnałów. W praktyce podzbiór MSDS (4 linie) jest najczęściej stosowany na poziomie struktury lub układu scalonego, gdzie trudno jest uzyskać dodatkowe wyprowadzenia. 2.1. Szczegóły sprzęgu IEEE 1149.1 Na rysunku 2.1. przedstawiono strukturę układu scalonego wyposaŝonego w ścieŝkę brzegową. Składa się on z układu pierwotnego, realizującego funkcje uŝytkowe, otoczonego rejestrami brzegowymi: wejściowym i wyjściowym. Rys. 2.1. Struktura układu wyposaŝonego w ścieŝkę brzegową. Organizacja pojedynczej komórki rejestru brzegowego Na rys. 2.2 przedstawiono bardziej szczegółowo architekturę rozszerzenia układu scalonego ułatwiającą testowanie zgodnie z normą IEEE 1149.1. Rejestry danych: brzegowy, obejściowy i inne opcjonalne tworzą szeregową ścieŝkę danych wewnątrz elementu. Osobną, alternatywną ścieŝkę tworzy rejestr instrukcji. 4

Układ pierwotny Opcjonalne rejestry danych Rejestr obejściowy D Rejestr instrukcji Bufor Sterownik TAP Magistrala IEEE 1149.1 Rys. 2.2. Architektura układu scalonego wyposaŝonego w ścieŝkę brzegową według standardu IEEE 1149.1 Komunikacja z rejestrem brzegowym i pozostałymi elementami zarządzającymi procesem testowania odbywa się szeregowo, za pomocą czteroprzewodowej magistrali IEEE 1149.1. Cały proces szeregowego przesyłania informacji jest sterowany sygnałem interpretowanym w sterowniku TAP (ang. Test Access Port controller). Jest on jednowejściowym układem synchronicznymi o 16 stanach, w którym kaŝda zmiana stanu następuje na narastającym zboczu w sposób określony na rys. 2.3. Na rys. 2.4 przedstawiono schemat wyjść łączących sterownik TAP, na którym połączony jest ze sobą rejestr instrukcji i rejestr danych. 5

=1 =0 =0 Run-Test/ Idle =1 Select-DR Scan =0 =1 =1 Select-IR Scan =0 Capture DR =0 =1 Capture IR =0 =1 =0 Shift-DR =1 =0 Shift-IR =1 =1 Exit1-DR =1 Exit1-IR =0 =0 Pause-DR =0 =0 Pause-IR =1 =1 Exit2-DR =0 Exit2-IR =0 =1 =1 =1 Update-DR =0 =1 Update-IR =0 Komunikacja z rejestrem danych Komunikacja z rejestrem instrukcji Rys. 2.3. Diagram stanów sterownika TAP Rys. 2.4 Schemat wyjść łączących Sterownik TAP 6

Sterownik TAP moŝna wprowadzić w następujące stany: Test-Logic-Reset, w którym testowanie jest wyłączone, a układ pierwotny spełnia swoje normalne funkcje uŝytkowe; Run-Test/Idle, w którym następuje wykonanie samotestowania (Run-Test) albo jest stanem spoczynkowym (Idle); komunikacji z rejestrem danych o zapamiętanie odpowiedzi na test (Capture-DR), o szeregowe przesłanie odpowiedzi do testera (stany Shift-DR) a jednocześnie wpisanie nowych pobudzeń, o uaktualnienie kopii rejestru podanie nowych pobudzeń (Update-DR); komunikacji z rejestrem instrukcji o zapamiętanie statusu (Capture-IR), o szeregowe wysłanie statusu do testera (stany Shift-IR) a jednocześnie wpisanie nowej instrukcji, o uaktualnienie rejestru kopii zmiana instrukcji (Update-IR); pomocnicze Exit, Pause umoŝliwiające czasowe wstrzymanie komunikacji szeregowej, np. w celu pobrania/wpisu danych z/do zewnętrznej pamięci masowej. Pracą rejestrów danych, oprócz sterownika TAP, steruje rejestr instrukcji, składający się z rejestru przesuwającego i rejestru kopii. Zilustrowano to na rys. 2.4. Sygnały ze sterownika TAP: - Zapamiętanie stanu w rejestrze przesuwającym - Przesuwanie informacji (od do ) - Uaktualnienie rejestru kopii (zmiana instrukcji) Pewne sygnały z układu testowanego STATUS = S n-1 S n-2... S 2 0 1 Rejestr przesuwający Rejestr kopii BieŜąca instrukcja Rys. 2.4. Praca rejestru instrukcji Dzięki zastosowaniu rejestru kopii bieŝąca instrukcja zmienia się tylko w chwilach określonych przez sygnały sterownika TAP, eliminując w ten sposób stany przejściowe, występujące podczas transmisji szeregowej. Rejestr instrukcji umoŝliwia rejestrację i odczyt słowa statusu w postaci pewnych sygnałów pochodzących z układu pierwotnego jako słowa statusu. MoŜe ono zawierać na przykład informację o wyniku samotestowania. Dwa bity statusu najbliŝsze wyjścia są ustalone i równe odpowiednio 0 i l. Przesuwanie takiej 7

kombinacji bitów umoŝliwia wykrycie i lokalizację uszkodzeń w szeregowej ścieŝce (por. rys. 2.8). Instrukcja zawarta w rejestrze instrukcji wybiera odpowiedni rejestr danych. Układ scalony zgodny ze standardem IEEE 1149.1 zawiera następujące rejestry danych: rejestr brzegowy (ang. boundary register), rejestr obejściowy (ang. bypass register), opcjonalnie dodatkowe rejestry danych (ang. optional data registers), np. rejestr identyfikacji (ang. device identification register). Na rysunku 2.5 pokazano ideę pracy rejestru brzegowego. Sygnały sterujące jego pracą pochodzą ze sterownika TAP i z rejestru instrukcji. Wejście rejestru brzegowego (obserwacja odpowiedzi) Sygnały ze sterownika TAP: - Zapamiętanie stanu wejść w rejestrze przesuwającym - Przesuwanie informacji (od do ) Rejestr przesuwający Rejestr kopii - Uaktualnienie rejestru kopii (zmiana instrukcji) Sygnały sterujące pochodzące z rejestru instrukcji: - Rozcinanie połączeń między wejściami i wyjściami - Konfigurowanie rejestru przesuwającego w rejestr LFSR lub MISR Wyjście rejestru brzegowego (generacja pobudzeń) Rys. 2.5. Praca rejestru brzegowego Wejście Syganł lub do następnej komórki Wyjście D D Sygnał lub z poprzedniej komórki Zegar Wpis przesuwania Uaktualnienie kopii Rodzaj pracy rejestru brzegowego Rys. 2.6. Przykładowy schemat komórki rejestru brzegowego 8

W układach scalonych rejestr brzegowy buduje się z komórek, z których kaŝda obsługuje jedno wyprowadzenie. Pozwala to na elastyczne budowanie rejestrów brzegowych o róŝnej długości, a takŝe na minimalizację powierzchni krzemu przez umieszczenie komórek w miejscach buforów wejściowych i wyjściowych. Schemat logiczny takiej komórki przedstawia rys. 2.6. a) SI SO TUSO Test TUCA Odpowiedź TUSO Test TUCA Odpowiedź TUSO Układ scalony ASIC Układ scalony ASIC b) SI SO TUSO Odpowiedź TUCA Test TUSO Odpowiedź TUCA Test TUSO Układ scalony ASIC Układ scalony ASIC c) SI SO TUSO Odpowiedź TUCA Odpowiedź TUSO Odpowiedź TUCA Odpowiedź TUSO Układ scalony ASIC Układ scalony ASIC Rys. 2.7. Rodzaje testowania realizowane za pomocą sprzęgu JTAG: a) testowanie wewnętrzne, b) testowanie zewnętrzne, c) testowanie na bieŝąco; TUSO testowane układy scalone z otoczenia elementów ASIC; TUCA testowany układ cyfrowy zawarty w elemencie scalonym ASIC Standard IEEE 1149.1 definiuje trzy podstawowe instrukcje wybierające rejestr brzegowy: INTEST (rys. 2.12), EXTEST (rys. 2.11) i SAMPLE (rys. 2.10). UmoŜliwiają one realizację przedstawionych na rys. 2.7 rodzajów testowania: 9

wewnętrznym, podczas którego jest realizowane testowanie układu scalonego TUCA zawartego w elemencie scalonym ASIC (rys. 2.7a); zewnętrznym, podczas którego jest testowana logika TUSO czyli otoczenia układów scalonych (rys. 2.7b); na bieŝąco, które jest realizowane podczas normalnej pracy systemu cyfrowego (rys. 2.7c) i polega na okresowym sondowaniu i sprawdzaniu, czy układy scalone i ich otoczenie funkcjonują zgodnie z załoŝonym algorytmem przetwarzania informacji. Tryb testowania wewnętrznego moŝna stosować podczas weryfikacji prototypu struktury, podczas testowania struktur na płytce krzemowej oraz połączeń struktur z ich obudowami (tzw. testowanie końcowe), jak równieŝ podczas testowania indywidualnych układów scalonych na pakiecie (indywidualnych struktur w module wielostrukturowym). Tryb testowania zewnętrznego i na bieŝąco moŝna stosować w czasie testowania pakietów (modułów) zarówno u ich producenta, jak i uŝytkownika. Testowanie jednego wybranego, za pomocą instrukcji INTEST (rys. 2.12) układu scalonego, często wymaga czasochłonnego przesłania przez szeregową ścieŝkę duŝej liczby pobudzeń i odpowiedzi. Zatem na pakiecie zawierającym wiele elementów naleŝy dąŝyć do wyłączenia zbędnych rejestrów brzegowych ze ścieŝki. Zadanie to umoŝliwia instrukcja BYPASS (rys. 2.9). Włącza ona jednobitowe rejestry obejściowe zamiast rejestrów brzegowych (rys. 2.8). W stanie Capture-DR rejestry obejściowe wpisują wartość 0, a w stanach Shift-DR uczestniczą w szeregowym przesyłaniu danych. Pierwszą wysuniętą daną z elementu jest 0, potem zaś na wyjściu pojawiają się dane z wejścia opóźnione o jeden bit. Rys. 2.8. Zastosowanie rejestru obejściowego Wybierany za pomocą instrukcji IDCODE (rys. 2.14) 32-bitowy rejestr identyfikacji umoŝliwia sprawdzenie toŝsamości elementu przez odczytanie jego kodu. Postać kodu elementu jest szczegółowo określona przez standard IEEE 1149.1. Rejestr identyfikacji jest opcjonalny. Jego brak moŝna określić badając pierwszy bit danych wysuniętych z danego układu scalonego. JeŜeli bit ten przyjmuje wartość l, to następne 31 bitów będzie zawartością rejestru identyfikacji, w przeciwnym razie w danym układzie scalonym nie zaimplementowano rejestru identyfikacji i instrukcja wybrała rejestr obejściowy. 10

Dodatkowe opcjonalne rejestry danych i operujące na nich instrukcje umoŝliwiają rozszerzenie trybów testowania elementu. W standardzie IEEE 1149.1 zdefiniowano równieŝ instrukcję RUNBIST (rys. 2.13), powodującą wykonanie samotestowania danego elementu. ChociaŜ nie jest zdefiniowane miejsce i postać końcowej sygnatury sprawnego elementu, to wymaga się, aby układ podczas samotestowania był wyizolowany z otoczenia i nie zakłócał go. W tablicy 2.1. podsumowano zdefiniowane przez standard IEEE 1149.1 instrukcje. Tablica 2.1 Instrukcje zdefiniowane przez standard IEEE 1149.1. Nazwa instrukcji Kod instrukcji Czy jest obowiązkowa Wybrany rejestr EXTEST 000..00 tak brzegowy INTEST dowolny nie brzegowy SAMPLE dowolny tak brzegowy BYPASS 111..11 tak obejściowy IDCODE dowolny nie identyfikacyjny RUNBIST dowolny nie brzegowy Funkcje spełnione przez wybrany rejestr zadaje/odbiera pobudzenie testowe do/z otoczenia zadaje/odbiera pobudzenie testowe do/z układu pierwotnego próbkuje układy na wyprowadzeniach układu stanowi jednobitowe obejście rejestru brzegowego wpisuje i wysuwa szeregowo kod elementu izoluje samotestujący się układ od otoczenia Boundary Scan Register Boundary Scan Register CORE LOGIC CORE LOGIC Device ID Device ID Bypass Bypass TAP Instruction TAP Instruction Rys. 2.9. Instrukcja BYPASS Rys. 2.10. Instrukcja SAMPLE/PRELOAD 11

Boundary Scan Register Boundary Scan Register CORE LOGIC CORE LOGIC Device ID Device ID Bypass Bypass TAP Instruction TAP Instruction Rys. 2.11. Instrukcja EXTEST Rys. 2.12. Instrukcja INTEST Boundary Scan Register Boundary Scan Register CORE LOGIC CORE LOGIC GO/NO GO Device ID Device ID Bypass Bypass TAP Instruction TAP Instruction Rys. 2.13. Instrukcja RUNBIST Rys. 2.14. Instrukcja IDCODE Elementy wyposaŝone w ścieŝkę brzegową na poziomie pakietu mogą być łączone na róŝne sposoby (rys. 2.15). W wyniku powstaje kilka rodzajów magistral ułatwiających testowanie na poziomie pakietu. Najprostsza jest konfiguracja szeregowa (rys. 2.15a). Jej wadą jest wraŝliwość na uszkodzenia w ścieŝce danych. Konfiguracja mieszana (rys. 2.15b) potrzebuje pary sygnałów sterujących 1 i 2, które zapewniają przesuwanie tylko w jednej ścieŝce w danej chwili. Stosuje się przy tym trzeci stan bufora na wyjściu pozwalający na łączenie tych wyjść. Konfiguracja ostatnia równoległa (rys. 2.15c) umoŝliwia maksymalną szybkość wymiany informacji z testerem. 12

a) b) 1 2 c) 1 2 3 4 TDM TDM TDM TDM 1 2 2 4 Rys. 2.15. Sposoby łączenia układów wyposaŝonych w ścieŝkę brzegową: a) połączenie szeregowe uŝywające jednego sygnału ; b) połączenie w dwa zrównoleglone łańcuchy (hybrydowe); c) wiele niezaleŝnych ścieŝek ze wspólnymi sygnałami, Obecnie wiele firm (np. Xilinx, Texas Instruments, Motorola) opracowało własne implementacje oparte na standardzie IEEE 1149.1. Firma Xilinx opracowała rodzinę matryc bramkowych XC4000 nazwaną Logic Cell Array. O wiele bardziej kompleksowo do zagadnienia podeszła firma Texas Instruments i utworzyła całą gamę komercyjnych produktów o wspólnej nazwie SCOPE. 13

3. Rodzina SCOPE - produkty firmy Texas Instruments 3.1. Wprowadzenie Praktyczną implementacją standardu IEEE 1149.1 jest rodzina SCOPE (ang. System Controllability, Observability and Partitioning Environment) opracowana w firmie Texas Instruments. Rodzina ta rozszerza standard IEEE 1149.1 o nowe tryby testowania: testowanie sprawności elementów ścieŝki brzegowej, generowanie pobudzeń pseudoprzypadkowych PRPG (ang. Pseudo Rondom Pattern Generation) i kompresja odpowiedzi PSA (ang. Parallel Signature Analyzis), niektóre testy parametryczne: np. pomiar czasu propagacji od jednego układu poprzez pewną logikę do drugiego układu. Skład rodziny SCOPE przedstawiono w tabl. 3.1. Tablica 3.1. Składniki rodziny SCOPE Produkt TSG100 TSG500 TSG700 SN74BCT8240 SN74BCT8244 SN74BCT8245 SN74BCT8373 SN74BCT8374 320C40 320C50/51 34082 29F816 SN74ACT8990 SN74ACT8994 SN74ACT8997 SN74ACT8999 ASSET Opis Biblioteka komórek do projektów układów na zamówienie (ASIC) matryce bramkowe 1,0 µm zbiór komórek standardowych 1,0 µm komórek standardowych 1,0 µm Elementy typu octals" ośmiobitowy jednokierunkowy bufor ośmiobitowy jednokierunkowy bufor ośmiobitowy dwukierunkowy bufor ośmiobitowy rejestr wyzwalany poziomem ośmiobitowy rejestr wyzwalany zboczem Scalone mikroprocesory zmiennoprzecinkowy procesor sygnałowy stałoprzecinkowy procesor sygnałowy procesor zmiennoprzecinkowy Układy pomocnicze (ang. scan support devices) pamięć notująca informację diagnostyczną sterownik magistrali testującej monitor magistrali cyfrowej linker ścieŝki sterująco-obserwacyjnej selektor ścieŝki sterująco-informacyjnej Tester zewnętrzny sprzęt i oprogramowanie wspomagające uruchamianie i testowanie 14

3.2. Biblioteka komórek do projektów ASIC W skład rodziny SCOPE wchodzi biblioteka komórek słuŝących do budowy rejestru brzegowego (tabl. 2.2), a takŝe sterownika TAP w elementach ASIC. Tablica 3.2. Biblioteka komórek do budowy ASIC TS00LJ TS002LJ TSG00LJ TSG01LJ TSG02LJ TSG03LJ TSG04LJ TSG05LJ TSB00LJ TSB01LJ TSB02LJ TSB03LJ TSB04LJ TSB05LJ Komórki specjalne i sterujące podstawowa komórka rejestru brzegowego komórka zawierająca sterownik TAP Komórki jednokierunkowe podstawowa komórka jednokierunkowa komórka jednokierunkowa przystosowana do budowy rejestru liniowego LFSR lub MISR komórka jednokierunkowa przystosowana do budowy rejestru liniowego z bramką sprzęŝenia zwrotnego komórka jednokierunkowa z komparatorem komórka jednokierunkowa przystosowana do budowy rejestru liniowego z komparatorem komórka jednokierunkowa przystosowana do budowy rejestru liniowego z bramką sprzęŝenia zwrotnego i komparatorem Komórki dwukierunkowe podstawowa komórka dwukierunkowa komórka dwukierunkowa przystosowana do budowy rejestru liniowego LFSR lub MISR komórka dwukierunkowa przystosowana do budowy rejestru liniowego z bramką sprzęŝenia zwrotnego komórka dwukierunkowa z komparatorem komórka dwukierunkowa przystosowana do budowy rejestru liniowego z bramką sprzęŝenia zwrotnego i komparatorem komórka dwukierunkowa przystosowana do budowy rejestru liniowego z bramką sprzęŝenia zwrotnego i komparatorem Przykładowy schemat komórki jednokierunkowej TSG00LJ przedstawiono na rys. 3.1. Komórki rejestru brzegowego mogą pracować w dwóch trybach: normalnym, kiedy są przezroczyste dla sygnałów wchodzących do układu pierwotnego i wychodzących z niego (DMX = 0), testowym, kiedy rozcinają połączenia między układem pierwotnym a wyprowadzeniami (DMX = l), wymuszając w rozcinanych punktach Ŝądane poziomy. W obydwu trybach mogą wykonywać następujące czynności: wpisywać informacje z wejścia komórki DIN (do przerzutnika FF1), komunikować się szeregowo z testerem (przerzutnik FF1), uaktualniać kopie (przerzutnik FF2), negować zawartości komórki. 15

Do następnej komórki DIN 0 TSG00LJ DUOT D FF1 D FF2 1 Sygnały sterujące ze sterownika TAP i rejestru instrukcji A B HOLDZ DMX Z poprzedniej komórki Rys. 3.1. Schemat ideowy podstawowej komórki jednokierunkowej TSG00LJ a) b) TSG00LJ TSG00LJ TSG00LJ TSG00LJ Wejście TSG00LJ Wyjście Wejście TSG00LJ Wyjście TSG00LJ TSG00LJ LFSR/Praca normalna Rys. 3.2. Implementacja za pomocą komórek standardowych systemu SCOPE: a) rejestru brzegowego; b) rejestru LFSR Schemat rejestru brzegowego jednokierunkowego, mogącego pracować zarówno jako rejestr wejściowy, jak i wyjściowy, zbudowanego z komórek TSG00LJ przedstawiono na 16

rysunku 3.2a. Dodatkową jego cechą w stosunku do standardu IEEE 1149.1 (rys. 3.5), jest moŝliwość testowania sprawności komórki i sterujących nią sygnałów przez odczyt negacji wpisanych wcześniej do komórki wartości. Bardziej złoŝone komórki umoŝliwiają realizację rejestrów typu LFSR i MISR. Przykład budowy rejestru LFSR przedstawia rys. 3.2b. 3.3. Układy cyfrowe typu OCTALS Układy octals" spełniają identyczne funkcje jak odpowiednie elementy standardowe 74240, 74244, 74245, 74373 i 74374. Rozkład wyprowadzeń układów SN74BCT8244, SN74BCT8245 i SN74BCT8373 przedstawiono na rys. 3.3. Sterowanie ich dodatkowymi funkcjami zapewnia czteroprzewodowa magistrala IEEE 1149.1:,, i. SN74BCT8244 SN74BCT8245 SN74BCT8373 1G 1 24 2G DIR 1 24 G C 1 24 OC 1Y1 2 23 1A1 B1 2 23 A1 Q1 2 23 D1 1Y2 1Y3 3 4 22 21 1A2 1A3 B2 B3 3 4 22 21 A2 A3 Q2 Q3 3 4 22 21 D2 D3 1Y4 5 20 1A4 B4 5 20 A4 Q4 5 20 D4 GND 2Y1 6 7 19 18 2A1 VCC GND B5 6 7 19 18 A5 VCC GND Q5 6 7 19 18 D5 VCC 2Y2 8 17 2A2 B6 8 17 A6 Q6 8 17 D6 2Y3 2Y4 9 10 16 15 2A3 2A4 B7 B8 9 10 16 15 A7 A8 Q7 Q8 9 10 16 15 D7 D8 11 14 11 14 11 14 12 13 12 13 12 13 Rys. 3.3. Wyprowadzenia elementów octals" Spełniają one podwójną rolę: zastępują typowe elementy 74xxx oraz tworzą podział projektu na testowalne bloki. Przedstawimy teraz trzy przykłady ilustrujące ich zastosowanie. Ułatwianie testowania układów kombinacyjnych Dowolny układ kombinacyjny zbudowany z prostych układów SSI, układów programowalnych (ROM, PAL,...) otacza się elementami 74BCT8244 (rys. 3.4). 17

BCT 8244 Układy kombinacyjny SSI, ROM, PAL, BCT 8244 Magistrala IEEE 1149.1 U1 U2 Rys. 3.4. Testowanie układów kombinacyjnych Elementy Ul i U2 oddzielają i wyodrębniają układ mogący wchodzić w skład większej całości. Przykład ten stanowi ilustrację podstawowych trybów testowania: EXTEST/INTEST, SAMPLE (por. rys. 2.6). Testowanie za pomocą instrukcji EXTEST/INTEST ma jednak kilka wad, do których naleŝy zaliczyć: a) konieczność tworzenia deterministycznych zbiorów testów, b) konieczność pamiętania wyznaczonych testów i zbiorów poprawnych odpowiedzi, c) czasochłonne przesyłanie testów przez ścieŝkę brzegową. Wada c) wpływa zdecydowanie na spowolnienie procesu testowania, zwłaszcza w pakietach o duŝej liczbie układów scalonych. Rozwiązaniem jest zastosowanie testowania pseudoprzypadkowego (PRPG) i równoległej kompresji sygnaturowej (PSA). Elementy rodziny SCOPE umoŝliwiają te rodzaje testowania. W analizowanym przykładzie element Ul moŝe pracować jako rejestr LFSR, układ U2 zaś jako wielowejściowy rejestr liniowy MISR. Zmierzona w układzie U2 sygnatura określa czy dany układ kombinacyjny jest sprawny. Zaletą tej metody testowania jest moŝliwość sprawdzania pracy badanego układu kombinacyjnego przy dość wysokich częstotliwościach zegara (np. 15 MHz) co przyczynia się do zwiększenia wykrywalności uszkodzeń dynamicznych. Ułatwianie testowania układów sekwencyjnych W przedstawionym na rys. 3.5. przykładzie układu sekwencyjnego układy 74BCT8374 spełniają podwójną rolę. Normalnie pracują jako blok pamięci układu sekwencyjnego. Podczas testowania rozcinają pętle sprzęŝenia zwrotnego i umoŝliwiają niezaleŝne testowane bloku kombinacyjnego oraz bloków pamięci. W ten sposób testowanie układu sekwencyjnego sprowadza się do juŝ opisanego testowania układu kombinacyjnego. Przedstawiony układ sekwencyjny pracuje dwufazowo (master-slave). Na narastającym zboczu zegara CLOCK następuje próbkowanie stanu wejść, na opadającym natomiast zmiana stanu wyjść. Pozwala to na uniezaleŝnienie się od zjawisk dynamicznych. 18

We BCT 8244 Układy kombinacyjny SSI, ROM, PAL, BCT 8244 Wy CLOCK Magistrala IEEE 1149.1 NOT Rys. 4.5. Testowanie układów sekwencyjnych Ułatwienie testowania systemów mikroprocesorowych Przedstawiony na rys. 3.6 system mikroprocesorowy jest praktycznym przykładem prostego układu, w którym zastosowano ośmiobitowe elementy SCOPE. Mikroprocesor Adres Sterowanie BCT8244 BCT8244 U8 U7 Dekoder adresu BCT8244 U9 Blok pamięci Dane BCT8244 U6 BCT8244 BCT8244 BCT8244 BCT8244 BCT8244 U5 U4 U3 U2 U1 Złącze krawędziowe pakietu Samotestowanie Dobry/Zły Tester Rys. 3.6. Testowanie systemów mikroprocesorowych 19

Opisywany system mikroprocesorowy wyposaŝono w moŝliwość samotestowania inicjalizowanego z zewnątrz (sygnał SAMOTESTOWANIE). Jądrem, od którego rozpoczyna się samotestowanie, jest mikroprocesor, magistrale, część dekodera adresów i pewien fragment pamięci ROM. Po pozytywnym wykonaniu testów tych bloków jest moŝliwe dokładne sprawdzenie pozostałych elementów systemu. Końcowym etapem jest wysłanie odpowiedniego sygnału DOBRY/ZŁY lub wpisanie pewnej danej (sygnatury) pod ustalony adres w przestrzeni adresowej wejścia/wyjścia. Dana ta informuje o sprawności pozostałych elementów systemu. Taki proces samotestowania jest zarazem najtańszym sposobem testowania pakietu. Ma on jednak powaŝną wadę. OtóŜ w razie uszkodzenia jądra systemu (np. prosta przerwa lub zwarcie w magistrali) program samotestowania nie będzie wykonany poprawnie. Uzyskamy informację, Ŝe system nie jest sprawny. Do zlokalizowania uszkodzeń będą potrzebne czasochłonne i kosztowne sposoby testowania. Zastosowanie elementów SCOPE w tym miejscu moŝe znakomicie ułatwić proces automatycznej lokalizacji uszkodzenia. W tym celu juŝ na etapie projektowania naleŝy uwzględnić moŝliwość testowania elementów jądra. Przyczyną niepowodzenia samotestowania moŝe być a) przerwa w doprowadzeniu sygnału inicjalizującego samotestowanie, b) uszkodzenie procesora, c) uszkodzenie jednej z szyn magistrali, d) uszkodzenie dekodera adresów, e) uszkodzenie fragmentu pamięci ROM zawierającej program samotestowania. Przypadek a). Element U5 (rys. 3.6), pracując w trybie EXTEST, umoŝliwia sprawdzenie czy pojawia się poprawny sygnał inicjujący samotestowanie (SAMOTESTOWANIE) na złączu krawędziowym pakietu. JeŜeli nie, umoŝliwia mimo wszystko wygenerowanie tego sygnału i sprawdzenie sprawności pakietu przez odczytanie wartości sygnału DOBRY/ZŁY. Przypadek b). Element U4 w trybie EXTEST lub SAMPLE umoŝliwia sprawdzenie poprawności sygnałów sterujących mikroprocesorem (np. zerowania). Jałową pracę mikroprocesora moŝna uzyskać po wymuszeniu na szynie danych instrukcji typu NOP (element U6 w trybie EXTEST) i odpowiednich sygnałów sterujących (U4-EXTEST). Elementy U7 i U8 mogą pracować jako równoległe kompresory (PSA) sprawdzając poprawność sygnałów adresowych i sterujących podczas biegu jałowego. Uszkodzenia magistral między mikroprocesorem a elementami U6, U7 i U8 objawią się jako uszkodzenia samego mikroprocesora. RozróŜnienie tych uszkodzeń byłoby moŝliwe, gdyby zastosowano mikroprocesor wyposaŝony w ścieŝkę brzegową. 20

Przypadek c). Testowanie połączeń to testowanie trywialnego układu kombinacyjnego. Stosuje się instrukcje EXTEST. Do wykrywania i lokalizacji uszkodzeń szyny danych, sterującej i adresowej słuŝą elementy odpowiednio Ul i U6, U7 i U2, U8 i U3. Przypadek d). Podczas testowania dekodera adresów mamy do czynienia z prostym układem kombinacyjnym. MoŜna go testować na wiele sposobów. Po wprowadzeniu do elementów U8 i U9 instrukcji EXTEST moŝna go przetestować deterministycznie w sposób wyczerpujący. Jednak tego typu test, wymagający duŝej liczby przesłań przez szeregową ścieŝkę, jest stosunkowo wolny i nie wykrywa pewnych uszkodzeń dynamicznych. Aby je wykryć, naleŝy do układu U8 wprowadzić instrukcję powodującą generowanie pobudzeń pseudoprzypadkowych (PRPG), a układ U9 wprowadzić w tryb wielowejściowego kompresora (PSA). Przy częstotliwości zegara zbliŝonej do wartości zegara procesora nastąpi wykrycie uszkodzeń dynamicznych. Przypadek e). Sprawdzenie przez tester zewnętrzny zawartości pamięci ROM moŝe być dokonane przez emulację operacji dostępu do pamięci. MoŜna jej dokonać wpisując do elementów U6, U7, U8 i U9 instrukcję EXTEST, a do pozostałych BYPASS. Uszkodzenia doprowadzeń do pamięci objawią się jako uszkodzenia pamięci. Z przedstawionych rozwaŝań wynika, Ŝe elementy SCOPE umoŝliwiają wykrycie i lokalizację większości typowych uszkodzeń jądra systemu mikroprocesorowego. Przez to, Ŝe równocześnie spełniają funkcje systemowe (bufory magistral, rejestry adresowe) wprowadzany nadmiar układowy jest niewielki. Powstaje pytanie, czy uszkodzenie połączeń elementów samej ścieŝki brzegowej moŝe zostać wykryte i zlokalizowane. Odpowiedź jest pozytywna. ZałóŜmy uszkodzenie typu s-a-z, na linii (rys. 3.7). Oznaczenie s-a-z określa uszkodzenia typu s-a-1 lub s-a-0, które mogą mieć miejsce tylko podczas rzeczywistego zwarcia linii odpowiednio z V cc (zwane stanem zasilania) lub GND (zwane stanem masy). 01 xxxxxx01 xxxxxx01 xxxxxx01 xxxxxx01 s-a-z X Rys. 4.7. Lokalizowanie uszkodzeń ścieŝki brzegowej W stanie Capture-IR do rejestru instrukcji jest wpisywany status o postaci xxxxxx01. Wysuwając status i dwa dodatkowo wsunięte bity 01 na wyjściu dla sprawnej ścieŝki otrzymamy ciąg 0lxxxxxx01xxxxxx01xxxxxx01xxxxxx01 21

przy czym xxxxxx01 oznacza status danego elementu. W razie sklejenia punktu X z zerem lub jedynką otrzymamy odpowiednio: 000000000000000000xxxxxx01xxxxxx01 i 111111111111111111xxxxxx01xxxxxx01 Znajomość długości rejestrów instrukcji w poszczególnych elementach pozwala na lokalizację uszkodzonego połączenia. Uszkodzenia wejść i objawią się tak jak opisane przerwy w szeregowej ścieŝce danych. Do rozróŝnienia tych uszkodzeń są niezbędne zewnętrzne sondy, np. matryca wieloigłowa. Testowanie pracy układu sterowania sprzęgu IEEE 1149.1 umoŝliwiają dodatkowe instrukcje systemu SCOPE, a takŝe połączenie elementów z dwoma sygnałami (rys. 3.8). 1 2 Rys. 4.8. Konfiguracja z dwoma sygnałami 3.4. Rodzina mikroprocesorów sygnałowych Jedną z moŝliwości scalonych mikroprocesorów sygnałowych 320C40 i 320C50/51 wyposaŝonych w sprzęg IEEE 1149.1 jest ułatwienie sprawdzania połączeń między procesorem, podstawką, w której jest umieszczony, i magistralami systemu. Magistrala IEEE 1149.1 umoŝliwia równieŝ dokonywanie odczytu wewnętrznej pamięci RAM oraz rejestrów mikroprocesora. Podczas uruchamiania systemu staje się bezinwazyjną sondą pozwalającą obserwować i ingerować w sygnały w strukturze mikroprocesora (rys. 3.9). Jest to cecha zasługująca na szczególne podkreślenie, gdyŝ typowe sondy emulacyjne zdolne do pracy przy częstotliwościach 20-30 MHz są niezmiernie kosztowne i złoŝone. Do wspomnianego bezinwazyjnego uruchamiania systemów mikroprocesorowych 320C40 i 320C50/51 za pomocą ścieŝki brzegowej słuŝy, opracowany dla komputera PC, system XDS (ang. extended Development System). 22

EMU(1-0) OFF Sterowanie testem i emulacją przez magistralę IEEE 1149.1 Pamięć RAM programu I danych Pamięć ROM samoładowanie Pamięć RAM danych Magistrala programu/danych Port szeregowy Timer Jednostka centralna 32 bity Sterowanie Generator cykli oczekiwania Porty we/wy Rys. 4.9. Schemat blokowy mikroprocesora 320C50/51 3.5. Układy cyfrowe pomocnicze Pamięć notująca informację diagnostyczną (ang. diary) Pamięć notująca o symbolu 29F816 wykonana jako EEPROM korzysta z tej samej magistrali IEEE 1149.1 co inne elementy rodziny SCOPE nie wymagając Ŝadnych dodatkowych sygnałów sterujących (rys. 3.10). Zadaniem jej jest zapamiętywanie przebiegu testowania pakietu lub systemu, aby umoŝliwić późniejsze zdalne odczytanie tej informacji. MoŜe być teŝ bardzo uŝyteczna dla słuŝb serwisowych, poniewaŝ zmniejsza koszty konserwacji systemu. Układ ASIC µp Układ,,octals Pamięć notująca 29F816 Rys. 3.10. Zastosowanie pamięci notującej 23

Monitor magistrali cyfrowej Często w układzie cyfrowym znajdują się punkty, które choć nie musza być sterowalne, to muszą być obserwowalne i to na bieŝąco. UŜycie układów typu octals" wiązałoby się z pewną rozrzutnością związaną z niewykorzystywaniem ich wyjść. Poza tym szeregowy sposób przesyłania ogranicza znacznie szybkość monitorowania sygnałów. Występują teŝ problemy związane z synchronizacją chwili pobierania próbek. Jednym z rozwiązań tego problemu jest wykorzystanie magistrali IEEE 1149.3. Układ scalony SN74ACT8994 (rys. 3.11) spełnia rolę sprzęgu między szesnastoma dowolnymi punktami obserwacyjnymi a magistralą IEEE 1149.1. UmoŜliwia rejestrację tych sygnałów w wewnętrznej pamięci RAM 1024*16 bitów, kwalifikację i synchronizację chwili pobierania próbek, a takŝe analizę sygnaturową. 16 obserwowanych linii Analizator sygnatur Pamięć 1024x16 Zespół programowalnych liczników Układ kwalifikacji zdarzeń Port dostępu do testowania Rys. 3.11. Monitor magistrali cyfrowej Selektor i linker ścieŝki sterująco-obserwacyjnej Podczas budowy pakietów złoŝonych z wielu układów wyposaŝonych w ścieŝkę sterującoobserwacyjną łańcuch ścieŝek osiąga ogromną długość i mimo korzystania z rejestrów obejściowych jest niewygodny do sterowania. Sytuacja pogarsza fakt, Ŝe uszkodzenie 24

ścieŝki w dowolnym miejscu, choć wykrywalne i lokalizowalne (por. rys. 3.7), wstrzymuje proces testowania całego systemu. Pakiet 1 ŚcieŜka 4 ŚcieŜka 3 ŚcieŜka 2 ŚcieŜka 1 Selektor lub linker Pakiet 2 ŚcieŜka 4 ŚcieŜka 3 ŚcieŜka 2 ŚcieŜka 1 Selektor lub linker Pakiet n ŚcieŜka 4 ŚcieŜka 3 ŚcieŜka 2 ŚcieŜka 1 Selektor lub linker Rys. 3.12. Zastosowanie selektora lub linkera ścieŝki sterująco-obserwacyjnej Selektor (SN74ACT8999) i linker (SN74ACT8997) ścieŝki sterująco-obserwacyjnej umoŝliwiają hierarchiczny podział łańcucha ścieŝek (por. rys. 3.12). Zawarty w nich rejestr obejściowy wyłącza ścieŝki pakietów ze ścieŝki nadrzędnej. Jedyną ich róŝnicą jest to, Ŝe selektor pozwala uaktywnić tylko jedną ścieŝkę podrzędną, natomiast linker dowolną ich liczbę (n 4). Sterownik magistrali testującej Układ scalony 74ACT8990 spełnia rolę sprzęgu między typową równoległą 16-bitową magistralą mikrokomputera a szeregową magistralą IEEE 1149.l (rys. 3.13). Zapewnia maksymalną szybkość szeregowego przesyłania informacji (ok. 25MHz) generując automatycznie odpowiednie protokoły magistrali IEEE 1149.1. Mikrokomputer Dane Adresy RD WR RDY IN SN74ACT8990 Urządzenie testowane nr 1 Urządzenie testowane nr 2 Urządzenie testowane nr 3 Rys. 3.13. Zastosowanie sterownika magistrali testującej SN74ACT8990 25

4. Program ilustrujący metodę testowania, według standardu IEEE 1149.1 W rozdziale tym opisana została struktura programu ilustrującego testowania metodą ścieŝki brzegowej, według standardu IEEE 1149.1, ze szczególnym uwzględnieniem pracy sterownika TAP. Program DemoJTAG napisany został w C++ Builder. Od strony funkcjonalnej wzorowany był na aplikacji Scan Educator firmy Texas Instrumens, dostępnej w wersji dla systemu DOS. Program szczegółowo prezentuje pracę poszczególnych układów interfejsu IEEE 1149.1, tzn. sterownika TAP, rejestrów brzegowych oraz pozostałych rejestrów specjalnych. Wyjaśniono teŝ sposób obsługi programu. Przedstawiono skrócony opis wykorzystanych klas i metod. Ponadto zamieszczono kilka przykładów działania programu. 4.1. Struktura programu Główna klasa programu nosi nazwę CIEEEView. Zamieszczono w niej wiele metod a jedną z nich jest OnDraw,. Zawiera ona większość kodu tego programu. Podstawowym jej zadaniem jest implementacja kodu rysującego. Wykorzystano w niej klasy osłonowe takie jak: CBrush, CPen, CFont. Pierwsza z nich jest klasą osłonową dla obiektów pędzli GDI. Pędzel moŝe malować kolorem pełnym, wzorem kreskowym lub pobranym z bitmapy bądź innego wzoru. Dlatego posiada konstruktor, który potrafi pobrać parametry odmiennego typu. MoŜemy jednak utworzyć obiekt nie inicjując go, lecz uczynić to później poprzez wywołanie odpowiedniej funkcji. W omawianym programie klasa ta wykorzystana jest do rysowania takich elementów interfejsu graficznego jak układ SN74BCT8244A, przełącznik DIP kontroli danych, diody wejściowe i wyjściowe. W oknie Diagram stanów TAP pola stanów, natomiast w oknie Pulpit sterowniczy TAP przełączniki, i oraz wskaźnik. Następną z uŝytych klas osłonowych jest klasa pióra o nazwie CPen. Podobnie jak CBrush naleŝy rówwnieŝ do GDI. Pióra wykorzystywane są do rysowania linii i krzywych. Podczas rysowania wypełnionej figury, pióro uŝywane jest do rysowania krawędzi figury, do wypełniania jej zaś słuŝy pędzel opisany powyŝej. Figura nie musi być wypełniana, narysowany będzie jedynie jej obrys. W takim przypadku stosuje się pędzel przezroczysty lub pusty. Tę klasę uŝyto do linii dzielących pola, do ścieŝek w rejestrach boundary-scan, instrukcji i bypass oraz do strzałek łączących poszczególne stany w oknie Diagram stanów TAP. 26

Ostatnią klasą osłonową uŝytą w tym programie jest CFont, która jest klasą dla obiektów GDI czcionek. Nie moŝe być ona konstruowana z ustawieniami domyślnymi jak poprzednie klasy. Musimy zadeklarować obiekt CFont, a następnie uŝyć jednej spośród funkcji Create dla określenia wielu moŝliwych parametrów. W omawianym programie czcionkę tworzono za pomocą funkcji CreateFont(). Funkcje wykorzystane do utworzenia wszelkich napisów, zarówno nazw głównych okien jak i opisów poszczególnych elementów. Opisane powyŝej klasy muszą być usunięte po ich uŝyciu. Funkcją składową usuwającą obiekty GDI jest DeleteObject(). UŜywając tej funkcji odzyskujemy zasoby systemu. Na początku metody OnDraw zdefiniowane są elementy graficzne, jak tło, elementy okien Widoku symulacji X-Ray, Diagramu stanów TAP oraz Pulpitu sterowniczego TAP. Dalej zdefiniowano przełączniki za pomocą instrukcji switch, takie jak przełączniki DIP i przełączniki, i. Instrukcja warunkowa switch (przełączanie) słuŝy do uzaleŝnienia sposobu wykonania jakiegoś fragmentu programu od wyniku testu dotyczącego pewnej wartości. JeŜeli wartość odpowiada któremuś z jawnie podanych przypadków (ang. case), to wykonają się te instrukcje, które zostały umieszczone bezpośrednio za frazą case odnoszącą się do tego przypadku. JeŜeli natomiast nie występuje Ŝaden z przypadków przewidzianych w instrukcji switch, to wykonają się instrukcje umieszczone bezpośrednio po słowie default (domyślne). Ostatnia instrukcja default w omawianym programie nie występuje. Wszystkie instrukcje switch zawierają tylko dwa przypadki, które definiują włączenie lub wyłączenie danego przełącznika. Przełącznik zmienia swój stan w momencie kliknięcia kursorem myszki w danym polu lub wciśnięcia odpowiedniego klawisza. Oba przypadki zdefiniowane są w innych metodach opisanych poniŝej. Dalsza część kodu programu zawiera zdefiniowanie czcionki za pomocą omawianej juŝ klasy CFont. Z powodu róŝnorodności zamieszczonych czcionek, tzn. wielkość, grubość, koloru tła jak i samej czcionki trzeba było skorzystać z dodatkowych funkcji, które umoŝliwiły osiągnięcie oczekiwanej czcionki. Wykorzystane dodatkowe funkcje kreujące czcionkę to: SetTextAlign(TA_LEFT) i SetTextAlign(TA_CENTER), które odpowiednio wyrównywały tekst do lewej strony punktu lub wyśrodkowały względem punktu. Inną funkcją do wprowadzenia czcionki o odmiennym kolorze niŝ czarny była funkcja SetTextColor(). W tym programie wykorzystany był kolor niebieski, którym oznaczono litery słuŝące do sterowania danym elementem z klawiatury, tzw. Hot Key. Następnymi funkcjami zastosowanymi w kodzie, którymi wzbogacono moŝliwości kroju czcionek były SetBkMode(TRANSPARENT) i SetBkMode(OPAQUE). Pierwsza z nich umoŝliwia 27

wyświetlenie tekstu z przezroczystym tłem, natomiast drugi wyświetla tekst na tle o kolorze zadanym funkcją SetBkColor(). Analizując dalszą część kodu zauwaŝymy wprowadzone warunki za pomocą instrukcji if. Instrukcja ta sprawdza konkretny warunek. Gdy jest on spełniony wówczas wykonuje się pewna czynność lub ciąg czynności. W przeciwnym wypadku pomija się daną czynność lub ciąg czynności. Instrukcję tę wykorzystano do sterowania diodami wyjściowymi i do sterowania przejściami między stanami w Diagramie stanów sterownika TAP, a tym samym włączenie odpowiedniej ścieŝki w układzie SN74BCT8244A. Następną metodą wprowadzoną do programu jest metoda OnRButtonDown. Utworzono ją dla zdarzeń związanych z prawym klawiszem myszy. Funkcja ta będzie wywoływana za kaŝdym razem, gdy uŝytkownik naciśnie ten klawisz i zostaną spełnione odpowiednie warunki. Warunki określone są instrukcją if opisaną powyŝej, a spełnienie ich wymaga kliknięcia myszką w odpowiednim miejscu okna programu. Praktycznie efekt osiągnięty będzie za kaŝdym razem po kliknięciu prawym przyciskiem w oknie tego programu, tylko wynik moŝe być inny. Wynik zaleŝny jest od miejsca kliknięcia prawym przyciskiem myszy, po którym uzyskamy informację o danym elemencie lub danym polu. Kolejną metodą jest metoda OnLButtonDown. Działa podobnie jak OnRButtonDown z tym, Ŝe związana jest ze zdarzeniami lewego klawisza myszy. Funkcja ta będzie wykonana lewym przyciskiem myszy, gdy klikniemy na odpowiednie pola. Polami tymi są przełączniki, czyli przełączniki DIP w oknie Widoku symulacji oraz przełączniki,, i w oknie Pulpitu sterowniczego TAP. Jedną z ostatnich metod tej klasy jest metoda OnKeyDown. SłuŜy ona do odczytywania komunikatów zdarzeń związanych z klawiaturą. Czynność ta jest bardzo podobna do odczytywania komunikatów zdarzeń wywołanych przy uŝyciu myszy. Metoda ta jest alternatywnym rozwiązaniem wykorzystania do sterowania lewego przycisku myszy. Aktywne klawisze zaznaczone kolorem niebieskim umoŝliwiają przełączenia przełączników, i klawiszami odpowiednio I, T i C, a takŝe przełączników DIP klawiszami od 1 do 0. Przy czym klawisz 1 odpowiada górnemu przełącznikowi, a 0 dolnemu. Ostatnia metoda o nazwie OnSzybkoscanimacji powoduje przepisanie wartości z okna Szybkość animacji do danej zamieszczonej w klasie CIEEEDoc. UmoŜliwia to sterowanie szybkością animacji. Okno Szybkość animacji zamieszczone jest w klasie OknoAnimacji. 28

W klasie OknoAnimacji zdefiniowane są trzy metody. Pierwsza OnGora ma za zadanie sterowanie przyciskiem nazwanym Góra tak by po jego kliknięciu zadana wartość zwiększała się o jeden. Druga metoda OnDol podobnie działa jak powyŝsza z tą róŝnicą, Ŝe zmniejsza o jeden. Ostatnia metoda tej klasy to OnOK, która steruje przyciskiem OK. Wprowadzono tutaj tylko metodę UpdateData(true) by mięć pewność, Ŝe zmienna szybko zawiera liczbę pobraną z pola tekstowego. Pozostałe wprowadzone klasy o nazwach Komunikat1,..., Komunikat14 zawierają tylko pola tekstowe mające na celu informowania o danych elementach. Wywołanie tych klas związane jest z kliknięciem prawym przyciskiem myszy w danym miejscu okna, co opisywane było przy metodzie OnRButtonDown. NaleŜy zauwaŝyć, Ŝe wszystkie zmienne zaleŝne są od innych zmiennych, którymi są x i y. Zmienna x określa szerokość okna, natomiast zmienna y jego wysokość. UmoŜliwia to pracę w róŝnych wielkościach okna, moŝemy dowolnie zmieniać jego wysokość i szerokość. Jest to szczególnie wygodne przy pracy na monitorach o róŝnej wielkości. Zmienne x i y definiują zarówno wielkość obszarów rysowanych pędzlem (CBrush), piórem (CPen) jak i wielkość czcionek, a takŝe pól aktywnych, które zaleŝne są od sterowania myszką. 4.2. Obsługa programu Obsługa programu jest bardzo łatwa i moŝliwa do wykonania od razu po jego uruchomieniu. Za pomocą sygnału, który określamy w programie przez przełącznik sterujemy procesem szeregowego przesyłania informacji. W rzeczywistości sygnał ten interpretowany jest w sterowniku TAP, a w programie musimy zrobić to ręcznie. I aby przejść z jednego stanu w drugi naleŝy tak ustawić przełącznik by odpowiadał wartości określonej przy danej strzałce określającej kierunek przejścia ze stanu do stanu w oknie Diagram stanów TAP. Natomiast kaŝda zmiana stanu następuje na narastającym zboczu (kolor przełącznika czerwony, a wartość zamieszczona pod nim wynosi 1). Przełącznik przesyła szeregowo dane wejściowe, których wartość określamy przez przełączenie tego przełącznika. Dane te wprowadzane są albo do rejestru obejściowego, albo do brzegowego lub teŝ do rejestru instrukcji. Wybór rejestru zaleŝny jest od stanu, w którym się obecnie znajdujemy lub teŝ od ustawień, które to zmienione zostały w wyniku przejścia przez jakiś stan. Opisane powyŝej przełączniki zmieniają swój stan z 0 na 1-kę lub odwrotnie w momencie kliknięcia lewym przyciskiem myszy na dany przełącznik lub przez wciśnięcie odpowiedniego klawisza klawiatury oznaczonego kolorem niebieskim. Kolor przełącznika w 29

czasie przełączania zmienia się z zielonego (stan 0) na czerwony (stan 1) lub odwrotnie. Wraz z uŝyciem przełącznika zmieniają się wartości zamieszczone poniŝej kaŝdego przełącznika odpowiadające danemu stanowi. Zmiana stanu w diagramie stanów TAP związana jest z animacją strzałki, która określa kierunek przejścia sygnały ze jednego stanu do stanu innego. Szybkość tej animacji moŝna zwiększyć lub zmniejszyć wybierając z głównego menu Szybkość animacji, w tym momencie pojawia się okno dialogowe. W oknie tym moŝemy wpisać wartości od 1 do 10 lub wcisnąć przycisk o nazwie Góra lub Dół, przy czym pierwszy zwiększa o jeden daną wartość, a drugi zmniejsza o jeden. Wartość ta po uruchomieniu programu jest zadana programowo i wynosi 5. W programie tym jest moŝliwość jeszcze wprowadzenia danych do rejestru brzegowego. MoŜemy to osiągnąć przez włączenie określonych przełączników DIP, które to symulują wprowadzenie danych do wejściowego rejestru brzegowego. Rys. 4.1. Uruchomienie programu 30

Rys. 4.2. Zainicjowanie przejścia ze stanu Test-Logic-Reset do stanu Run-Test/Idle 4.3. Przykłady funkcjonowania programu Po uruchomieniu programu widoczne jest okno jak na rys. 4.1. Na rysunku tym wszystkie przełączniki DIP ustawione są w pozycji 0, podobnie jak przełączniki, i. Podświetlone pole stanu Test-Logic-Reset świadczy o tym, Ŝe symulacja przechodzenia przez poszczególne stany rozpocznie się właśnie od tego stanu. Zainicjujemy teraz przejście ze stanu Test-Logic-Reset do stanu Run-Test/Idle, a więc przycisk pozostaje w stanie 0, co odczytać moŝemy z wartości określona przy strzałce, natomiast przycisk przełączamy w stan 1. Jest to zobrazowane na poniŝszym rysunku 4.2. Widzimy na nim, Ŝe pole stanu Test-Logic-Reset zmieniło kolor z białego na szary, następnie strzałka między tymi stanami zmieniła kolor na czerwony (co moŝemy zobaczyć w czasie działania programu), a po przejściu do stanu Run-Test/Idle kolor strzałki z powrotem zmienia się w zielony. Po przejściu do zadanego stanu kolor pola zmienia się z szarego na biały. W tym momencie stanem aktywnym jest stan Run-Test/Idle. Teraz przejście do następnego stanu rozpatrujemy względem stanu podświetlonego czyli obecnie jest to Run- Test/Idle. By teraz dokonać przejścia do stanu Select-DR-Scan naleŝy postępować podobnie jak poprzednio z tą róŝnicą, Ŝe sygnał musi być 1. Realizujemy to przez zaznaczenie 31

kursorem myszki i klikamy lewym jej przyciskiem lub wykorzystujemy do tego klawiaturę wciskając klawisz T. Następny rysunek 4.3 pokazuje co dzieje się w elemencie SN74BCT8244A, gdy przejdziemy do stanu Shift-DR. Wejście łączy się z wyjściem przez rejestr obejściowy (bypass), a wskaźnik zmienia swój pierwotny wizerunek. Takie ustawienie pozwala na pominięcie danego układu w łańcuchu układów powiązanych ścieŝką brzegową. Kolejna zmiana stanu zegara przy = 1 i = 0 spowoduje przejście przez rejestr obejściowy wprowadzając do niego wartość określoną przez, a wartość z tego rejestru zapisana jest do bufora rejestru bypass. Zobrazowane jest to na rysunku 4.4. Pole stanu Shift-DR pozostaje nadal aktywne (o kolorze białym), sygnał przy = 0 kieruje się ponownie do tego stanu. Po przełączeniu w stan niski przełącznika, wskaźnik zmieni się symulując włączenie wskaźnika, a wartość umieszczona poniŝej zmieni się na 1. Rys. 4.3. Przejście do stanu Shift-DR 32

Rys. 4.4. Przejście sygnału z do przez rejestr obejściowy Dotychczas omówiona była komunikacja z rejestrem danych, do której powrócimy w dalszej części tego rozdziału. Obecnie będziemy dąŝyć do zrealizowania komunikacji z rejestru instrukcji. W tym celu naleŝy przejść przez pozostałe stany w rejestrze danych. NaleŜy zwrócić szczególną uwagę gdy dojdziemy do stanu Update-DR, w którym to zerowany jest rejestr obejściowy. W tym momencie kierujemy się do stanu Select-IR-Scan poprzez odpowiednie ustawianie przełącznika. Gdy dojdziemy do stanu Select-IR-Scan ustawiamy = 0, w ten sposób wybraliśmy komunikację z rejestrem instrukcji. Po dojściu do stanu Shift-IR uzyskamy połączenie podobne jak w stanie Shift-DR, tylko w tym przypadku połączenie zrealizowane będzie przez rejestr instrukcji, do której zostaje wpisana sekwencja 10000001. Przypadek ten został przedstawione na rysunku 4.5. Widzimy tez zmianę wskaźnika, który wykrył 1-kę w rejestrze instrukcji. Następną czynnością jaką zrealizujemy będzie wpisanie w rejestr instrukcji samych 0, co umoŝliwi nam przejście sygnału z do przez rejestr brzegowy. Po wypełnieniu rejestru instrukcji zerami przechodzimy ponownie do komunikacji z rejestrem danych, a dokładnie do stanu Shift-DR. NaleŜy teŝ zwrócić uwagę na stan Update-IR, w którym stan rejestru instrukcji zostaje zapamiętany w kopii (zatrzasku) rejestru instrukcji. 33

Rys. 4.5. Aktywny stan Shift-IR Rysunek 4.6 pokazuje działanie rejestru brzegowego przez który połączone jest wejście i. Włączenie tego rejestru jest moŝliwe w momencie gdy w kopii rejestru instrukcji znajdują się same zera. Do rejestru brzegowego wpisać moŝna dane szeregowo poprzez lub równoległe z przełącznika DIP. Sygnał wprowadzany jest za kaŝdym razem, gdy aktywny jest stan Shift-DR i włączone jest narastające zbocze. Z przełącznika DIP dane wprowadzane są do rejestru brzegowego w momencie wyjścia ze stanu Capture-DR. W tym momencie przepisywane są teŝ dane z kopii wejściowego rejestru brzegowego do wyjściowego rejestru brzegowego. Przechodząc natomiast do stanu Update-DR dane z rejestru brzegowego przepisywane są do kopii (zatrzasku) rejestru brzegowego. Na rysunku 4.6 przedstawiono takŝe działanie diod wejściowych i wyjściowych. Działanie diod wejściowych jest bardzo proste zapalają się, gdy włączamy odpowiadające im przełączniki w przełączniku DIP. Diody wyjściowe działają w zaleŝności od zawartości kopii rejestru instrukcji. Gdy kopia ta zawiera same 0 diody wyjściowe informują o stanie kopii wyjściowego rejestru brzegowego. W momencie, w którym kopia rejestru róŝni się od sekwencji 00000000 diody wyjściowe odpowiadają stanom przełącznika DIP. Czyli palą się te same diody wejściowe jak i wyjściowe. 34

Rys. 4.6. Działanie rejestru brzegowego Do animacji w tym programie przydatne jest okno dialogowe, które uruchamiamy z menu głównego Szybkość animacji. Okno to przedstawione jest na rysunku 4.7. Widzimy na nim oprócz podstawowych przycisków OK i Cancel dwa przyciski dodatkowe. Pierwszy z nich o nazwie Góra zwiększa wartość zadanej liczby o jeden (spowalnia animację). Drugi z klawiszy o nazwie Dół zmniejsza wartość tej liczby (przyspiesza animację). Rys. 4.7. Okno dialogowe Szybkość animacji 35