A JTAG (az azt leíró Joint Test Action Groupról elnevezve) technikai szabvány nyomtatott áramkörök gyártás utáni tesztelésére és tervezésük megerősítésére.
A JTAG chipen lévő műszerezési szabványokat fektet le az elektronikus tervezésautomatizáció (EDA) terén a logikai szimulációt kiegészítve. Egy dedikált hibakereső port használatát írja le soros kommunikációs felülethez alacsony költségű hozzáféréshez a rendszercímhez és az adatbuszokhoz közvetlen külső hozzáférés nélkül. A felület chipen lévő teszthozzáférési porthoz csatlakozik, mely egy állapotokkal rendelkező protokollt ad meg a tesztregiszterek hozzáféréséhez, bizonyos eszközök logikai szintjeinek és képességeinek megadásához.
A Joint Test Action Group 1985-ben jött létre tervezések ellenőrzésére és nyomtatott áramkörök gyártás utáni ellenőrzésére. 1990-ben az Institute of Electrical and Electronics Engineers az eredményeket az IEEE Standard 1149.1-1990-ben (címe Standard Test Access Port and Boundary-Scan Architecture) írta le.
A JTAG-szabványokat számos félvezetőgyártó bővítette gyártóspecifikus funkciókkal bővítette.Randy Johnson, Steward Christie (Intel Corporation, 2009), JTAG 101—IEEE 1149.x and Software Debug
Történet Az 1980-as években a gömbrácssoros többrétegű áramkörök és az integrált áramkörök szabványossá váltak, és a nem elérhető IC-k közt kapcsolatokat hoztak létre. A legtöbb gyártási hiba okai a nem megfelelő forrasztás, a csatlakozások hibája vagy az IC-padek és a tüskék közti csatlakozások és csatlakozók voltak. A Joint Test Action Group (JTAG) 1985-ben jött létre pinoutnézet létrehozásához egy IC-lapról egy másikra, lehetővé téve ezek felismerését.
A szabvány 1990-ben IEEE-szabvány lett IEEE Std. 1149.1-1990 számonA IEEE 1149.1-1990 vagy 2001-es frissítésének példányai megvásárolhatók. sok év használat után. Ez évben az Intel kiadta az első JTAG-es processzorát, a 80486-ot, gyorsabb elterjedéshez vezetve. 1994-ben a Boundary scan description language (BSDL) leírása is bekerült. További javítások a csak 0-kból álló érték EXTEST-re használásáról, a SAMPLE és a PRELOAD elválasztásáról és az OBSERVE ONLY javítása 2001-ben jelent meg. 1990-től számos elektronikai cég használta a szabványt. A határelemzés nagyrészt szinonim a JTAG-gel, de utóbbinak a gyártáson túlmutató fontos használati területei is vannak. Hibakeresés Az FPGA-fejlesztésben is használatos JTAG hibakeresőeszköz-fejlesztésre.Például itt: Select the right FPGA debug method A CPU-ban használt JTAG technikák egy FPGA más tervezési részeiben is alkalmasak hibakeresésre. Például egyéni JTAG-utasítások adhatók meg tetszőleges jelhalmazból való regiszterek olvasására az FPGA-ban, láthatóvá téve a határelemzéssel láthatatlan viselkedéseket. Ugyanígy a regiszterek írása másképp elérhetetlen funkciókat tesz elérhetővé.
Határelemző teszt A JTAG egy komplex integrált áramkör számos logikai szignáljához hozzáférést nyújt, beleértve a tüskéket. A jelek a TAP révén elérhető regiszterben szerepelnek. Ez lehetővé teszi a tesztelést és a teszteléshez és hibakereséshez tartozó jelek állapotainak irányítását. Így a szoftver- és a hardverhibák is elhelyezhetők, és az eszköz vizsgálható.
Beépített önteszteléssel (BIST) kombinálva a JTAG ellenőrzési lánc költsége alacsony, egy IC hibáinak ellenőrzésére. Az ellenőrzési lánc általában nem segíti a diagnózist vagy ellenőrzi az időzítést, a hőmérsékletet vagy más dinamikus hibákat. A teszteseteket általában szabványos formátumokban, például SVF-ben vagy ennek bináris megfelelőjében, XSVF-ben adják meg. Az ilyen tesztelés lehetősége fontos a tesztre tervezésben, növelve a termékek elérhetősége előtt található hibák arányát.
Elektromos jellemzők A JTAG-felület chiphez adott speciális felület, verziójától függően 2, 4 vagy 5 további tüskével. A 4 és 5 tüskés felületek tervezése révén lehetséges sorba kapcsolni a JTAG-csatlakozásokat bizonyos esetekben. A 2 tüskés változat lehetővé teszi több chip csillagtopológiás csatlakozását. Mindkét esetben a tesztelő résznek egy „JTAG porthoz” kell csatlakoznia a chipekhez féréshez.
Sorba kapcsolt JTAG (IEEE 1149.1) középre|JTAG-lánc. A visszaállító jel nincs a képen
A csatlakozó tüskék:
TDI (Test Data In) TDO (Test Data Out) TCK (Test Clock) TMS (Test Mode Select) TRST (Test Reset) opcionális.
A TRST opcionális visszaállító a tesztlogikára, általában aszinkron, de lehet szinkron. Ha nem elérhető, a visszaállítási állapotra való szinkron váltással lehet visszaállítani a tesztlogikát a TCK és TMS révén. A tesztlogika visszaállítása nem szükségképp vált mást. Vannak processzorspecifikus JTAG-műveletek, melyek a chip részét vagy egészét visszaállíthatják.
Mivel csak 1 adatvonal érhető el, soros a protokoll. Az órabemenet a TCK tüskén van. A TDI-ről 1 bit kerül át, illetve 1 bit megy ki a TDO-ra a TCK pozitív élén. Különböző utasítások tölthetők be. Az IC-k jellemző utasításai beolvashatják a chipazonosítót, a bemeneteket, a kimeneteket, módosíthatnak chipfunkciókat vagy átugorhatnak.
Mint más órázott jelek esetén, a TDI-n adott adatnak bizonyos chipspecifikus Setup idővel a releváns időszak előtt és Hold idővel utána érvényesnek kell lennie. A TDO-adat a TCK negatív váltása után érvényes.
A TCK maximális frekvenciája a lánc minden chipjétől függ (a legalacsonyabb sebesség használandó), de általában 10-100 MHz. A TCK frekvenciái függnek továbbá a lap kinézetétől és a JTAG adapter képességeitől és állapotától. Egynek lehet 40 MHz-es JTAG órája, de csak ha 200 MHz-es órája van nem JTAG műveletekhez, és sokkal lassabb órát használhat energiatakarékos módban. Ennek megfelelően egyes JTAG adaptereknek adaptív órázásuk van RTCK jellel. A gyorsabb TCK frekvenciák a JTAG adatátvitelre való használatakor hasznosak.
Az óra a TMS lépéseinél szabványos JTAG eszközzel történik. Ez visszaállíthat, hozzáférhet utasításregiszterhez vagy az az által kiválasztott adathoz.
A JTAG platformok gyakran adnak jeleket az IEEE 1149.1 által meghatározottakhoz. A System Reset (SRST) jel gyakori, és lehetővé teszi a teljes rendszer újraindítását. Gyakran vannak eseményjelek gazda, a JTAG által felügyelt eszköz vagy további irányító vezetékek általi aktivitás-előidézésre.
Bár csak kevés fogyasztói eszköz ad JTAG portcsatlakozót, ez gyakran elérhető a nyomtatott áramkörön a prototípus-készítés vagy a gyártás során fennmaradt részként. Csökkentett tüskeszámú JTAG (IEEE 1149.7) bélyegkép|Csökkentett tüskeszámú JTAG példája A csökkentett tüskeszámú JTAG csak 2 csatlakozót, egy óra- és egy adatcsatlakozót használ. Ezt az IEEE 1149.7 szabvány határozza meg. A tüskék: TMSC (Test Serial Data) TCK (Test Clock) Nevezik cJTAG-nek (kompakt JTAG) is.
A kétcsatlakozós felület csökkenti a tüskeszámnyomást, és az eszközök csillagtopológiával csatlakoztathatók. Ez lehetővé teszi a rendszer egyes részeinek kikapcsolását, míg mások hozzáférhetők JTAG-en, míg a lánctopológia minden JTAG felület hozzáférhetőségét igényli. Más kétcsatlakozós felületek is vannak, például a Serial Wire Debug.
Primitívek A gazda a TAP-ekkel a TMS, a TCK és a TDI változtatásával, valamint az egyetlen gazdaoldali bemenet, a TDO eredményeinek kiolvasásával kommunikál. A TMS/TDI/TCK kimeneti átmenetek alkotják az alap JTAG kommunikációs primitívet, melyen felsőbb protokollok alapulnak:
Állapotváltás: Minden TAP azonos állapotban van, ez változik a TCK változásával. Ez az eszköz része a JTAG specifikációnak, és 16 állapotú. 6 „stabil állapot” van, ahol a TMS stabilitása megakadályozza az állapotváltozást. Más állapotokban a TCK mindig megváltoztatja az állapotot. A TRST lehetővé teszi egy stabil állapot elérését (Test Logic Reset) gyorsabban, mint a TMS magas állapotban tartása és a TCK 5-szöri ciklusa. Eltolás: A legtöbb JTAG rész 2 adatátviteli stabil állapotot támogat. Minden TAP rendelkezik utasítás- (IR) és adatregiszterrel (DR). Ezek mérete TAP-enként eltér, és a TDI-vel és a TDO-val együtt nagy eltolási regisztert adnak (a DR mérete a TAP jelenlegi IR-ének és feltehetően a SCAN N utasítás által megadott értéktől is függ). 3 művelet van e regiszteren: Ideiglenes érték rögzítése Shift IR stabil állapotba lépés a Capture IR állapottal, mely az eltolóregisztert részben rögzített értékben tölti (nem a jelenlegi utasítással) Shift DR stabil állapotba lépés a Capture DR állapottal, mely az adatregisztert tölti be, melyet a TAP IR-e ad meg. Bitenkénti eltolás a Shift IR vagy a Shift DR állapottal. A TCK átmenetei 1 bittel tolják el a regisztert TDI-től TDO-ig, az SPI 1 módú adatbusz átviteléhez hasonlóan (TMS=0 a chip választójeleként, a TDI a MOSI-ként működik, stb.) IR vagy DR frissítése az ideiglenes értékről az Update IR vagy Update DR állapoton való átmenettel. Nem olvasható (rögzíthető) regiszter írása (frissítés) nélkül, és fordítva. Gyakoriak a frissítés mellékhatásainak létét vagy azok végrehajtását jelző bitek. Futtatás: Egy stabil állapot a Run Test/Idle. A megkülönböztetés TAP-specifikus. A TCK Idle állapotának nincs jelentős mellékhatása, de a Run Test állapot megváltoztathatja a rendszerállapotot. Például egyes ARM9 magok rendelkeznek hibakereső móddal, ahol a TCK ciklusok adják az utasítás-futószalagot. Alapvetően a JTAG használata utasítások és megfelelő regisztereik olvasását és írását jelenti, valamint néha bizonyos számú tesztciklust. E regiszterek mögött a JTAG által nem meghatározott hardver van, saját, a JTAG-műveletek által befolyásolt állapotokkal.
Sok JTAG-gazda a két állapot közti legrövidebb, adott esetben az adapter működése által korlátozott utat használja. Egyes, a JTAG-re épülő rétegek figyelik az állapotváltásokat, és ritkább utakat használnak magasabb szintű műveletekre. Egyes ARM magok ilyen sorozatokat használnak kétcsatlakozós (nem JTAG) SWD módhoz. Egy Zero Bit Scan (ZBS) sorozat használatos az IEEE 1149.7-ben.A Texas Instruments használja a szabványt, és van az IEEE 1149.7-ről szóló wikilapja további információkkal. a további funkciók, például TAP- vagy ellenőrizetlenlánc-váltás, energiahasználat vagy eltérő kétcsatlakozós mód hozzáféréséhez.
JTAG IEEE Std 1149.1 (határelemzési) utasítások Az utasításregiszter-méretek általában kicsik, 4-7 bitesek. A BYPASS és az EXTEST kivételével minden utasításkódot és kapcsolódó adatregisztert a TAP megvalósítója definiál; a nem definiált kódok nem használandók. Két fontos utasítás: a BYPASS utasítás, csak 1-ekből álló kóddal a TAP IR-méretétől függetlenül, és minden TAP-nek támogatnia kell. 1 bites adatregisztert választ ki (ezt is nevezik BYPASS-nek). Az utasítás lehetővé teszi egy eszköz átugrását a többiek vizsgálatával. az opcionális IDCODE utasítás megvalósító által definiált kóddal. Ehhez 32 bites regiszter tartozik, adata szabványformátumot használ a gyártó kódjával (a JEDEC Standard Manufacturer's Identification Code (JEP-106) szabványa szerint), a gyártó által meghatározott részszámmal és a rész verziókódjával. Az IDCODE széles körben támogatott, de nem univerzális.
A RESET állapot elhagyása után az utasításregisztert a BYPASS vagy az IDCODE előtölti, lehetővé téve a JTAG-gazdáknak a hozzájuk kapcsolt elemzési lánc méretének teljes és tartalmának legalább részleges azonosítását (a RESET állapotba lépés után elemezhetik az adatregisztert az általuk írt adat visszaolvasásáig. Egy BYPASS regiszterben egy 0 van, az IDCODE viszont 32 bites, és 1-gyel kezdődik. Így a nem a gazda által írt bitek hozzárendelhetők a TAP-ekhez). Ez az azonosítás a kézi beállítás ellenőrzésére gyakran használatos, mivel az IDCODE gyakran nem specifikus. Például azonosíthat ARM Cortex-M3 alapú mikrovezérlőt annak gyártójának és modelljének megadása nélkül, vagy egy adott FPGA-t, de programozásának módját nem.
Gyakori a BYPASS beadása egy más utasítást kapó kivétellel minden TAP-be. Így egy kivétellel minden TAP adatregisztere 1 bites, és az értékek szelektíven adhatók e kivétel adatregiszterébe vagy vehetők ki onnan más TAP érintése nélkül.