В семнадцатой статье цикла «Основы технологии граничного сканирования и тестопригодного проектирования» рассмотрены накопившиеся и часто задаваемые читателями вопросы (ЧаВо), касающиеся тематики статей цикла.
И осталось всего ничего,
разве только…
А. Макаревич
Цикл статей по основам технологии JTAG и тестопригодного проектирования регулярно публикуется в «Производстве электроники» с 5-го номера 2007 года, т.е. уже без малого три года. За это время в переписке авторов с читателями нам было задано множество вопросов, и это общение успешно продолжается. Некоторые из задаваемых вопросов носят частный характер и связаны с конкретными проблемами читателей, но многие из них — весьма общего характера и представляют интерес для широкого круга специалистов. По этой причине статья построена в виде произвольной последовательности 24 вопросов, как тривиальных, так и весьма глубоких, и ответов на них, и снабжена множеством ссылок на литературу и интернетные сайты. Для экономии места все аббревиатуры используются так, как они были введены в предыдущих статьях цикла и других цитируемых материалах. В силу ограничений объема журнальной статьи здесь приведены, конечно, далеко не все возможные вопросы и ответы, так что чтение этих ЧаВо ни в коем случае не может заменить изучения всех предыдущих (и, разумеется, последующих) статей цикла.
1) Какие фирмы поставляют системы разработки программ тестирования JTAG? Как провести сравнение их характеристик и цен?
Наиболее известны в мире несколько фирм. Две из них — Flynn Systems (www.jtag-test.ru/Solutions/onTAP_deal.php) и JTAG Technologies (www.jtag.com) — давно работают на российском рынке, среди остальных можно указать Corelis (www.corelis.www), Asset (www.asset-intertech.com), Goepel (www.goepel.com), XJTAG (www.xjtag.com), Acculogic (www.acculogic.com). Сравнение характеристик программных и аппаратных средств можно провести, опираясь на статьи авторов цикла, или задав прямой вопрос на www.jtag-test.ru/Contacts. Цены на все составляющие системы onTAP фирмы Flynn указаны на www.flynn.com/boundary-scan-products-and-services/price-list-chart.
2) Обязательно ли фирме-разработчику схем самой заниматься разработкой JTAG-тестов для своих ПП и анализом тестопригодности своих схем, если монтаж ПП выполняется контрактным производителем?
Обычно разработку JTAG-тестов и анализ тестопригодности схем выполняют компании, специализирующиеся в этой области, либо контрактные производители, если они имеют для этого соответствующие программно-аппаратные средства и необходимую квалификацию. Реже этим занимаются сами фирмы, разрабатывающие схемы, т.к. это требует значительных инвестиций, не всегда целиком окупаемых, а также расходов и времени на подготовку квалифицированного персонала.
3) Где можно найти необходимые файлы BSDL?
Большинство фирм-поставщиков микросхем, снабженных структурами JTAG, размещают на своих сайтах файлы BSDL для свободного скачивания (см., например, www.jtag-test.ru/Support/BSDL.php). Следует иметь, однако, в виду, что, во-первых, так поступают далеко не все компании, а во-вторых, не во всех случаях скачиваемым файлам можно полностью доверять, т.к. они не всегда проверены синтаксически (это можно сделать, например, на сайте www.asset-intertech.com/edft_bsdl_valid.html), и не всегда проверены на соответствие реальной структуре JTAG самого компонента (см. www.jtag-test.ru/Solutions/BSDL.php).
4) Нужно ли экранировать кабель, соединяющий JTAG-контроллер с разъемом тестируемой ПП?
Такое экранирование рекомендуется выполнять во всех случаях, поскольку цепи TMS и TCK весьма чувствительны к наружным помехам и шумам. Экран должен быть присоединен к корпусу JTAG-контроллера на разъеме контроллера, и не подключен никуда на конце, присоединяемом к тестируемой ПП. Цепи внутри кабеля должны быть выполнены в виде витых пар с проводами, подключенными к земле.
5) Зачем следует определять соответствие между схемными именами компонентов и библиотечными именами моделей, предназначенных для их кластерного тестирования? И где взять библиотечные модели для таких тестов?
Соответствие имен необходимо, поскольку присоединение моделей программами генерации JTAG-тестов происходит в соответствии с их наименованиями, которые не обязательно совпадают с именами компонентов, указанных в списке элементов ПП. Библиотечные модели компонентов можно получить от компании, с которой у вас имеется непросроченный абонемент поддержки (как правило, он возобновляется ежегодно), или написать самостоятельно на том языке, на котором создаются модели в вашей JTAG-системе (например, язык DTS системы onTAP фирмы Flynn).
6) Какие еще, кроме подключения сигнала /WE на JTAG-разъем, существуют методы ускорения прожига флэш-памяти при помощи граничного сканирования?
Как можно видеть из формулы предварительной оценки минимально возможного времени прожига флэш-памяти посредством JTAG-интерфейса, приведенной в www.jtag-test.ru/JTAGUniversity/columns/KiT_05_2010.php:
Tпрог = (Nяч × Nцикл ×
× Nwe × Addr)/TCK,
это время прямо пропорционально Nяч — числу последовательных JTAG-ячеек, как в РГС, так и в РО, активизируемых при прожиге флэш-памяти. Этот параметр можно заметно сократить, если управление прожигом схемно организовать, как показано на рисунке 1.
![]() |
|
Рис. 1. Способ управления быстрым прожигом флэш-памяти |
7) Тест инфраструктуры JTAG-цепочки падает на этапе чтения кода идентификации (команда IDCODE) — почему?
К такому результату могут приводить множество причин, перечислим лишь наиболее вероятные из них:
– версия одного или нескольких компонентов в цепочке не соответствует версии, описанной в файле BSDL этого компонента, или же просто на ПП смонтирован неверный компонент;
– качество сигналов TMS и TCK является недостаточным, или их терминация неверна;
– избыточная длина кабеля, соединяющего JTAG-контроллер и тестируемую ПП;
– слишком высокая частота сигналов ТСК;
– неверно описанная последовательность JTAG-компонентов в цепочке.
8) Как правильно управлять генератором синхросигналов МРС9824 (см. рис. 2), снабженным встроенной ФАПЧ (PLL) при JTAG-тестировании подключенных к нему элементов памяти SDRAM?
![]() |
|
Рис. 2. Генератор синхросигналов МРС9824 |
При проектировании схемы, содержащей такой генератор, следует позаботиться об обеспечении JTAG-управляемости сигналами /BYPASS, SEL_XTAL и REF_IN, а при проведении теста подать JTAG-генерируемые синхросигналы ЗУ на контакт REF_IN, обеспечив «лог. 0» на контактах /BYPASS и SEL_XTAL.
9) Можно ли получить верное описание JTAG-цепочки ПП из ее CAD-файла?
Любая система генерации JTAG-тестов позволяет получить такое описание из CAD-файла, если структура цепочки однозначна и не зависит от установки тех или иных перемычек, или не формируется динамически посредством управления разнообразными мультиплексорами (например, ScanSTA112 фирмы National) или разветвителями JTAG-шины фирмы StarTest (см. www.jtag-test.ru/SoftAndHard/TAP-Di.php).
10) Как тестировать правильность монтажа резисторов терминации VTT, обычно подключаемых в цепи шины адреса и управления карточками памяти DIMM/SODIMM?
Тестопригодность таких резисторов можно обеспечить, блокируя выдачу напряжения VTT и заменяя его на «землю» для целей тестирования. Пример схемного решения для такой ситуации приведен в [1]. Если же цепи резисторов терминации VTT, обычно подключаемых в цепи шины адреса и управления карточками памяти DIMM/SODIMM (см. рис. 3), управляются микропроцессором IBM PPC460EX, соответствующие контакты ввода-вывода которого определены как JTAG-выходы, то единственной возможностью их JTAG-тестирования является применение модулей JEM_DIMM/SODIMM (см. www.jtag-test.ru/SoftAndHard/SODIMM.php).
![]() |
|
Рис. 3. Резисторы терминации VTT для карточек памяти DIMM/SODIMM |
11) Можно ли размещать в одной JTAG-цепочке компоненты, поддерживающие стандарты IEEE 1149.1 и 1149.6?
Любые JTAG-компоненты можно размещать в одной и той же цепочке в любых сочетаниях. Наличие 1149.6-совместимых компонент никак не влияет на выполнение теста инфраструктуры, а тесты межэлементных связей можно проводить, в зависимости от топологии схемы, по любому из следующих сценариев: выход 1149.1 соединен со входом 1149.6 напрямую, выход 1149.6 соединен со входом 1149.1 напрямую, выход 1149.6 соединен со входом 1149.6 через емкость развязки (LVDS). Более подробно нюансы таких соединений будут рассмотрены в одной из следующих статей нашего цикла.
12) Как убедиться в том, что компонент поддерживает стандарт JTAG?
Необходимым, но недостаточным условием поддержки компонентом стандарта JTAG является наличие у него контактов порта ТАР и файла BSDL [2]. Следует внимательно ознакомиться с предупреждениями, содержащимися в этом файле, касательно полноты соответствия структуры граничного сканирования данного компонента стандарту, в частности — проверить наличие и содержимое атрибутов COMPLIANCE_PATTERNS и Design_Warning.
13) Обязательно ли ставить подтягивающие или заземляющие резисторы в цепи ТСК компонентов фирмы Altera?
Все компоненты фирмы Altera, выпускаемые с 2000 года, требуют применения наружного заземляющего резистора в цепи ТСК. Следует обратить внимание на то, что большинство других фирм-производителей компонентов JTAG либо предполагают применение наружного резистора на контакте ТСК, подтягивающего его к напряжениям 3,3 В или 5 В, либо имеют встроенные подтягивающие резисторы на контактах ТСК, TMS и TDI.
14) Какими разъемами следует пользоваться для подключения внутрисхемных компонентов JTAG к контроллерам ТАР различных фирм? Имеет ли смысл словосочетание «стандартный или специфический разъем JTAG»?
Такое словосочетание не имеет никакого смысла. У каждой из фирм, поставляющих аппаратуру JTAG, имеются свои предпочтения по поводу назначения контактов и размеров разъемов, которые эти фирмы рекомендуют, однако все это не более чем рекомендации, и всегда можно использовать любые удобные пользователю переходные кабели.
15) Как при прожиге флэш-памяти средствами JTAG избавиться от влияния других JTAG-компонентов, подключенных к той же шине данных, что и JTAG-компонент, управляющий прожигом?
Возможности блокирования такого влияния должны закладываться уже на этапе тестопригодного проектирования схемы. Автоматическая возможность блокирования посторонних JTAG-компонентов на общей шине — это включение их в ту же JTAG-цепочку, в которой находится компонент, управляющий прожигом флэш-памяти. Если эти посторонние JTAG-компоненты имеют в своем составе необязательную команду HIGHZ [2], то указанная блокировка произойдет автоматически в любой системе генерации программ прожига, при этом результирующее число последовательных JTAG-ячеек (см. п.6 выше) увеличится всего на единицу (длина РО). Если команда HIGHZ в составе этого постороннего JTAG-компонента отсутствует, что явным образом описано в его файле BSDL, то на время прожига этот компонент можно перевести в состояние BYPASS, если связи компонента с общей шиной буферизованы, и этот буфер можно запереть на время прожига. Если же такого буфера в схеме нет, может быть достаточным перевести JTAG-компонент в режим EXTEST. Системы генерации программ прожига обычно устанавливают выходы этого компонента в состояние, определяемое файлом BSDL, но результирующее число последовательных JTAG-ячеек увеличится на величину РГС компонента, и, следовательно, возрастет время прожига флэш-памяти. Если же рассматриваемый компонент находится в другой JTAG-цепочке и существует схемная возможность блокировать его выходы — это решение следует считать простейшим.
16) Зачем необходимо указывать наименования цепей питания и «земли» при описании тестируемой схемы в системах генерации JTAG-тестов?
Для автоматической генерации JTAG-тестов для подтягивающих и соединенных с «землей» резисторов любой системе генерации необходима информация о том, какие именно цепи являются цепями питания и «земли», поскольку это, во-первых, не всегда следует из имени той или иной цепи, а во-вторых, иногда связано со стратегией тестирования, планируемой тест-инженером.
17) Как можно управлять синхросигналами, поступающими на JTAG-тестируемые ЗУ SDRAM через буфер CY2305?
Весьма распространенная проблема, возникающая при JTAG-тестировании ЗУ, заключается в применении в схемах ПП буферов синхросигналов с фазовой автоподстройкой частоты (ФАПЧ, PLL), обуславливающих нижний порог пропускания синхрочастот. Для буфера CY2305 этот порог составляет 10 МГц, а т.к. частота синхросигналов ЗУ от управляющего JTAG-компонента не превосходит нескольких сотен килогерц, такой буфер с ФАПЧ оказывается для них непреодолимым. Поскольку буфер CY2305 не снабжен средствами выключения PLL, управление синхросигналами ЗУ через него при JTAG-тестировании невозможно. Решением является применение буфера CY2309, допускающего выключение PLL подачей «лог. 0» на контакт S1 и «лог. 1» — на контакт S2. Cледует, разумеется, еще на этапе проектирования схемы позаботиться о JTAG-управляемости этими контактами.
18) В чем разница, и есть ли она, между кодами команд SAMPLE и PRELOAD? Почему в некоторых случаях компиляция файлов BSDL с этими командами проходит успешно, а в некоторых — падает, указывая на то, что одной из этих команд не должно быть?
Как указывалось в [2], SAMPLE и PRELOAD — это, в сущности, одна и та же команда, или, если хотите, две стороны одной и той же команды, поэтому коды этих двух команд совпадают. Успех или неуспех прохождения компиляции файла BSDL с этими командами зависит от того, какой оператор use, указывающий на внешний пакет определений стандарта JTAG [2], применен в файле BSDL. С точки зрения оператора STD_1149_1_1994.all, в файле BSDL может быть только одна из этих команд, так что вторую следует просто закомментировать. С точки же зрения оператора STD_1149_1_2001.all, файл BSDL может содержать обе эти команды с одинаковым кодом, и ошибки при компиляции не будет.
19) Можно ли программировать ЭППЗУ АТ28С010 средствами граничного сканирования?
Возможность надежного тестирования и программирования ЭППЗУ АТ28С010 и им подобных средствами JTAG отсутствует, причем это не является недостатком какой-то одной из систем генерации JTAG-тестов, но характерно для каждой из них. Причина заключается в том, что все такие компоненты оборудованы встроенными средствами самосинхронизации, определяющими режим записи — байтовый или страничный. Микропроцессоры, управляющие этими компонентами на синхрочастоте их нормального функционирования, без труда справляются с выбором режима записи, однако средствами JTAG невозможно точно обусловить тайминг между циклами записи. Иными словами, при управлении записью по каналам JTAG отсутствует механизм отслеживания того, какой режим записи — байтовый или страничный — будет в каждом следующем цикле записи.
20) Сколько JTAG-цепочек может быть в одной схеме? Сколько JTAG-компонентов может быть в одной цепочке?
Ни стандарт IEEE 1149.1, ни системы автоматической генерации JTAG-тестов не накладывают никаких ограничений ни на количество JTAG-цепочек в схеме, ни на число JTAG-компонентов в каждой из них, ни на порядок из размещения в цепочках. Тем не менее, как число цепочек, так и наличие в каждой из них тех или иных компонентов в том или ином порядке — чрезвычайно важный параметр тестопригодности схемы, ответственность за которую ложится как на разработчика схемы, так и на тест-инженера. Такой выбор делается с учетом множества факторов и соображений, часть из которых можно найти в [3] и других статьях цикла.
21) Можно ли управлять JTAG-тестированием из системы LabVIEW?
Раннеры всех известных систем [4] снабжены необходимыми библиотеками, подволяющими встраивать управление программами JTAG-тестирования и внутрисхемного программирования, прожига флэш-памяти и т.д. как в любую из широко применяемых оболочек функционального тестирования (LabVIEW, LabWindows, TestStand и т.д.), так и интегрировать такое управление с программами, написанными на языках Visual Basiс, C/C++ и им подобными.
22) В каких диапазонах частот ТСК работают контроллеры разных систем? Какие допустимы длины соединительных кабелей между внешним контроллером и тестируемой ПП?
Большая часть технических характеристик аппаратных средств JTAG-систем фирм JTAG Technologies, Corelis, Flynn Systems и Asset приведена в статьях [5-7]. Там же содержится обширный материал, позволяющий выполнить сравнение характеристик аппаратуры различных поставщиков. Следует лишь отметить, что реальное использование тех или иных частот ТСК и длин соединительных кабелей в весьма незначительной степени зависит от типа JTAG-контроллера, а определется преимущественно особенностями тестируемой ПП и уровнем ее тестопригодности [3].
23) Что такое «USB-FTDI» в окне выбора адаптеров системы onTAP? Работает ли эта система с кабелями фирм Altera и Xilinx?
Упоминание в окне выбора адаптеров в оnTАР варианта «USB — FTDI» — это лишь остатки от старых аппаратных возможностей системы, так же как поддержка параллельного порта и параллельных кабелей фирм Altera & Xilinx. Все эти интерфейсы поддерживались старыми версиями системы оnTАР, и те, кто до сих пор с ними работают, могут продолжать, разумеется. Новые версии системы давно на этих интерфейсах не отрабатываются, никаким обслуживанием эти интерфейсы не поддерживается, так что на новых версиях системы ими можно пользоваться только на свой страх и риск. Единственные адаптеры, поддерживаемые системой оnTАР сегодня — это два кабеля FS-9160 (один ТАР, низкая скорость) и FS-9166 (два ТАРа, высокая скорость), и, с определенными ограничениями — USB-кабель фирмы Xilinx.
24) Можно ли выполнять JTAG-тестирование ЦАП и АЦП? Тот же вопрос относительно JTAG-тестирования Ethernet Phy трансиверов?
Не только можно, но и нужно, т.к. JTAG-тест таких компонентов для проверки правильности их монтажа и функциональности намного проще и быстрее, чем полный функциональный тест. Вполне понятный пример тестопригодного проектирования фрагментов схем с ЦАП-АЦП и трансивером Интель-LXT971 приведен на рисунке 4.
![]() ![]() |
|
Рис. 4. JTAG-тестопригодные фрагменты схем с ЦАП-АЦП и PHY-трансивером |
Вопросы по основам технологии JTAG и тестопригодного проектирования, которые не удалось рассмотреть в данной статье из-за недостатка места, можно задавать авторам через их сайт www.jtag-test.ru/Contacts.
Все предыдущие статьи цикла «Основы технологии граничного сканирования и тестопригодного проектирования», а также нынешняя статья доступны для скачивания на веб-сайте авторов цикла www.jtag-test.ru/JTAGUniversity/basic.php.
В продолжение цикла, в восемнадцатой статье в следующем номере журнала будет продолжено расширенное обсуждение основ JTAG-стандарта IEEE 1149.6 для тестирования дифференциальных цепей с гальваническими развязками, начатое нами в десятой статье цикла (ПЭ №1, 2009).
Литература
1. Городецкий A., Курилан Л. «Примеры ГС-тестирования современных печатных плат в примерах», часть 9, «Производство электроники» 2008, №7.
2. Городецкий A., Курилан Л. «Язык описания структур граничного сканирования», часть 3, «Производство электроники» 2007, №7.
3. Городецкий A., Курилан Л. «Тестопригодное проектирование схем для граничного сканирования», часть 5, «Производство электроники» 2008, №1.
4. Городецкий A., Курилан Л. «Программное обеспечение прогона тест-программ граничного сканирования», часть 14, «Производство электроники» 2010, №1.
5. Городецкий A., Курилан Л. «Аппаратное обеспечение систем поддержки граничного сканирования ScanWorks и ScanExpress», часть 11, «Производство электроники» 2009, №2.
6. Городецкий A., Курилан Л. «Аппаратное обеспечение системы onTAP фирмы Flynn Systems», часть 12, «Производство электроники» 2009, №6.
7. Городецкий A., Курилан Л. «Аппаратное обеспечение системы ProVision фирмы JTAG Technologies», часть 13, «Производство электроники» 2009, №7.






