Co to jest JTAG (Joint Test Action Group) Ścieżka krawędziowa JTAG, to tani i skuteczny sposób testowania i programowania układów. Jej zalety wykraczają poza pierwotne założenia standardu, dla którego została stworzona. Co więcej, wraz ze wzrostem złożoności urządzeń, technika JTAG Boundary Scan staje się coraz bardziej cenna. Pomysł wprowadzenia ścieżki krawędziowej pojawił się już w latach 80., a został zestandaryzowany w 1990 roku, jako IEEE1149.1-1190. Wraz z upływem lat pierwotna koncepcja zaproponowana przez JTAG ewoluowała, aby spełniać rosnące oczekiwania producentów elektroniki i ostatecznie została zaakceptowana przez inżynierów, już jako IEEE1149.1a. Od tego czasu stała się nieodzownym elementem większości cyfrowych układów scalonych, a co za tym idzie, także i całych układów elektronicznych w różnego rodzaju urządzeniach. 1 Co to jest JTAG Koncepcja ścieżki krawędziowej sprowadza się do obudowania układów scalonych specjalnymi szeregowo połączonymi rejestrami z równoległym wpisem i odczytem. Naturalnie, rejestry te są scalone razem z resztą układu i w trybie normalnej pracy są przezroczyste dla całego systemu - tzn. wprowadzają jedynie niewielkie, pomijalne opóznienia. Schemat blokowy układu zgodnego z JTAG przedstawiony jest na rysunku poniżęj 2 Jak działa JTAG Zasada działania jest prosta. Rejestr przesuwny powstały z połączenia ścieżek brzegowych znajdujących się na płytce układów scalonych pozwala na wprowadzenie do wnętrza urządzenia dowolnych sygnałów. Sygnały te, przenoszone są poprzez szeregowe przesuwanie rejestru, z częstotliwością generowaną przez tester. W momencie przejścia w tryb testowania, zostaną one wczytane przez poszczególne układy scalone, jako dane wejściowe, a wygenerowana odpowiedz zostanie zatrzaśnięta w innej części rejestrów ścieżki. Następnie, wysuwając dane z rejestru poprzez wyjście szeregowe, otrzymuje się odpowiedz na zadane wektory testowe. Nie ma potrzeby, aby rejestry wchodzące w skład ścieżki przesuwały w obie strony. 3 Jak działa JTAG Technikę JTAG można wykorzystywać w celu przetestowania różnych elementów urządzenia. Mając układ elektroniczny wspierający technikę JTAG, możliwe jest zarówno testowanie samych układów scalonych obsługujących JTAG, jak i połączeń pomiędzy układami. Co więcej, da się także częściowo przetestować te elementy, które są pozbawione rejestrów ścieżki skanującej, a także układy takie jak pamięci RAM. Problem testowania połączeń sprowadza się do wprowadzania wektorów testowych w komórki ścieżki znajdujące się na wyjściach układów i odczytywania wartości z komórek poprzedzających wejścia innych układów. Oczywiście obie czynności wykonywane są poprzez przesuwanie rejestru i mogą zachodzić jednocześnie. 4 Jak działa JTAG 5 Opis wyprowadzeń JTAG 1. TCK Wyjście Test Clock, sygnał zegarowy z JTAG ICE do urządzenia docelowego 2. GND Masa 3. TDO Wejście Test Data Output, sygnał danych z urządzenia docelowego do JTAG ICE 4. VTREF Wejście Poziom napięcia logiki układu docelowego 5. TMS Wyjście Test Mode Select, sygnał wyboru trybu z JTAG ICE do układu docelowego 6. NSRST Wejście/wyjście Wyjście typu open collector z JTAG ICE do układu docelowego, jest to również wejście, aby móc wykryć reset wykonany w urządzeniu docelowym 7. VSUPP Wejście Napięcie zasilające JTAG ICE. Ta linia jest odcinana, jeśli jest podłączony zewnętrzny zasilacz (patrz schemat) 8. NTRST Wyjście/NC Nie podłączone, zarezerwowane dla innych urządzeń JTAG (reset portu JTAG) 9. TDI Wyjście Test Data Input, sygnał danych z JTAG ICE do urządzenia docelowego 10. GND Masa 6 IDEA TESTOWANIA ZA POMOC SPRZGU - JTAG Tester zewnętrzny MUT Układ scalony Układ sterowania sprzęgu Tester wewnętrzny RWEB RWYB We Wy Testowany układ cyfrowy 7 Zalety testowania JTAG Jest to technika prosta w implementacji i tania w stosowaniu Możliwość testowania układu przez cały czas jego życia Uproszczenie procesu generacji testów Testowanie własności analogowych 8 Przykład wektorów testowych i efektów testowania w przypadku wystąpienia uszkodzeń 9 Programowanie za pomocą JTAG Drugą, bardzo istotną kwestią, w której ścieżka skanująca ma zastosowanie, jest programowanie układów. Producenci, którzy w swoich układach scalonych zaimplementowali interfejs JTAG umożliwiają skorzystanie z niego, w celu wprowadzenia programów do pamięci Flash tychże układów lub do konfiguracji FPGA. Zalety tego rozwiązania są dosyć duże. Przestaje być problemem programowanie w systemie (ISP - In System Programming), gdyż nie trzeba już planować dodatkowych połączeń, które służyłyby procedurze programowania. Nie trzeba też zaopatrywać się w różnego rodzaju programatory, różniące się konstrukcją pomiędzy poszczególnymi rodzinami układów programowalnych. Co więcej, programowanie ISP pozwala uprościć proces produkcji, poprzez montaż dostarczonych od producenta, jednakowych układów scalonych na każdej płytce, bez konieczności wcześniejszego umieszczania ich w programatorach i wgrywania kodu. Dzięki temu, minimalizowane jest niebezpieczeństwo uszkodzenia przez wyładowania elektrostatyczne. 10 Programowanie za pomocą JTAG Programowanie może być również metodą testowania. Próba zaprogramowania na kilka sposobów układu FPGA jest dobrym testem weryfikującym sprawność tranzystorów sterujących połączeniami pomiędzy blokami logicznymi. W związku z tym, także i kod programujący może być wprowadzony do ciągu wsuwanych do ścieżki bitów testowych. Ostatecznie, wygoda programowania, oferowana przez JTAG pozwala na sprawne aktualizacje oprogramowania w urządzeniach działających u klientów końcowych. W tej sytuacji proces programowania polegać będzie na załadowaniu nowego oprogramowania firmware do pamięci Flash urządzenia, a następnie zrestartowaniu całego systemu. Nowe oprogramowanie zostanie zaczytane automatycznie po restarcie sprzętu i całość będzie ponownie gotowa do pracy, bez ingerencji do wnętrza obudowy. 11 Programowanie za pomocą JTAG 12 Podsumowanie Podsumowując, zastosowanie ścieżki brzegowej w projektach układów cyfrowych pozwala na uproszczenie ich konstrukcji, zmniejszenie rozmiarów, usprawnienie procesu produkcyjnego, a przede wszystkim wydajne przetestowanie wyprodukowanych układów, tak by uniknąć wypuszczania na rynek zbyt dużej ilości niesprawnych podzespołów. Producenci układów scalonych znając te fakty chętnie wprowadzają boundary-scan do swoich produktów i oferując bez dodatkowych opłat, konieczne do symulacji pliki BDL. Wygląda na to, że korzyści płynące z wbudowania ścieżki krawędziowej w produkowane układy bezsprzecznie przewyższają ewentualny wzrost nakładów związany z doborem podzespołów zgodnych z JTAG. 13 ByteBlaster programator ISP dla układów firmy Altera OPIS ZESTAWU SZKOLENIOWEGO Z OPIS ZESTAWU SZKOLENIOWEGO Z OPIS ZESTAWU SZKOLENIOWEGO Z OPIS ZESTAWU SZKOLENIOWEGO Z UKAADAMI PROGRAMOWALNYMI FIRMY UKAADAMI PROGRAMOWALNYMI FIRMY UKAADAMI PROGRAMOWALNYMI FIRMY UKAADAMI PROGRAMOWALNYMI FIRMY ALTERA. ALTERA. ALTERA. ALTERA. 15 OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. 16 OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. Światowy standard testowania i programowania układów cyfrowych Od 1990 roku ujęty w normie IEEE 1149.1 Jest to obecnie najpopularniejszy interfejs wykorzystywany do testowania i programowania (konfigurowania) w systemie układów PLD i ASIC 17 18 OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. Komórka BSC stanowi podstawowy element umożliwiający testowanie krawędziowe. TRYBY PRACY BSC : NORMALNY TESTOWY 19 OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. KONTROLER T A P Test Access Port Jest 16-stanowym automatem skończonym, dokonuje on operacji na rejestrach danych i rejestrach instrukcji. Zawiera 9 instrukcji z których 3 powinny być zaimplementowane w układzie : BYPASS SAMPLE / PRELOAD EXTEST 20 OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. Kontroler TAP - graf automatu 21 OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. OPIS INTERFEJSU JTAG. Sposób podłączenia układów w łańcuchu rejestrów ścieżki krawędziowej 22