Technika Cyfrowa i Mikroprocesory Uruchamianie oraz testowanie ukladów dr inz. Krzysztof Kolek Materialy wylacznie dla potrzeb wykladu Uklady cyfrowe oraz mikroprocesory III rok RA wydzial EAIiE AGH. Inne wykorzystanie bez zgody autora zabronione.
Plan Rosnaca zlozonosc ukladów, a problem testowania Zasilanie, podstawowe sygnaly sterujace JTAG (IEEE 49.) 2
Rosnaca zlozonosc ukladów cyfrowych Testowanie metoda bed-of-nails Testowanie poprzez zlacza testowe oraz punkty testowe Testowanie poprzez zlacza krawedziowe ale... Typowa sredniej wielkosci plytka to kilkaset polaczen Wielowarstwowe plytki, klopotliwe testowanie sygnalów Obudowy ukladów scalonych typu BGA Multimetr Próbnik logiczny wykrywanie zboczy Oscyloskop, analizatory widma Analizatory stanów logicznych oraz Analizatory uzaleznien czasowych Analizatory sygnatur
Analiza sygnatur we x x 2 x m-2 x m- x m zegar C C C C C - xor S Y G N A T U R A x - przerzutnik sygnal START/STOP rózne funkcje dla róznych typów sygnalów poprawnie dzialajace urzadzenie wyznacza sygnatury w róznych punktach
JTAG (IEEE 49.) JTAG Joint Test Access Group IEEE 49. Test Access Port and Boundary-Scan Architecture (99) Boundary Scan pozwala na kompletne sterowanie oraz obserwowalnosc wyprowadzen ukladu scalonego zgodnego z JTAG realizowane za pomoca oprogramowania (bez potrzeby podlaczania urzadzen testujacych!!!) Uklady pracuja w ich normalnym trybie lub w sposób umozliwiajacy analize wejsc oraz ustawianie stanów wyjsc Test Access PORT (TAP) steruje praca ukladu
TAP oraz Boundary-scan Boundary-Scan Register TAP Test Access Port Boundary Scan Cell Input Pins Core Logic Output Pins TDI User Register Bypass Register TDO Instruction Register Opcjonalnie TRST TMS TCK TAP Controller Pull-up: TDI, TMS Oraz TRST
Boundary Scan Cell SO OBSERVE wejscie lub wewnetrzna logike CONTROL wyjscie lub wewnetrzna logike NI OBSERVE Capture/Scan Mux CONTROL Test/Data Mux NO Capture/Scan Mux wybiera równolegle ladowanie lub szeregowy skan Test/Data Mux wybiera dane w normalnej pracy lub dane szeregowe Scan Latch/Flop zapobiega zmianie danych podczes szeregowego przesylania Scan Latch/Flop SI NI Normal Input NO Normal Output SI Serial Input SO Serial Output
Sterownik TAP Test Logic Reset Run Test/Idle Select DR-Scan Select IR-Scan Capture-DR Capture-IR Shift-DR Exit -DR Shift-IR Exit -IR Pause-DR Exit 2-DR Pause-IR Exit 2-IR Update-DR Update-IR Zmiana stany podczas narastajacego zbocza TCK zaleznie od TMS Dane podawane z TDI na narastajacym zboczu TCK Odczyt z TDO na opadajacym zboczy TCK
Przykladowe przebiegi czasowe oraz stany automatu TAP TCK 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 2 22 23 24 25 TMS TDI TDO TAP State Test Logic Reset Run Test/Idle Select-IR Select-DR Capture-IR Shift-IR Exit -IR Update-IR Select-DR Capture-DR Shift-DR Exit -DR Update-DR Select-DR Select-IR Test Logic Reset Stan wysokiej impedancji (TDO) lub stan nieistotny (TDI)
Testowanie modulów z wykorzystaniem JTAG Logic Non-JTAG Logic Logic Non-JTAG Logic Logic TDI TDO TDI TDO TDI TDO TAP TAP TAP J T A G TDI TCK TMS TDO Logic Non-JTAG Logic Logic Non-JTAG Logic Logic TDI TDO TDI TDO TDI TDO TAP TAP TAP J T A G M o d u l TDI TDO TCK TMS TMS 2 TMS 3
Rozkazy JTAG 49. definiuje 9 instrukcji, 3 sa obowiazkowe Rozkazy obowiazkowe: BYPASS, SAMPLE/PRELOAD i EXTEST Rozkazy nieobowiazkowe: INTEST, RUNBIST, CLAMP, HIGHZ, IDCODE oraz USERCODE Kody instrukcji i ich dlugosc definiowane przez producenta ukladu (minimum 2 bity dlugosci rozkazu) Producent ukladu moze zdefiniowac dowolna liczbe specyficznych ukladów oraz zdefiniowac ich dzialanie
Rozkaz BYPASS (wymagany) Boundary-Scan Register Input Pins Core Logic Output Pins TDI User Register Bypass Register TDO Instruction Register TMS TCK TAP Controller
Uklad pozostaje w normalnym trybie pracy Jednobitowy rejestr miedzy TDI a TDO Dane sa przesylane przez uklad bez zaklócania pracy Nie jest przerywany lancuch JTAG Wyslanie do ukladu nieznanego rozkazu wprowadza go w stan bypass
Rozkaz SAMPLE/PRELOAD (wymagany) Boundary-Scan Register Input Pins Core Logic Output Pins TDI User Register Bypass Register TDO Instruction Register TMS TCK TAP Controller
Uklad pozostaje w normalnym trybie pracy Boundary-Scan Register wpiety miedzy TDI oraz TDO Pobiera funkcjonalne dane wchodzace i wychodzace z ukladu Dane z Boundary-Scan Register dostepne podczas operacji skanowania (zawierajace wejscia i wyjscia ukladu) Laduje do dane wykorzystywane przez rozkaz EXTEST laduje dane przed wejsciem do trybu testowania
Rozkaz EXTEST (wymagany) Boundary-Scan Register Input Pins Core Logic Output Pins TDI User Register Bypass Register TDO Instruction Register TMS TCK TAP Controller
Uklad w zewnetrznym trybie testowym Boundary-Scan Register wpiety miedzy TDI oraz TDO BSR steruje danymi wychodzacymi z ukladu Przed operacja skanowania dane wejsciowe zapisywane do BSR Umozliwia np. sprawdzanie polaczen miedzy ukladami
Rozkaz INTEST (opcjonalny) Boundary-Scan Register Input Pins Core Logic Output Pins TDI User Register Bypass Register TDO Instruction Register TMS TCK TAP Controller
Uklad w wewnetrznym trybie testowym Boundary-Scan Register wpiety miedzy TDI oraz TDO BSR steruje danymi wchodzacymi do ukladu Dane wychodzace z ukladu dostepne podczas skanowania
RUNBIST wykonuje specyficzny dla ukladu autotest (BIST-BuiltIn Self test) (np. autotest pamieci) CLAMP ustawia wyjscia ukladu zgodnie z zawartoscia BSR HIGHZ ustawia wszystkie wyjscia w stan wysokiej impedancji (równiez te, które w normalnym trybie sa dwustanowe) IDCODE Zwraca 32-bitowy identyfikator ukladu (producent, typ ukladu oraz numer wersji) USERCODE Zwraca 32-bitowy identyfikator zawierajacy dane uzytkownika
Uklad SN74BCT8244 Funkcjonalny odpowiednik 74244 z dodatkowymi funkcjami JTAG
Zlacze krawedziwe obejmuje wejscia A i OE oraz wyjscia Y
Wybrane operacje JTAG Control boundary to high impedance HIGHZ wyjscia ukladu ustawione w stan wysokiej impedancji Control boundary to / CLAMP dane z wejsciowych zastosowane do wejsc logiki ukladu, dane z wyjsciowych wystawiane na wyjscia ukladu Boundary run test Wykonuje operacje zakodowane w specyficznym dla ukladu 2-bitowym BCR (Boundary-Control Register). Operacja wykonywana w stanie Run-Test/Idle Boundary read Odczyt danych z BSR (uzyteczny np. po operacji PSA) Boundary self test s zapamietuja negacje swoich dotychczasowych wartosci Boundary toggle outputs Dane w wejsciowych pozostaja niezmienione. Dane w wyjsciowych zmieniaja sie przy kazdym narastajacym zboczy TCK gdy TAP znajduje sie w stanie Run-Test/Idle Boundary-control register scan BCR jest fragmentem sciezki skanowania. Musi byc wykonana przed Boundary run test w celu okreslenia operacji
Operacje Boundary-control register Sample inputs/toggle outputs (TOPSIP) Dane z wejsc ukladu sa zapisywane do podczas narastajacego zbocza TCK i doprowadzane do wewnetrznej logiki ukladu. Narastajace zbocze TCK zmienia dane w wyjsciowych oraz wyprowadza je na wyjscie ukladu podczas opadajacego zbocza TCK.
Pseudo-random pattern generation (PRPG) Narastajace zbocze TCK generuje pseudo-przypadkowe dane na wyjsciach i wejsciach ukladu. Parallel-signature analysis (PSA) Narastajace zbocze TCK generuje 6-bitowa sygnature sygnalów wejsciowych.
Simultaneous PSA and PRPG (PSA/PRPG) Narastajace zbocze TCK generuje 8-bitowa sygnature sygnalów z wejsciowych. Nastepnie sygnatura jest stosowana do wejscia logiki ukladu. Narastajace zbocze TCK Generuje pseudo-przypadkowe dane oraz wyprowadza je na wyjscie ukladu podczas opadajacego zbocza TCK.
Zalety JTAG Ustawianie oraz obserwacja stanów bez fizycznego polaczenia Testowe sygnaly moga byc generowane nie tylko na wejsciu plytki ale równiez w dowolnym punkcie wewnetrznym bez potrzeby przerywania polaczen Redukcja punktów testowych na plytkach Redukcja próbników w metodzie bed-of-nails Automatyczna identyfikacja ukladów Otwarty standard gwarancja wspólpracy elementów róznych producentów Wykorzystywanie nie tylko do testowania ale równiez np. do programowania ukladów FPGA Standard umozliwiajacy wspólprace urzadzen róznych producentów