JTAG cz1.pdf

(373 KB) Pobierz
JTAG - światowy standard testowania i programowania układów cyfrowych, cz. 1
S P R Z Ę T
JTAG − światowy standard
testowania i programowania
układów cyfrowych, część 1
Przedstawiamy pierwszy
w†krajowej prasie technicznej, tak
szczegÛ³owy opis standardu JTAG.
Standard ten nabiera coraz
wiÍkszego znaczenia praktycznego,
gdyø wiÍkszoúÊ aktualnie
produkowanych cyfrowych
uk³adÛw scalonych zawiera
w†swoim wnÍtrzu elementy
architektury JTAG. Dotyczy to
zarÛwno struktur PLD, jak
i FPGA, mikroprocesorÛw,
mikrokontrolerÛw, a†takøe
uk³adÛw serii 74.
W†ci¹gu kilku najbliøszych lat
JTAG stanie siÍ zapewne
powszechnie uznawanym
standardem, poniewaø jego
elastycznoúÊ pozwala na
wykorzystanie go do
programowania uk³adÛw ISP
(zw³aszcza struktur PLD
i†mikrokontrolerÛw).
Na pocz¹tku lat 90. organizacja IEEE
(ang. Institute of Electrical and Electronic
Engineers - Instytut InøynierÛw ElektrykÛw
i†ElektronikÛw) przedstawi³a now¹ normÍ
standaryzuj¹c¹ sposÛb testowania uk³adÛw
scalonych. Nosi ona nazwÍ IEEE 1149.1
ìThe Test Access Port and Boundary Scan
Architectureî, co moøna przet³umaczyÊ
jako ìPort dostÍpu dla testÛw i†architek-
tura testowania úcieøk¹ krawÍdziow¹î. Nor-
ma ta dotyczy metody umoøliwiaj¹cej
wprowadzanie i†odczyt danych testowych
do dowolnego uk³adu cyfrowego (wyko-
nanego zgodnie z†norm¹ JTAG) za poúred-
nictwem specjalnej úcieøki testowej. PojÍ-
cie ìúcieøki testowejî odpowiada pewnemu
fizycznemu i†logicznemu fragmentowi
wnÍtrza uk³adu, wydzielonemu specjalnie
do celÛw testowania i/lub programowania
uk³adu.
duøej skali integracji trudno jest dok³adnie
przetestowaÊ, ze wzglÍdu na ograniczon¹
moøliwoúÊ wyprowadzenia na zewn¹trz
struktury duøej liczby punktÛw logicznych.
Do dok³adnego sprawdzenia takich uk³adÛw
niezbÍdne s¹ specjalne przyrz¹dy pomiaro-
we, ktÛrych ceny (ze wzglÍdu na specyfikÍ
dzia³ania) osi¹gaj¹ poziom setek tysiÍcy, a
nawet milionÛw USD.
Alternatyw¹ testowania ìrÍcznegoî jest
JTAG - zamiast analizy setek lub tysiÍcy
punktÛw pomiarowych testowanego uk³adu
wystarczy wpisaÊ poprzez z³¹cze szeregowe
JTAG (uk³ady s¹ ³¹czone w†³aÒcuch) odpo-
wiedni program testowy. Wyniki dzia³ania
tego programu analizuje komputer wypo-
saøony w†odpowiednie (lecz tanie, ze wzglÍ-
du na uniwersalnoúÊ) oprogramowanie. Wy-
niki testu moøna otrzymaÊ po kilkunastu
sekundach lub co najwyøej kilku minutach
dzia³ania programu! W†przypadku wykry-
cia b³Ídu wskazywany jest nie tylko uszko-
dzony uk³ad, lecz takøe jego wyprowadze-
nie, co niezwykle upraszcza usuwanie uste-
rek.
Jest to chyba wystarczaj¹cy powÛd, aby
uznaÊ JTAG za zjawisko prze³omowe
w testowaniu uk³adÛw programowalnych.
Do czego jest potrzebny
JTAG?
Z³oøonoúÊ wspÛ³czeúnie konstruowanych
urz¹dzeÒ cyfrowych roúnie w†ogromnym
tempie. Miliony tranzystorÛw integrowanych
w†strukturach uk³adÛw scalonych tworz¹
bardzo rozbudowane struktury logiczne,
ktÛrych sprawdzenie standardowymi meto-
dami testowymi (analiza sygnatur, kontrola
reakcji urz¹dzenia na wymuszone pobudze-
nia logiczne) wymaga ogromnej wiedzy od
inøynierÛw, duøego doúwiadczenia, zabiera
bardzo duøo czasu i†nie daje zbyt duøej
pewnoúci co do otrzymanych wynikÛw. Co
wiÍcej, wspÛ³czesne procesory i†uk³ady PLD
Powstanie standardu
Idea standardu JTAG powsta³a w†1985
roku, kiedy to Frans Beenker, pracownik
Philips Research Laboratories opublikowa³
artyku³, w†ktÛrym wyrazi³ potrzebÍ opraco-
wania lepszego, szybszego, w†wiÍkszym stop-
niu opartego na strukturalnym podejúciu
sposobu testowania z³oøonych uk³adÛw cyf-
rowych. Wyrazi³ zdecydowane przekonanie,
øe to w³aúnie na technikÍ testowania úcieøk¹
krawÍdziow¹ padnie wybÛr, gdyø umoøliwia
rozwi¹zanie wielu wspÛ³czesnych i†przy-
sz³ych problemÛw zwi¹zanych z†przeprowa-
dzaniem testÛw.
WkrÛtce po pojawieniu siÍ artyku³u Be-
enkera, grupa europejskich producentÛw po-
par³a szybkie utworzenie standardu opisu-
j¹cego sposÛb naprawy i†testowania uk³adÛw
cyfrowych. W†wyniku tych dzia³aÒ powsta³a
organizacja Joint European Test Action Group
(JETAG - w†wolnym przek³adzie ìPo³¹czona
europejska grupa na rzecz opracowania tes-
tuî). WkrÛtce do³¹czy³y do niej firmy ame-
rykaÒskie, tworz¹c Joint Test Action Group
(JTAG).
Pierwsza wersja standardu JTAG zapropo-
nowana zosta³a w†roku 1986 przez Been-
kera, Chantal Vivier (Bull Systems) i†Colina
Maundera (British Telcom Research Labs).
PÛüniej pojawi³y siÍ nastÍpne propozycje.
W†roku 1988 wersja 2.0 standardu JTAG
zosta³a przed³oøona IEEE jako propozycja
miÍdzynarodowego standardu. Organizacja
Rys. 1.
Elektronika Praktyczna 1/98
75
23347271.025.png 23347271.026.png 23347271.027.png 23347271.028.png
S P R Z Ę T
Rys. 2.
IEEE przyjͳa go w†dniu 15 lutego 1990,
nadaj¹c mu numer 1149.1 i†nazwÍ ì The Test
Access Port and Boundary Scan Architec-
ture î.
Jak s¹ testowane uk³ady?
Testowanie przy pomocy úcieøki krawÍ-
dziowej nie wymaga fizycznego dostÍpu do
kaødego wyprowadzenia uk³adu scalonego,
aby przeprowadziÊ test lub zlokalizowaÊ
uszkodzenie. Uk³ad scalony, zgodny z†tym
standardem, posiada w†swoim wnÍtrzu ze-
staw bramek logicznych tworz¹cych specjal-
ny ³aÒcuch. Bramki te ulokowane s¹ miÍdzy
wyprowadzeniami uk³adu a†jego wewnÍt-
rznymi uk³adami logicznymi - st¹d nazwa
ìtestowanie krawÍdzioweî.
Podstawowa architektura úcieøki krawÍ-
dziowej przedstawiona zosta³a na rys.1 .
Prostok¹ty ulokowane miÍdzy wyprowa-
dzeniami uk³adu i†logik¹ wewnÍtrzn¹ no-
sz¹ nazwÍ komÛrek úcieøki krawÍdziowej
(ang. Boundary Scan Cells - BSC ). KomÛr-
ki te s¹ po³¹czone w†taki sposÛb, by
powsta³a úcieøka miÍdzy wejúciem ( TDI )
i†wyjúciem danych testowych uk³adu
( TDO ).
Podczas normalnej pracy sygna³y wejúcio-
we i†wyjúciowe s¹ przekazywane od stan-
dardowych wejúÊ do standardowych wyjúÊ
uk³adu. W†trybie testowania krawÍdziowego
komÛrki BSC s¹ sterowane w†taki sposÛb,
øe z wejúcia TDI moøna wprowadziÊ do
uk³adÛw wewnÍtrznych dane testowe przez
dowoln¹ z†komÛrek BSC , znajduj¹c¹ siÍ od
strony wejúcia. Wejúcia TCK i† TMS umoø-
liwiaj¹ rÛwnoleg³e sterowanie komÛrkami
BSC . Sygna³y wyjúciowe logiki wewnÍtrznej
zostaj¹ nastÍpnie wyprowadzone przez od-
powiednie komÛrki BSC na wyjúcie TDO .
Taka metoda jest przydatna do testowania
wewnÍtrznych uk³adÛw logicznych elemen-
tu scalonego.
ZewnÍtrzne testowanie po³¹czeÒ uk³ad-
úcieøka, znajdowanie niesprawnych po³¹czeÒ
lutowanych lub uszkodzeÒ s¹siaduj¹cych
uk³adÛw scalonych jest dokonywane przez
Rys. 4.
wyprowadzenie sygna³u testowego z†wyjúcio-
wych komÛrek BSC jednego uk³adu i†analizÍ
sygna³u pojawiaj¹cego siÍ na wejúciu komÛ-
rek BSC wspÛ³pracuj¹cego uk³adu scalonego.
Taki sposÛb testowania pozwala unikn¹Ê
wielu problemÛw zwi¹zanych z†fizycznym
dostÍpem do wyprowadzeÒ uk³adÛw.
KomÛrka BSC
KomÛrka BSC stanowi podstawowy ele-
ment umoøliwiaj¹cy testowanie krawÍdzio-
we. Schemat takiej komÛrki przedstawia
rys.2 . Jak z†niego wynika, zawiera ona prze-
rzutnik D†typu zatrzask oraz bufory trÛjsta-
nowe. Bufory sterowane s¹ sygna³ami przez
port dostÍpu testowego ( TAP ), ktÛrego dzia-
³anie zostanie bardziej szczegÛ³owo omÛ-
wione dalej.
Oczywiúcie, struktura typowej komÛrki
BSC jest zazwyczaj daleko bardziej z³oøona
niø wynika³oby to z†rys. 2. Jest tak dlatego,
øe wyprowadzenia uk³adÛw scalonych mog¹
byÊ dwukierunkowe, trÛjstanowe itd. Ilustra-
cja ta ma jedynie u³atwiÊ Czytelnikowi zro-
zumienie idei i†sposobu wykorzystania ko-
mÛrki BSC .
prowadziÊ. Wejúcie zegarowe jest wykorzys-
tywane do wprowadzenia do przerzutnika
D danych obecnych na linii Wejúcie szere-
gowe . W†przedstawianym przyk³adzie liniÍ
Wejúcie szeregowe na rys.1 stanowi linia
Wejúcie danych testowych . Poniewaø linie
sterowania komÛrek BSC s¹ po³¹czone rÛw-
nolegle, kolejne impulsy zegarowe bÍd¹ po-
wodowaÊ przesuwanie danych z†komÛrki
BSC do komÛrki o†niøszym numerze w†³aÒ-
cuchu komÛrek BSC . Istnieje takøe moøli-
woúÊ zapamiÍtania danych wystÍpuj¹cych
na wejúciach komÛrek BSC . Jeúli do uk³adu
BSC zostan¹ wprowadzone takie dane lub
dane testowe zostan¹ z†niego wyprowadzone
lub doÒ wprowadzone, mÛwi siÍ, øe uk³ad
BSC jest w†trybie Sample (prÛbkowania) lub
Preload (³adowania danych).
KomÛrki BSC - tryb pracy
podczas testÛw
Omawiaj¹c tryb testowy trzeba zdawaÊ
sobie przede wszystkim sprawÍ z†tego, øe
linie steruj¹ce wszystkich komÛrek s¹ po-
³¹czone rÛwnolegle. Innymi s³owy, podanie
impulsu zegarowego na jedn¹ z†komÛrek
BSC jest rÛwnowaøne podaniu go na wszys-
tkie komÛrki, ktÛre mog¹ byÊ albo w†trybie
testowym, albo w†trybie zwyk³ym. PamiÍ-
taj¹c o†tym, moøna wyobraziÊ sobie nastÍ-
puj¹ce dzia³anie uk³adu.
Dane szeregowe s¹ wprowadzane przez
wejúcie Szeregowe wejúcie danych do ko-
mÛrek BSC o†numerach 6, 5 i†4†podczas
zwyk³ej pracy uk³adu. Na liniÍ steruj¹c¹
WybÛr trybu testowego jest podawany na-
stÍpnie stan wysoki. Powoduje to, øe dane
wprowadzone do komÛrek 6, 5†i†4†podawa-
ne s¹ na wewnÍtrzne uk³ady przez linie
Wyjúcie danych . NastÍpnie stan linii PrzesuÒ/
£aduj zostanie zmieniony na niski, co spo-
woduje podanie sygna³Ûw wyjúciowych uk³a-
dÛw wewnÍtrznych na wejúcia D przerzut-
KomÛrki BSC - normalny
tryb pracy
Dla celÛw niniejszej dyskusji za³Ûømy, øe
rys. 2†przedstawia schemat dowolnej komÛr-
ki BSC z†rys.1. Podczas normalnej pracy
uk³adu dane pochodz¹ce z†wewnÍtrznych
uk³adÛw s¹ podawane na liniÍ DATA INPUT
komÛrki. Stan linii steruj¹cej TEST/NOR-
MAL jest niski, natomiast linii steruj¹cej
SHIFT/LOAD - wysoki. Takie warunki umoø-
liwiaj¹ niezak³Ûcon¹ transmisjÍ danych do
wyjúcia DATA OUT. Ca³y uk³ad scalony
funkcjonuje tak, jakby komÛrki BSC nie
istnia³y.
Podczas gdy uk³ad scalony realizuje swe
zwyk³e funkcje, do komÛrki BSC moøna
wprowadziÊ dane testowe lub je z†niej wy-
Rys. 3.
76
Elektronika Praktyczna 1/98
23347271.001.png 23347271.002.png 23347271.003.png 23347271.004.png
S P R Z Ę T
Rys. 5.
dzono na wejúciu komÛrki 6 jest niepra-
wid³owa, poniewaø wejúcie tej komÛrki
zosta³o zwarte z†wejúciem komÛrki 5. Lo-
giczne "0" na wejúciu komÛrki 8†oznacza,
øe wejúcie to zosta³o zwarte z†mas¹. Na-
stÍpnie na wejúcie komÛrek BSC jest po-
dawana sekwencja testowa o†postaci xxxx
010x xxxx xxxx. Wykonanie funkcji EX-
TEST pozwala stwierdziÊ, øe sekwencja na
wejúciach drugiego uk³adu ma postaÊ xxxx
xxxx 0x11 xxxx. KrÛtka analiza pozwala
znaleüÊ rozstrzygniÍcie: po³¹czenie komÛ-
rek 10 i†8†jest zwarte z†mas¹, natomiast
po³¹czenia komÛrek 5, 6, 11 i†12 zosta³y
zwarte ze sob¹.
Organizacja uk³adÛw BSC
i†kontroler TAP
Po przyjrzeniu siÍ podstawom koncepcji
testowania krawÍdziowego, kolejnym kro-
kiem jest poznanie organizacji uk³adÛw BSC .
Schemat architektury uk³adÛw BSC , zgodny
z†norm¹ IEEE 1149.1, przedstawiono na rys.
5 .
nikÛw komÛrek BSC 1, 2†i†3. Impuls zega-
rowy powoduje zapisanie tych sygna³Ûw
w†przerzutnikach komÛrek. Z†kolei na linii
PrzesuÒ/£aduj ponownie pojawia siÍ stan 1,
a†na linii WybÛr trybu testowego stan 0. Trzy
kolejne impulsy zegarowe powoduj¹ wypro-
wadzenie informacji zawartej w†komÛrkach,
a†wiÍc informacji pobranej z†wyjúÊ uk³adÛw
wewnÍtrznych.
Mechanizm ten dobrze ilustruje nastÍpu-
j¹cy przyk³ad - uk³ad scalony z†rys. 1†za-
wiera trzy inwertery, ktÛrych wejúcia i†wyj-
úcia znajduj¹ siÍ odpowiednio po lewej
i†prawej stronie schematu. Jeúli przez wejúcie
TDI wprowadzona zostanie sekwencja
101xxx (sekwencja wprowadzana jest po-
czynaj¹c od LSB, x†- stany nieistotne) przed-
stawiona na rys. 3 , to na wejúciach dolnego
i†gÛrnego inwertera pojawi¹ siÍ "1" logiczne,
natomiast na wejúciu úrodkowego - "0" lo-
giczne.
Po wygenerowaniu przez uk³ad TAP
sekwencji testowania, w†komÛrkach BSC 1,
2†i†3†znajd¹ siÍ uzupe³nienia stanÛw po-
przednio wprowadzonych do komÛrek 4,
5†i†6. Jeúli uk³ady wewnÍtrzne dokona³y
poprawnej operacji, po odpowiednich syg-
na³ach steruj¹cych z†uk³adu TAP sekwen-
cja wyjúciowa bÍdzie mia³a postaÊ xxx010
(bit LSB sekwencji wyprowadzany jest
pierwszy, x - stany nieistotne). Jakakolwiek
inna sekwencja oznacza, øe uk³ad nie dzia-
³a prawid³owo. Zgodnie z†norm¹ IEEE
1149.1 taka funkcja testowa nosi nazwÍ
INTEST.
Inny, przydatny rodzaj testu, ktÛry moø-
na przeprowadziÊ wykorzystuj¹c uk³ady
BSC , nosi nazwÍ EXTEST. Wykorzystywa-
ny jest do testowania zewnÍtrznych po³¹-
czeÒ miÍdzy uk³adami wyposaøonymi
w† BSC . Test ten polega na za³adowaniu do
komÛrek sekwencji i†sprawdzeniu czy w†po-
³¹czeniach miÍdzy uk³adami nie ma zwarÊ
ani rozwarÊ.
Na rys. 4 przedstawiono dwa po³¹czone
ze sob¹ uk³ady wyposaøone w†úcieøkÍ BSC .
Dwa z†po³¹czeÒ zosta³y zwarte kropl¹ cyny,
a†trzecie jest zwarte do masy. S¹ to przy-
padki czÍsto spotykane w†procesie produk-
cji i†przy usuwaniu usterek uk³adÛw. Oto
jak system BSC moøe wykryÊ te b³Ídy,
wykorzystuj¹c funkcje SAMPLE/PRELOAD
i†EXTEST: do komÛrek BSC przy pomocy
funkcji SAMPLE/PRELOAD ³adowana jest
sekwencja testowa o†postaci xxxx 101x
xxxx xxxx (x - stan nieistotny). Po uru-
chomieniu funkcji EXTEST na wyjúciach
komÛrek BSC 11 i†10 pojawiaj¹ siÍ "1"
logiczne, natomiast na wyjúciu komÛrki
BSC 11 - logiczne "0". Funkcja EXTEST
zbiera nastÍpnie dane doprowadzone do
wejúÊ komÛrek 5, 6†i†7†drugiego uk³adu.
Dane te s¹ nastÍpnie analizowane. Wyjúcio-
wa sekwencja testowa powinna mieÊ postaÊ
xxxx xxxx 1x01 xxxxx, ale z†zebranych
danych wynika, øe jest to xxxx xxxx 0x11
xxxx. Logiczna "1", ktÛrej obecnoúÊ stwier-
Zawiera ona trzy podstawowe bloki fun-
kcjonalne:
- Kontroler TAP : jest to 16-stanowy auto-
mat, zrealizowany z†uøyciem mikrokon-
trolera, reaguj¹cy na sygna³y podawane
na Test Access Port i†generuj¹cy podsta-
wowe sygna³y zegarowe i†steruj¹ce dla
pozosta³ych blokÛw funkcjonalnych.
- Rejestr instrukcji : jest to szeregowy rejestr
FIFO, do ktÛrego ³adowany jest kod po-
lecenia BSC . Kod ten wskazuje kontro-
lerowi TAP , jaki test naleøy przeprowa-
dziÊ.
- Rejestry danych testowych : s¹ to takøe
szeregowe rejestry FIFO. Rejestr ten za-
Rys. 6.
Elektronika Praktyczna 1/98
77
23347271.005.png 23347271.006.png 23347271.007.png 23347271.008.png 23347271.009.png 23347271.010.png 23347271.011.png 23347271.012.png 23347271.013.png 23347271.014.png 23347271.015.png 23347271.016.png 23347271.017.png 23347271.018.png 23347271.019.png 23347271.020.png
S P R Z Ę T
wiera wszystkie po³¹czone ³aÒcuchowo
komÛrki BSC . Pozosta³e rejestry z†tej gru-
py to Rejestr obejúciowy oraz Rejestr
identyfikacji uk³adu .
Trzy wyøej wymienione bloki wspÛ³pra-
cuj¹ ze úwiatem zewnÍtrznym za poúrednic-
twem czterech (ewentualnie piÍciu) linii we/
wy. S¹ to: sygna³ zegarowy ( TCK ), sygna³
wyboru trybu pracy ( TMS ), testowe dane
wejúciowe ( TDI ), testowe dane wyjúciowe
( TDO ) oraz - opcjonalnie - zerowanie testu
(TRST).
Oto skrÛcony opis poszczegÛlnych syg-
na³Ûw:
- Sygna³ zegarowy ( TCK ), taktuj¹cy kon-
troler TAP ,†jest ca³kowicie niezaleøny
od wszystkich innych sygna³Ûw zega-
rowych, ktÛre mog¹ byÊ doprowadzane
do uk³adÛw wewnÍtrznych uk³adu zgod-
nego z†norm¹ IEEE 1149.1. Zbocze na-
rastaj¹ce TCK inicjuje ³adowanie infor-
macji znajduj¹cych siÍ na wejúciach
TMS i† TDI , natomiast zbocze opadaj¹ce
powoduje wyprowadzenie informacji na
wyjúcie TDO . Inaczej mÛwi¹c, dane s¹
wprowadzane do komÛrek BSC zbo-
czem narastaj¹cym sygna³u TCK , wy-
prowadzane zaú zboczem opadaj¹cym
tego sygna³u.
- Sygna³ selekcji trybu testowego ( TMS ) -
na wejúcie to jest podawana sekwencja zer
i†jedynek, wprowadzana nastÍpnie do kon-
trolera TAP . Na podstawie sekwencji kon-
troler przyjmuje jeden z†16 stanÛw, i†ge-
neruje odpowiadaj¹ce temu stanowi syg-
na³y taktuj¹ce i†steruj¹ce wszystkie pozo-
sta³e czÍúci uk³adu BSC .
- Wejúcie danych testowych ( TDI ): jest to
szeregowe wejúcie danych, ktÛrymi mog¹
byÊ instrukcje lub informacje przeznaczo-
na do za³adowania do uk³adÛw BSC .
Wprowadzanie odbywa siÍ poczynaj¹c od
LSB. Liczba wprowadzanych bitÛw jest
zaleøna od liczby komÛrek BSC oraz kodu
wprowadzanej instrukcji. Dane s¹ zatrzas-
kiwane w†rejestrze zboczem narastaj¹cym
TCK .
- Wyjúcie danych testowych ( TDO ): jest to
szeregowe wyjúcie danych, na ktÛre kon-
troler TAP wyprowadza wyniki testowa-
nia lub instrukcjÍ. Dane taktowane s¹
zboczem opadaj¹cym sygna³u TCK , a†ich
sekwencjÍ rozpoczyna LSB. Jeúli nie jest
dokonywana operacja wyprowadzania da-
nych, wyjúcie to jest wprowadzane w†stan
wysokiej impedancji.
- Wejúcie zerowania testu ( TRST , opcjo-
nalne): norma IEEE 1149.1 stawia wy-
maganie, by uk³ad z†ni¹ zgodny by³
inicjalizowany przez wprowadzenie
w†konkretny stan. Jest to stan Test Logic
Reset State (stan wyzerowania logicznych
uk³adÛw testuj¹cych). Stan ten moøna
wymusiÊ podaj¹c na wejúcie TCK piÍÊ
impulsÛw zegarowych i†utrzymuj¹c na
wejúciu TMS stan wysoki. Jednak norma
przewiduje takøe moøliwoúÊ wyzerowa-
nia uk³adÛw niezaleønie od stanu wejúÊ
TCK i† TMS . Moøna to zrealizowaÊ do-
daj¹c obwÛd zerowania uk³adÛw testu-
j¹cych po w³¹czeniu zasilania. Inna moø-
liwoúÊ to uzupe³nienie uk³adu o†wejúcie
TRST.
Rys. 7.
Kontroler TAP
Kontroler TAP jest, jak juø wczeúniej
wspomniano, 16-stanowym automatem skoÒ-
czonym (ma okreúlone wszystkie moøliwe
stany), ktÛry dzia³a zgodnie ze schematem
przedstawionym na rys. 6 . Stany, ktÛrych
nazwy zawieraj¹ znaki ì-DRî dotycz¹ ope-
racji na rejestrach danych. Oznacza to, øe
kontroler dokonuje pewnej operacji, okreú-
lonej przez zawartoúÊ rejestru instrukcji, na
jednym z†rejestrÛw danych. Stany, ktÛrych
nazwy zawieraj¹ znaki ì-IRî dotycz¹ ope-
racji na rejestrze instrukcji.
Warunek logiczny podany obok nazwy
stanu ("1" lub "0") wskazuje, jak¹ wartoúÊ
musi mieÊ linia TMS w†momencie wyst¹pie-
nia nastÍpnego zbocza narastaj¹cego sygna³u
TCK , by dosz³o do przejúcia do nastÍpnego
stanu automatu. Cykl taktowania kontrolera
TAP obejmuje czas od pojawienia siÍ zbocza
narastaj¹cego TCK do zbocza opadaj¹cego
tego sygna³u.
Diagram stanÛw zawiera szeúÊ stanÛw sta-
bilnych: Test-Logic-Reset (zerowanie testo-
wych uk³adÛw logicznych), Run-Test/Idle
(Test/Oczekiwanie), Shift-DR (przesuniÍcie
zawartoúci rejestru danych), Pause-DR , Shift-
IR (przesuniÍcie zawartoúci rejestru instruk-
cji), Pause-IR . Naleøy zwrÛciÊ uwagÍ na to,
øe gdy na linii TMS panuje stan wysoki,
moøliwy jest tylko jeden stan stabilny - jest
to stan Test-Logic-Reset . Oznacza to, øe jeúli
na linii TMS panuje stan wysoki, wyzero-
wanie uk³adÛw úcieøki krawÍdziowej nast¹pi
po podaniu piÍciu impulsÛw TCK .
Po w³¹czeniu zasilania lub podczas nor-
malnej pracy uk³adu scalonego kontroler
TAP jest wprowadzany w†stan wyzerowania
przez podanie 1†na liniÍ TMS oraz piÍciu
impulsÛw na liniÍ TCK . NastÍpnie kontroler
generuje sygna³, ktÛry wprowadza uk³ady
úcieøki krawÍdziowej w†stan umoøliwiaj¹cy
normaln¹ pracÍ uk³adu. Gdy powstaje po-
trzeba przeprowadzenia testu, na wejúcia
TMS i† TCK jest podawana sekwencja powo-
duj¹ca przejúcie kontrolera TAP przez po-
ø¹dane stany.
Stany blokÛw odnosz¹cych siÍ do rejes-
trÛw danych ( DR ) lub rejestru instrukcji ( IR )
s¹ takie same. Pierwsza operacja po wejúciu
do dowolnego z†tych blokÛw to za³adowanie
informacji. W†stanie Capture-DR kontroler
dokonuje za³adowania danych do wybranej
úcieøki danych. Jeúli wybranym rejestrem
jest rejestr BSR, wprowadzane s¹ do niego
stany wejúÊ danych uk³adu. W†stanie Cap-
ture-IR kontroler dokonuje wprowadzenia
stanu uk³adÛw úcieøki krawÍdziowej do re-
jestru instrukcji.
Ze stanu Capture kontroler TAP przecho-
dzi do stanu Shift (Przesuwanie) lub Exit1
(Wyjúcie 1). Na ogÛ³ stan Shift nastÍpuje po
stanie Capture i†dane testowe lub informacja
o†statusie mog¹ byÊ wyprowadzone na ze-
wn¹trz celem analizy, a†nowe dane wprowa-
dzone do uk³adu. Po przeprowadzeniu ope-
racji w³aúciwych stanowi Shift , kontroler
przez stany Exit1 i† Update powraca do stanu
Run-Test/Idle lub przez stan Exit1 przechodzi
do stanu Pause . W stanie Pause zatrzymano
przesuwanie informacji przez rejestry danych
lub instrukcji, w†celu przeprowadzenia innej
wymaganej operacji, np. ³adowania pamiÍci
buforowej testera. Przesuwanie moøe byÊ
nastÍpnie ponownie zainicjowane po prze-
júciu ze stanu Pause do stanu Shift przez stan
Exit2 lub zaniechane przez przejúcie do stanu
Run-Test/Idle przez stany Exit2 i† Update .
Rejestry wymagane przez
standard
Norma IEEE 1149.1 narzuca obecnoúÊ
kilku rejestrÛw, a†kilka innych proponuje
jako opcjonalne: Instruction Register (Rejestr
instrukcji), Boundary Scan Register (Rejestr
úcieøki krawÍdziowej), Bypass Register (Re-
78
Elektronika Praktyczna 1/98
23347271.021.png 23347271.022.png 23347271.023.png
S P R Z Ę T
jestr obejúcia) i† Device Indentification Regis-
ter (Rejestr identyfikacji uk³adu).
Instruction Register (obowi¹zkowy) za-
wiera adresy i†sygna³y, steruj¹ce niezbÍdne
do w³¹czenia wybranego rejestru danych
w†úcieøkÍ testow¹. Kontroler TAP dokonuje
operacji na tym rejestrze znajduj¹c siÍ w†do-
wolnym ze stanÛw IR.
Instruction Register zawiera rejestr prze-
suwny FIFO i†rejestr instrukcji typu zatrzask.
Jeúli kontroler otrzymuje sygna³ Reset, usta-
wia w†rejestrze instrukcji stany ì1î. Wymu-
sza to na uk³adach úcieøki krawÍdziowej
normalny tryb pracy i†w³¹cza Bypass Re-
gister (lub Device Indentification Register )
miÍdzy wejúcie TDI i†wyjúcie TDO . Uk³ad
zgodny z†norm¹ IEEE 1149.1 posiada dwa
rejestry danych. S¹ to Bypass Register i† Boun-
dary Scan Register . Opcjonalny jest trzeci
rejestr o†nazwie Device Indentification Re-
gister . Rejestry te w³¹czane s¹ miÍdzy we-
júcie TDI a†wyjúcie TDO .
Rejestr Instrukcji podaje adres umoøliwia-
j¹cy dostÍp do jednego z†rejestrÛw danych,
gdy kontroler TAP znajduje siÍ w†stanie
skanowania rejestrÛw danych. Na podstawie
sygna³u steruj¹cego z†kontrolera TAP jest
dokonywana selekcja wyjúcia rejestru da-
nych, ktÛre zostanie do³¹czone do wyjúcia
TDO . Selekcja jednej z†linii rejestrÛw da-
nych oznacza, øe wszystkie inne linie po-
zostaj¹ w†swych dotychczasowych stanach.
Rejestr Boundary Scan Register zawiera
komÛrki zorganizowane w†úcieøkÍ wokÛ³
wejúÊ i†wyjúÊ funkcjonalnej czÍúci uk³adu
scalonego.
Bypass Register (obowi¹zkowy) zawiera
tylko 1†bit. Po otrzymaniu sygna³u zezwo-
lenia rejestr ten tworzy jednobitowe po³¹-
czenie miÍdzy TDI i† TDO . Rejestr ten po-
zwala na ominiÍcie úcieøki krawÍdziowej
uk³adÛw, ktÛre nie s¹ objÍte danym testem.
Za³Ûømy, øe mamy do czynienia z†uk³a-
dami scalonymi po³¹czonymi jak na rys. 7a.
Jeúli wszystkie komÛrki úcieøki krawÍdzio-
wej zostan¹ uaktywnione, ca³a d³ugoúÊ úcieø-
ki wyniesie 24 bity. Jeúli jednak testowi
powinien zostaÊ poddany tylko uk³ad znaj-
duj¹cy siÍ w†úrodku, naleøy tak skonfigu-
rowaÊ úcieøkÍ testu, by pierwszy i†ostatni
uk³ad scalony wprowadza³y do tej úcieøki
tylko jeden bit (rys. 7b). W†efekcie úcieøka
bÍdzie zawieraÊ tylko 10 bitÛw (8 w†úrod-
kowym i†po 2†w†uk³adach zewnÍtrznych),
a†nie 24. Czas testowania staje siÍ dziÍki
temu o†58% krÛtszy. Problem nabiera in-
nego wymiaru w†przypadku procesora Pen-
tium, ktÛrego úcieøka krawÍdziowa zawiera
oko³o 170 komÛrek. Rejestr Bypass jest
wybierany, gdy w† Rejestrze instrukcji znaj-
duj¹ siÍ same jedynki.
Rejestr identyfikacji uk³adu (opcjonalny)
zawiera informacjÍ o†producencie uk³adu,
numerze uk³adu, jego wersji i†inne dane
dotycz¹ce uk³adu. Po zaadresowaniu zawar-
toúÊ tego rejestru moøe oczywiúcie byÊ wy-
prowadzona na zewn¹trz uk³adu. Jest to
bardzo przydatne dla stwierdzenia czy w†da-
nym gnieüdzie karty znajduje siÍ w³aúciwy
uk³ad.
úcieøki krawÍdziowej miÍdzy linie TDI
i† TDO . Dane zawarte w†rejestrze s¹ wypro-
wadzane na fizyczne wyprowadzenia uk³a-
du scalonego, ewentualnie zewnÍtrzne dane
testowe s¹ wprowadzane do rejestru. Kod
instrukcji EXTEST sk³ada siÍ z†samych zer.
Tylko testowanie?
Po przeczytaniu tego artyku³u moøna od-
nieúÊ wraøenie, øe JTAG jest wysokospecja-
lizowanym interfejsem s³uø¹cym tylko do
testowania uk³adÛw cyfrowych. Pierwotnie
rzeczywiúcie tak by³o.
W†chwili obecnej JTAG jest wykorzysty-
wany takøe do programowania uk³adÛw
programowanych w†systemie ISP. Od d³uø-
szego czasu dostÍpne s¹ programowane
w†systemie programowalne struktury logicz-
ne (FPGA i†CPLD), a†takøe coraz wiÍksza
liczba procesorÛw i†mikrokontrolerÛw, ktÛ-
re mog¹ programowaÊ siÍ same, bez koniecz-
noúci stosowania dodatkowych, czÍsto dro-
gich narzÍdzi.
Ze wzglÍdu na rosn¹ce znaczenie na rynku
elektroniki nowoczesnych struktur logicz-
nych ISP, coraz wiÍkszego znaczenia bÍdzie
nabiera³o maksymalne u³atwienie ich progra-
mowania. Tak wiÍc, dziÍki interfejsowi JTAG
nie trzeba bÍdzie juø wkrÛtce kupowaÊ spe-
cjalizowanego programatora (czÍsto z†szere-
giem przystawek). Co wiÍcej - po zmonto-
waniu urz¹dzenia sk³adaj¹cego siÍ z†wielu
uk³adÛw ISP z†wbudowanym interfejsem
JTAG (ich typ i†moøliwoúci s¹ bez znaczenia)
moøna je zaprogramowaÊ jednoczeúnie, co
znacznie skraca czas produkcji!
Piotr Zbysiński, AVT
Instrukcje standardu
Norma IEEE 1149.1 wymienia dziewiÍÊ
instrukcji wykorzystywanych przez kontro-
ler TAP , z†ktÛrych trzy winny byÊ zaim-
plementowane w†uk³adzie, a†pozosta³ych
szeúÊ jest opcjonalnych. Trzy pierwsze to
instrukcje: BYPASS , SAMPLE/PRELOAD
i† EXTEST . Instrukcje opcjonalne to: IN-
TEST , RUN-BIST , CLAMP , HIGHZ , IDCODE
i† USERCODE . Dok³adniej przedstawione zo-
stan¹ tylko instrukcje wymagane przez nor-
mÍ.
Instrukcja BYPASS pozwala uk³adowi
funkcjonowaÊ normalnie i†w³¹cza rejestr BY-
PASS miÍdzy linie TDI i† TDO . Dane testowe
s¹ przekazywane przez uk³ad nie wp³ywaj¹c
na jego dzia³anie. Kod tej instrukcji sk³ada
siÍ z†samych jedynek.
Instrukcja SAMPLE/PRELOAD pozwala
uk³adowi funkcjonowaÊ normalnie i†w³¹cza
Rejestr úcieøki krawÍdziowej miÍdzy linie
TDI i† TDO . Instrukcja ta umoøliwia zanali-
zowanie zawartoúci tego rejestru po wpro-
wadzeniu kontrolera TAP w†stan przegl¹da-
nia danych. Instrukcja ta jest wykorzysty-
wana takøe do za³adowania danych testo-
wych do rejestru Boundary Scan Register
przed wykonaniem polecenia EXTEST . Kod
instrukcji SAMPLE/PRELOAD okreúlony jest
przez producenta uk³adu i†podany w†danych
technicznych.
Instrukcja EXTEST wprowadza uk³ad
w†tryb testu zewnÍtrznego i†w³¹cza Rejestr
Artyku³ napisano w†oparciu o†materia-
³y firm:
- Altera (JTAG standard on FLEX devices),
- Intel (JTAG interface in Pentium testing),
- Texas Instruments (JTAG Support),
- Xilinx (CPLD Data Book 1997).
Literatura dodatkowa:
1. ìThe Test Access Port & Boundary Scan
Architectureî M. Maunder i†Rodham E.Tul-
losa (IEEE Computer Society Press 1996).
2. ìStandard Access Test Port and Boundary
Scan Architectureî, IEEE Std 1149.1
(1994).
Elektronika Praktyczna 1/98
79
23347271.024.png
Zgłoś jeśli naruszono regulamin