JTAG.ТЕСТ - технологии граничного сканирования, методики тестопригодного проектирования, JTAG, ICT, DFT
В JTAG мы знаем все!
«... Мы говорим JTAG, подразумеваем — ТЕСТ,
мы говорим ТЕСТ, подразумеваем — JTAG!»

Колонка Ами Городецкого
«JTAG-тестирование»
в журнале «Компоненты и технологии» № 4.2011 г.

Сайт журнала «Компоненты и технологии»

FPGA и ПЛИС в JTAG-тестировании

Разработка и прогон JTAG-тестов межэлементных связей для схем, содержащих современные FPGA и ПЛИС, отличаются рядом особенностей, которые следует принимать во внимание уже на этапе разработки таких тестов, а иногда — даже на этапе разработки самих схем. Эти особенности связаны с отличиями в JTAG-структуре этих компонент до и после их конфигурирования.

Конфигурирование FPGA и ПЛИС меняет не только физическую структуру КВВ отдельных банков. В файлах BSDL [1] подобных компонент помечено, что такие файлы должны быть существенно изменены, чтобы соответствовать новой структуре JTAG-ячеек всех КВВ конфигурированной ИС, и как именно их следует изменить. Следует обратить внимание на значение параметра USERCODE в декларации USERCODE_REGISTER и модифицировать его при необходимости. Все создаваемые кодом внутренние регистры FPGA должны быть соответственно описаны в атрибуте REGISTER_ACCESS. Для предотвращения потери кода конфигурации при JTAG-тестировании необходимо во всех тестовых векторах удерживать «лог. 1» в цепи, подключенной к контакту PROG_B.

Требуемые изменения в файлах BSDL должны охватывать также описание регистра РГС [2], объявляя логические значения в ячейках управления JTAG (параметр disval), переводящих связанные с ними выходные контакты в состояние с высоким импедансом, в соответствии с кодом конфигурации. Необходимо также обозначить как Z состояние с высоким импедансом тех выходных ячеек, которые действительно будут переведены в это состояние в результате конфигурирования ИС (значение по умолчанию — Х). Дополнительное требование, содержащееся в файле BSDL и связанное с вмешательством в текст этого файла, но не относящееся к конфигурированию ИС, заключается в схемном подключении контакта HSWAP_EN к уровню «лог. 1». Если же, исходя из схемотехнических соображений, этот контакт подключен к уровню «лог. 0», то все значения PULL0 (параметр disrslt), задаваемые по умолчанию, следует заменить на PULL1. И, наконец, чтобы избежать несоответствия имен файлов BSDL, в тексте видоизмененного файла следует переименовать заголовок entity. Очевидно, что переделка файлов BSDL выполняется преимущественно вручную (хотя и не всегда) и может сопровождаться множеством ошибок.

Разработка JTAG-тестов межэлементных связей для схем, содержащих конфигурированные FPGA и ПЛИС, в значительной степени определяет саму стратегию тестирования ПП. Дело в том, что фирмы-производители группируют КВВ большинства таких ИС в специализированные банки, так что уровни сигналов на КВВ отдельных банков и поддерживаемая ими полупроводниковая технология могут заметно отличаться как для одного и того же банка до и после конфигурирования ИС, так и между различными банками. На рисунке 1, к примеру, приведена структура конфигурированной ИС FPGA, содержащей четыре банка, два из которых (банки 2 и 4) предназначены для работы на уровне сигналов 3,3 В в технологии LVCMOS, банк 1 — также на уровне сигналов 3,3 В, но в технологии LVTTL, а банк 3 — на уровне сигналов 1,5 В в технологии LVCMOS.

Прогноз фирмы Asset

Рисунок 1.

До конфигурирования, т.е. непосредственно после монтажа ИС на поверхность ПП, КВВ такой ИС поддерживают уровни сигналов, определяемые, по умолчанию как 3,3 В в технологии LVTTL, или определяемые выходным опорным напряжением Vcco каждого банка. Разработчик схемы ПП подключает к тем или иным КВВ цепи, предназначенные для работы ИС после ее конфигурирования, например, работающие в технологии HSTL (High-Speed Transceiver Logic) на уровне сигналов 1,5 В, как показано на рисунке 1 для банков 2 и 3. При JTAG-тестировании межэлементных связей КВВ банка 3 не возникает никаких проблем ни до, ни после конфигурирования этой ИС FPGA, а вот для КВВ банка 2 есть существенное отличие в этих двух режимах. Понятно, что КВВ банка 2 до конфигурирования FPGA в тесте межэлементных связей будут работать на уровне сигналов, определяемом напряжением Vcco, т.е. 3,3 В в нашем примере, что может повредить их нагрузку, спроектированную для уровня сигналов 1,5 В.

Описанные ограничения диктуют необходимость предварительного конфигурирования FPGA перед выполнением JTAG-теста межэлементных связей. Очевидно, что на контактах, определяющих напряжения Vcco для отдельных банков, в течение всего теста тем или иным способом должны удерживаться соответствующие и неизменные напряжения, т.е. эти контакты не должны тестироваться. Отдельно, в зависимости от логики организации теста, должен решаться вопрос о способе конфигурирования — через ТАР-порт или автоматической загрузкой из ПЗУ или флэш-памяти по включению питания ПП.

Интересной особенностью некоторых семейств современных FPGA является возможность конфигурирования их КВВ как контактов дифференциальных пар, подключаемых к цепям LVDS (Low-Voltage Differential Signaling). Тестирование таких цепей в цифровом протоколе JTAG создает определенные сложности, однако принципиально возможно, если дифференциальные цепи не содержат емкостных развязок, представляющих собой обрывы для низкочастотных тестовых JTAG-сигналов [3]. При разработке JTAG-теста связей FPGA, подключенной к таким цепям, следует решить, тестировать ли их до конфигурирования FPGA как обычные цепи, или после конфигурирования как дифференциальные, что, разумеется, определяется их схемными связями.

Для обеспечения JTAG-тестирования подключенных к FPGA цепей SerDes, содержащих гальванические развязки, широко применяемые в современной схемотехнике для блокирования связей по постоянному току между контактами, выполненными в различных технологиях, и для согласования сигналов между передатчиками и приемниками, некоторые семейства FPGA (например, Virtex 5) снабжаются поддержкой JTAG-стандарта IEEE-1149.6. То, что планируемая к применению в схеме ИС поддерживает этот стандарт, можно определить по наличию в файле BSDL этой ИС фрагмента use STD_1149_6_2003.all. Применение в схеме FPGA, имеющей такую встроенную JTAG-поддержку, позволяет выполнять JTAG-тесты цепей SerDes с гальваническими развязками без ее предварительного конфигурирования.

Другой пример исходного файла BSDL можно найти для ИС семейства Stratix III фирмы Altera. В исходном, не конфигурированном состоянии, все КВВ этих ИС являются тристабильными, каждый из них снабжен тремя JTAG-ячейками (входная, выходная, управляющая), так что уровень тестопригодности этих КВВ весьма высок. В файлах BSDL этих ИС отмечено, однако, что после конфигурации все КВВ, конфигурируемые как контакты дифференциальных пар (LVDSp, LVDSn, LVDSCLKp, LVDSCLKn), становятся целиком нетестируемыми, т.е. их описание в файле BSDL должно быть изменено на «внутренний» (internal). Тестопригодность всех этих КВВ, таким образом, падает до нуля, что диктует необходимость их тестирования до конфигурации. Можно привести примеры FPGA и ПЛИС, КВВ которых, тристабильные до конфигурации, становятся только входными после нее, что также может быть критичным для достижения желаемого уровня покрытия неисправностей при тестировании.

В заключение колонки — несколько слов о применении технологии JTAG для тестирования кабелей в качестве ответа на задаваемые читателями вопросы. Иногда приходится слышать, что, мол, мы высокими технологиями не занимаемся, у нас даже не электроника, а электротехника, зачем нам JTAG? Тем не менее, применение этой технологии при производстве и тестировании даже сравнительно простых электротехнических изделий оказывается удобным, выгодным, а зачастую — просто незаменимым. Что может быть проще, скажем, кабеля или жгута проводов? Но если эти кабели предназначены для ответственных применений, и они многожильные и достаточно длинные, и таких кабелей много, и они подключаются к кросс-плате, то проблема автоматизированного тестирования качества монтажа кабелей может оказаться совсем непростой задачей. Задача усложняется еще больше, если разъемы этих кабелей уникальные, дорогостоящие или очень миниатюрные, так что количество их подключений при тестировании должно быть минимальным, а лучше — только одноразовым. Простой прозвонкой здесь не обойдешься...

Если перечисленные проблемы вас недостаточно впечатлили — добавим еще несколько: кабели содержат дифференциальные цепи, применяемые для заметного увеличения помехозащищенности, и в них, вдобавок ко всему, введены конденсаторы для гальванической развязки блоков, соединяемых этими кабелями. В этом случае прозвонка уже и вовсе не при чем, вы начинаете думать о разработке специализированных стендов функционального тестирования, и одна только мысль о предстоящих затратах средств и времени на разработку или приобретение такого стенда способна вогнать вас в депрессию. Разумеется, функциональный тест в состоянии обнаружить неисправности сборки кабелей и кросс-плат, однако диагностика места и характера неисправности может оказаться весьма времяемкой и/или требующей высокой квалификации (и, соответственно, оплаты) тест-инженера или техника [4].

Между тем, решение может находиться области средств тестирования JTAG, совсем не связанных с функциональными тестами. Сердцевиной такого стенда обычно является несложная ПП, разрабатываемая самостоятельно или приобретаемая у тестовых фирм (например, модуль наружного тестирования JEMIO [5]), которая содержит одну или несколько ИС JTAG, назначение которых — выдача JTAG-тестов на отдельные цепи кабелей и фиксация результатов тестирования в протоколе JTAG. КBB такой платы подключаются к разъемам, находящимся с обеих сторон тестируемого кабеля. Если кабели не слишком длинные (1-3 м), так что внутреннее сопротивление их проводов пренебрежимо мало, то никаких проблем в организации для них JTAG-теста не возникает. Время выполнения такого JTAG-теста составляет считанные секунды, а достигаемая полнота покрытия дефектов типа обрывов и коротких замыканий в цепях кабеля [6] может быть 100%. Правильно построенный JTAG-тест выдает имя неисправной цепи и имя контакта, что предельно упрощает и значительно удешевляет процесс диагностики несправностей в кабелях.

При большом числе цепей в тестируемых кабелях приходится принимать во внимание дополнительный фактор, известный как ground bounce, т.е. резкие колебания потребления тока при одновременных переключениях логического уровня сигналов на большом количестве КВВ управляющих ИС JTAG. Если это критично для ПП, управляющих тестом, то следует выбирать такие системы генерации JTAG-тестов (например, onTAP [7]), которые поддерживают управление этим фактором при генерации тестов межэлементных связей в функции числа одновременно переключаемых цепей. Стенды тестирования кабелей в технологии JTAG просто и естественно встраиваются во все популярные системы функционального тестирования на базе программных пакетов LabVIEW, LabWindows/CVI, TestStand, HP-VEE, или же совмещаются с пользовательскими стендами функциональных тестов, программируемыми на языках С++, С#, Visual Basic и им подобных.

Литература

  1. Язык описания структур граничного сканирования.
  2. Регистры и команды граничного сканирования.
  3. Стандарт граничного сканирования IEEE 1149.6 для дифференциальных цепей.
  4. JTAG на системном уровне и тестирование кросс-плат.
  5. Модули наружного JTAG-тестирования: Мастер-кластер JEMIO.
  6. Покрытие неисправностей и полнота JTAG-тестирования.
  7. Система разработки JTAG-тестов onTAP.

Авторизоваться:

Логин (e-mail):
Пароль:
Регистрация / Забыли пароль?

КОЛОНКИ в ЖУРНАЛАХ
    · Тестирование и тестопригодное проектирование («КиТ» № 2, 2009)
    · Встроенные инструменты тестирования («КиТ» № 3, 2009)
    · Неисправность монтажа BGA — что делать? (Апрельские тезисы) («КиТ» № 4, 2009)
    · Стратегия тестирования: нужен ли нам JTAG? (Как убедить начальника) («КиТ» № 5, 2009)
    · JTAG на системном уровне и тестирование кросс-плат («КиТ» № 6, 2009)
    · Функциональное тестирование и эмуляция средствами граничного сканирования (JTAG) («КиТ» № 7, 2009)
    · Аспекты тестопригодности в файлах BSDL («КиТ» № 9, 2009)
    · Покрытие неисправностей и полнота JTAG-тестирования («КиТ» № 9, 2009)
    · JTAG-тестирование кластеров («КиТ» № 1, 2010)
    · Тестирование компонент памяти в технологии JTAG (1) («КиТ» № 2, 2010)
    · Тестирование компонент памяти в технологии JTAG (2) («КиТ» № 3, 2010)
    · Новый JTAG-стандарт IEEE 1149.7 («КиТ» № 4, 2010)
    · Прожиг флэш-памяти в протоколе JTAG («КиТ» № 5, 2010)
    · Новейший стандарт JTAG-тестирования: IEEE P1149.8.1 («КиТ» № 6, 2010)
    · Стандарт тестопригодного проектирования IEEE P1687 («КиТ» № 7, 2010)
    · Материалы международной конференции по тестированию электроники ITC-2009 (1) («КиТ» № 8, 2010)
    · Материалы международной конференции по тестированию электроники ITC-2009 (2) («КиТ» № 9, 2010)
    · Материалы международной конференции по тестированию электроники ITC-2009 (3) («КиТ» № 10, 2010)
    · Применение осциллографов для визуализации протокола JTAG («КиТ» № 11, 2010)
    · Дистанционное JTAG-тестирование («КиТ» № 12, 2010)
    · Кому понадобится новый стандарт IEEE 1687? («КиТ» № 01, 2011)
    · Взаимосвязь стандартов тестирования IEEE P1687 и IEEE 1149.7 («КиТ» № 02, 2011)
    · Техническая диагностика цифровых устройств («КиТ» № 03, 2011)
    · FPGA и ПЛИС в JTAG-тестировании («КиТ» № 04, 2011)
    · Система JTAG-тестирования onTAP («КиТ» № 05, 2011)
    · Внутрисхемное программирование и JTAG-цепочки («КиТ» № 06, 2011)
    · Снова о внутрисхемном тестировании ICT («КиТ» № 07, 2011)
    · Снова о внутрисхемном тестировании (продолжение) («КиТ» № 08, 2011)
    · Еще раз о внутрисхемном тестировании (окончание) («КиТ» № 09, 2011)
    · Тестирование ICT: векторное или безвекторное? («КиТ» № 11, 2011)
    · Введение в технологию IEEE Std. 1581 тестирования ЗУ (1) («КиТ» № 07, 2012)
    · Введение в технологию IEEE Std. 1581 тестирования ЗУ (2) («КиТ» № 08, 2012)




 

Карта сайта | О нас | Услуги | Софт & хард | JTAG-Библиотека | Партнеры и заказчики | Поддержка | onTAP | Контакты | Монография
Написать вебмастеру
© JTAG.ТЕСТ, 2009.
Все права защищены.