Kompaktní testovací systém Boundary-Scan představuje techniku, jak jednoduše pouze od počítače - softwarově testovat a kontrolovat funkci a provedení integrovaného obvodu, desky plošných spojů (DPS), i celých systémů a zařízení, bez nutnosti vytvářet měřící body a fyzicky připojovat měřící hroty nebo sondy na vývody. Současné vyspělé boundary-scan vývojové nástroje poskytují i techniky pro testování i těch obvodů a částí DPS, které přímo boundary-scan nepodporují. Boundary-Scan test je standardizován společně s rozhraním JTAG v IEEE 1149.1, kde ho lze najít od roku 1990. Postupem času stále získává na větší oblibě jako nízkonáladový a dnes i již jednoduchý a automatický testovací PC systém.
Zatímco u In-Circuit testování je nutné použít fyzické hroty/sondy, u Boundary Scan testování se hodnoty získávají "softwarově"
Použití
- Odladění prototypu infrastruktury hardwaru od montážních chyb a zkontrolovat funkčnost logických bloků.
- Testování integrity propojení paměťových bloků od zkratů a přerušených spojení.
- Programování CPLD a konfiguraci EPROM pamětí obvodů FPGA všech výrobců, přes signálové rozhraní nebo TAP (Test Access Port).
- Testování pomocí konektorů. Přídavné hardwarové moduly DIOS (Digital I/O Scan = digitální skenování vstupů/výstupů) vytváří možnost jednoduše rozšířit testování až na hlavní svorkovnice na kraji desek nebo na libovolné testovací body.
- S moderním boundary-scan řadičem vybaveným interní pamětí lze jednoduše programovat Flash paměti přenosovými rychlostmi až 2 MB/min
Princip a vývoj testování Boundary-Scan
S rychlým vývojem zmenšování komponent, integrovaných obvodů a desek plošných spojů (např. technologie SMT, BGA, COB a QFP), musí samozřejmě držet krok i jejich testovací techniky. S tím jak jsou vývody/piny pouzder obvodů a obvody na deskách blíže u sebe, už zde není místo pro fyzické testování pomocí kontaktování hrotů a sond. Dříve byla klasickou procedurou in-circuit testování komponent prostřednictvím pole hrotů, která však již v mnoha současných komplexních případech vůbec nelze použít, čímž prakticky dospěla ke svému limitu.
Základní ideou techniky Boundary-scan je právě nahrazení pole hrotů integrovanými elektronickými "piny"-buňkami, které jsou implementovány v integrovaných obvodech tak, že oddělují jeho logické jádro od fyzických vývodů. Ty tak pracují jako "virtuální" sondy uvnitř součástky.
Testování a kontrola DPS a jejích integrovaných obvodů pomocí měřících sond a hrotů (nahoře) a pomocí JTAG s Boundary-scanem (dole)
Jednotlivé boundary-scan buňky (boundary-scan cells = BSCs) jsou vzájemně propojené a řízené boundary-scan logikou implementovanou na chipu daného integrovaného obvodu společně s funkční logikou (JTAG logikou). To umožňuje aplikovat sériové nasouvání externích testovacích vektorů simulujících hodnoty vstupních a výstupních pinů a následně vysouvat výsledné hodnoty. Standard IEEE 1149.1 definuje jednotné provedení interní řídící logiky i rozhraní komunikační sběrnice. Ta provádí řídící spojení mezi nadřazeným testovacím zařízení, obvykle PC a testovanou součástkou či deskou plošných spojů s více součástkami. Použití této Boundary-scan architektury umožňuje zjišťovat a lokalizovat externí i interní výrobní chyby, jako jsou zkratovaná nebo naopak rozpojená propojení či aplikační chyby špatně vzájemně propojených obvodů a jejich softwarů (např. FPGA). Toho je dosaženo automatizovaným generátorem testovacích vzorků ATPG (Automatic Test-Pattern Generation) nebo automatickým testováním BIST (Built-In Self-Test). V současné době se k tomu navíc přidala možnost in-circuit programování CPLD, FPGA a MCU, což celkově zjednodušuje náklady a rychlost vývoje zařízení.
Blokové schéma JTAG - Boundary Scan technologie implantované v integrovaném obvodu - buňky s vývody TDI/TDO a řídící logika
Tabulka TAP příkazů (nahoře) a jejich použití na určitý typ testování (dole)
Kaskádní forma posuvného registru, tvořeného mnoha buňkami (cells), začíná vstupem TDI (Test Data Input) a je ukončena výstupem TDO (Test Data Output). K řízení testování, včetně přepínání funkce obvodu mezi testovacím a normálním módem, slouží přidaná řídící logika fungující jako stavový automat (TAP controller), který je ovládán přes TAP (Test Access Port) pomocí dvou, příp. tří, dalších vstupů:
- TCK (Test Clock) - taktovací hodinový signál
- TMS (Test Mode Selector) - sériový vstup pro řídící bity testovací logiky
- někdy TRST (Test Asynchronous Reset Input) - asynchronní reset (nemusí se vždy vyskytovat)
Bloková struktura řídící logiky JTAG + Boundary Scan (viz na obrázku Boundary Scan Register)
TAP controller je tvořen jednoinstrukčním registrem, který řídí testovací mód všech registrů, včetně boundary-scan registru, které jsou voleny specifickou instrukcí (viz tabulky výše). Standardizace TAP controlleru, jako součást boundary-scan architektury, byla široce akceptována většinou velkých hardwarových i softwarových výrobců součástek, testerů i testovacích softwarů a vývojových prostředků, jako jsou CAE (Computer-Automated Engineering tool). Jde tedy o univerzální testovací prostředek nezávislý na platformě, podporující všechny typy vyvíjených desek plošných spojů od různých výrobců a tedy pro testování různých desek lze použít různé libovolný software podporující boundary-scan.
Příklad vývojového nástroje pro FPGA firmy ATMEL - využívá mimo JTAG s Boundary-Scan i signály ze 2 fyzických sond PRA/PRB
V současné době je již velmi široká nabídka integrovaných obvodů podporující JTAG a Boundary-scan, takže prakticky lze napříč výrobci najít vždy součástku potřebného typu, které boundary-scan podporuje. Navíc již dnes testovací software umožňuje provádět testování i těch obvodů a částí desek, které boundary-scan nepodporují. Mezi ně například patří jednoduché logické prvky (NAND, XOR apod.), klopné obvody, registry, paměťové chipy RAM, FLASH nebo ROM, různé paralelní komunikační rozhraní, řadiče apod. Tyto části jsou totiž zahrnuty do bloků označené jako cluster, které jsou pak testovány prostřednictvím na ně napojených obvodů podporujících boundary-scan. Jejich prostřednictvím lze na jejich výstupech generovat testovací úrovně, na které reagují cluster bloky normálně dle své funkce. Naopak některé části, které nejdou testovat nebo je nechceme testovat, jsou nebo mohou být nahrazeny testovacím softwarem dle své podstaty zkratem nebo rozpojeným spojem. Navíc někteří výrobci nabízejí vestavěné generátory testovacích signálů paralelních vstupů a výstupů, které umožňují vývojářům desek implementovat automatické testování BIST (Built-In Self-Test) nejen na úrovni součástek, ale i celých desek, které poskytují vysokou kontrolu chyb při generování velmi malého počtu testovacích vzorků signálů.
Příklad komplexního použití Boundary Scanu k testování a kontrole DPS s mnoha součástkami různého typu (pro zvětšení klikněte na obrázek)
Interní testování chipů
Interní, na chipu implantované, skenování propojovacích cest zahrnuje substituci normálních paměťových elementům, jako jsou klopné obvody a registry skenovatelnými protějšky, které mohou být sériově propojeny pro testovací účely. V plném skenovacím přístupu, jsou nahrazeny všechny paměťové elementy a obvod je rozdělený na bloky kombinační logiky mezi paralelními vstupy a výstupy jednoduchého posuvného registru (viz obrázek níže). Pro důsledný strukturální test logicky chipu pak může být použit robustní kombinační algoritmus automatického generování testovacích vektorů ATPG. Částečné skenování zahrnuje náhradu pouze zvolených paměťových elementů. Je použit ve případech, kde je velká plocha chipu a chceme zvýšit výkonnost testování. Avšak jestliže ne všechny paměťové elementy jsou skenovány, musí být použita některá ze sekvenčních variant ATPG.
Externí testování jedné nebo více propojených DPS
Boundary-scan ATPG nástroje automaticky generují prototypové nebo výrobní testy aplikovatelné na zkoušenou desku využitím board-level TAP. Některé z těchto nástrojů mohou také brát v úvahu fyzický přístup pomocí klasických dotykových sond. Ty nejlepší nástroje tohoto typu generují i testy pro TAP a BDSL (Boundary-Scan Description Language) validaci a integritu skenovací cesty na úrovni desky.
Dále nabízejí i následující strukturální testy pro DPS:
- Boundary in-circuit test - využívá fyzický přístup na desku, kde je testovaný obvod umístěn, ale využívá boundary-scan pro jednoduchý přístup na vstupy a výstupy chipu, pro monitorování a simulaci stavů.
- Virtual interconnect and interactions test - umožňuje odstranit některý nebo veškerý fyzický přístup pro kontrolu vzájemných propojení a komunikace.
- Virtual cluster/component test - umožňuje testovat logické bloky, které přímo nepodporují boundary-scan.
Uvedené testy často zahrnují i diagnostiku správné sestavené a vzájemného propojení vývodů několika desek.
Použití JTAGu a Boundary Scanu pro testování obvodů tuto technologii nepodporujících - tzv. cluster blocks
Využití Boundary Scanu pro testování komunikace a přístupu obvodů na sběrnici - Virtual interconnect and interactions test
Při realizace testování/skenování na úrovni celých desek je doporučeno vzájemné propojení TDI a TDO pinů všech boundary-scan komponent do pouze jediného řetězce, i když některé současné nové testovací a vývojové nástroje si poradí i s variantou s více řetězci. Může být použito bufferování signálů TCK a TMS, ale obecně zvláštní péče by měla být věnována jejich připojení, vedení a hlavně časování. Všechny TAP signály by také měli být kontrolovány z pohledu jejich integrity, protože každá chybička v tomto směru může způsobit chybný posuv stavu TAP controlleru a tak udělat předčasný a nezamýšlený vstup obvodu a do testovacích módů, jako je například příkaz EXTEST. V takových to módech mohou výstupy obvodů kontrolovaných boundary-scan registrem přijít do kolize s obvody nepodporující boundary-scan. Z obecného pohledu, vývojář desek si musí dát pozor na stavy, ve kterých může k těmto vzájemným konfliktům a kolizím dojít.
Propojení jednotlivých boundary scan obvodů do jediného testovacího řetězce
V oblasti implementace boundary-scan testování lze však nalézt na jeden problém označovaný jako "multidrop problem". Protože jsou vývody TDI a TDO jsou sériové terminály, musí být propojeny do jednoho řetězce. Konfigurace typu "kruh (ring)" způsobuje problémy v systémem založených na centrální komunikační sběrnici, protože jednotlivé desky mohou vyjmutí způsobit přerušení řetězce. Jako alternativu lepší použít konfiguraci hvězda (star), která dovoluje vývodům TDI a TDO na DPS, aby byly připojeny na sběrnici. Avšak protože je v tomto případě nutné použít více TMS signálů k zamezení souběžného skenování více DPS, je nutné zajistit více sběrnicových propojení. Různé vývojové nástroje také poskytují různé další techniky založené na sériovém adresování. Nejlepší z nich pak mají jen malý dopad na dobu testování.
BSDL
Boundary-Scan Description Language (BSDL) je standardní popisovací/programovací jazyk pro testování pomocí boundary-scanu respektující IEEE Standard 1149.1-1990. Je vytvořen jako podskupina známého programovacího jazyka VHDL a určený k použití testování vývojáři, výrobci součástek, ASIC návrháři a ATE výrobci. Je také určený k specifikování těch charakteristik, které jsou unikátní pro daný obvod. V září 1994 byl vypuštěn IEEE Standard 1149.1b-1994 s většími možnostmi, který je však plně kompatibilní s obvody a deskami využívající standard IEEE 1149.1 a 1149.1b.
Závěr
JTAG a Boundary Scan patří stále mezi rozšířenější a vývody jeho rozhraní najít již na velkém množství integrovaných obvodů různých výrobců. Neustále se také vyvíjejí testovací a vývojové prostředky, jejichž software dnes umožňuje automaticky generovat testovací vektory/data dle zadaných kritérií (např. netlistu) a výsledky přehledně zobrazovat na obrazovce v podobě tabulek nebo i grafického schéma s vyznačenými lokalizovanými chybami. Mezi takové moderní nástroje, jak se často říká "druhé generace", patří i například PC software JTAG ProVision přímo od firmy JTAG.
Antonín Vojáček
vojacek@ hwg.cz
DOWNLOAD & Odkazy
- Zajímavé odkazy na články a informace o JTAG a Boundary Scan:
- http://www.intellitech.com
- http://www.corelis.com/products/Boundary-Scan_Tutorial.htm
- http://www.jtag.com/main.php?cm=p8_1_H0o2IL8wj1Wz00__2
- http://www.engr.udayton.edu/faculty/jloomis/ece446/notes/jtag/jtag1.html
- http://en.wikipedia.org/wiki/Boundary_scan
- http://www.mentor.com/products/dft/boundaryscan/index.cfm
- Ludwig Grünwald: "Compact Boundary Scan Test System", GÖPEL electronic GmbH, Germany
- Texas Instruments: "A Look at Boundary Scan From a Designer’s Perspective", August 1996, Reprinted with permission from Proceedings of Electronic Design Automation & Test Conference Asia
- Agilent Technologies: "Boundary-Scan Guide", 2002
- onTAP: "Boundary Scan Test Software"