JTAG-тестирование кластеров

№ 1’2010
В течение года, прошедшего после публикации в [ПЭ. 2008. № 7] статьи о построении кластерных JTAG-тестов, автор получал просьбы от читателей дополнить эту важную тему некоторыми актуальными примерами. Как известно, задачи построения кластерных JTAG-тестов обычно распадаются на две: схемное обеспечение структуры тестируемого кластера и построение собственно теста.

к. т. н., JTAG.TECT

amigo@jtag-test.ru

 


В течение года, прошедшего после публикации в [ПЭ. 2008. № 7] статьи о построении кластерных JTAG-тестов, я получал просьбы от читателей дополнить эту важную тему некоторыми актуальными примерами. как известно, задачи построения кластерных JTAG-тестов обычно распадаются на две: схемное обеспечение структуры тестируемого кластера и построение собственно теста.

Первая задача решается на этапе проектирования схемы. Любая схемная не-JTAG структура, состоящая из одного или более элементов (необязательно ИС), цифровых, аналоговых или пассивных, может рассматриваться как кластер, если обеспечены два непременных схемных условия: JTAG-управляемость входов этой структуры и JTAG-наблюдаемость ее выходов. Часто применяемые схемные не-JTAG элементы, пригодные для кластерного тестирования, обычно описываются моделями в той или иной форме в библиотеках кластеров и вызываются в программу построения теста кластера по имени или псевдониму. Следует отметить, что структура и принципы построения таких библиотек в разных системах автоматической генерации JTAG-тестов различны. Однако при отсутствии необходимой библиотечной модели разработка таких тестов требует использования функциональных описаний элементов, составляющих тестируемый схемный фрагмент. Мы рассмотрим еще три примера построения кластерных тестов граничного сканирования.

Весьма популярными в современной схемотехнике являются карточки памяти типа DIMM/SODIMM с печатными контактами (ламелями) и со своеобразным разъемом для подключения к основной ПП. Существует множество разнообразных типов таких карточек, вот лишь несколько имен их семейств для примера, без всякой претензии на полноту списка: DIMM, microDIMM, mini-DIMM, VLP DIMM, FBDIMM, SODIMM, SORDIMM, SOCDIMM и т.д. Каждое из этих семейств содержит стандартизованные вариации по размерам и количеству печатных контактов — от 72 до 244 контактов на одной карточке.

Рис. 1. Модуль JEM_SORDIMM200

Тестирование исправности монтажа на ПП разъемов для таких карточек является классической задачей построения кластерного JTAG-теста. Следует подчеркнуть, что тестирование таких разъемов посредством «диалога» в протоколе JTAG со вставленной в него карточкой памяти DIMM/SODIMM практически не используется, поскольку имеет целый ряд ограничений. Прежде всего, такой тест может охватывать только те функциональные цепи и контакты разъема, которые используются в схеме тестируемой ПП, при этом некоторые цепи и контакты разъема (конфигурирование памяти, цепи управления и т.д.) могут остаться за рамками теста. Что еще более важно — за рамками теста остаются многочисленные контакты питания и «земли» разъема DIMM/SODIMM. Более того, диагностические возможности JTAGтеста, опирающегося на взаимодействие с самой карточкой памяти, весьма ограничены. Время выполнения такого теста может быть неоправданно велико, а неисправности основной ПП в цепях синхронизации и управления, а также возможные ошибки при тестопригодном проектировании таких цепей [ПЭ. 2008. № 1] могут обусловить полную непригодность такого подхода. Следует также учитывать, что абсолютное большинство карточек DIMM/SODIMM — это SDRAMпамять DDR2 и DDR3, рабочая частота которых весьма велика и почти несовместима с возможностями протокола JTAG.

Применение специализированных модулей для JTAG-тестирования разъемов DIMM/ SODIMM (рис. 1), имеющих любое стандартное число контактов, совершенно свободно от приведенных выше ограничений. Для этого тестовый модуль (см., например, www.jtag-test.ru/SoftAndHard) на время тестирования вставляется в тестируемый разъем вместо карточки памяти DIMM/SODIMM и через находящийся на нем интерфейсный разъем подключается к одному из ТАР-портов того или иного контроллера, таким образом, он представляет собой отдельную JTAGцепочку (рис. 2). С помощью таких модулей быстро и однозначно обнаруживаются неисправности типа обрыва или короткого замыкания не только на всех функциональных контактах разъема, но и на многочисленных контактах питания и «земли», проверяется целостность двунаправленных связей на всех функциональных контактах и управление ими со стороны тестируемой ПП, а время тестирования разъема становится пренебрежимо малым. В сущности, тест разъема становится составной частью обычного теста межэлементных связей [ПЭ. 2007. № 8], и все существующие системы автоматической генерации JTAG-тестов поддерживают построение тестов с такими модулями, что обеспечивает высокий уровень покрытия дефектов монтажа разъемов DIMM/SODIMM.

Другая интересная задача построения кластерных JTAG-тестов связана с тестированием цифро-аналоговых (ЦАП) и аналого-цифровых (АЦП) преобразователей. Поскольку такие ИС обычно не снабжаются структурами граничного сканирования, кластерный JTAG-тест для ЦАП и АЦП будет также частично функциональным тестом. Для примера рассмотрим пару ЦАП DAC084S085 и АЦП ADC084S101фирмы National Semiconductor, подключенную, как показано на рис. 3.

Рис. 2. Тестирование разъемов памяти DIMM/SODIMM

Рис. 3. JTAG-тест для ЦАП-АЦП

Множество кластерных JTAG-тестов предусматривает закорачивание выходных контактов схемного кластера на наружном разъеме ПП на его входные контакты для целей тестирования. В рассматриваемом случае обязательными условиями являются как JTAG-управляемость обеих ИС ЦАП и АЦП, так и подключение выходов ЦАП и входов АЦП к наружному разъему ПП. Следует позаботиться и о возможности закорачивания на наружном разъеме ПП соответствующих аналоговых каналов, например, А — на вход In3 АЦП и т. д. Понятно, что такое закорачивание совершенно произвольно, однако тест строится под конкретную закорачивающую заглушку разъема ПП. Управляющая ИС JTAG может быть любой, следует лишь обратить внимание на то, чтобы входы и выходы этой ИС, показанные на рис. 3, были соответствующим образом объявлены в файле BSDL ИС [ПЭ. 2007. № 7].

Для начала, при выполнении условий синхронизации ЦАП в соответствии с его временной диаграммой, через последовательный вход DAC_Din в ЦАП выполняется адресация к цифровому выходу А и вводится, к примеру, код 0xFF. Затем, в соответствии с временной диаграммой АЦП, через его вход ADC_Din выполняется адресация к аналоговому входу In3, и через выход ADC_Dout АЦП считывается дважды преобразованный код 0xFF, возможно, без младшего значащего бита. В следующем цикле через последовательный вход DAC_Din снова выполняется адресация к цифровому выходу А, и в ЦАП вводится код 0x00, снова через вход ADC_Din АЦП выполняется адресация к аналоговому входу In3, и через выход Dout АЦП считывается код 0x00, также без младшего значащего бита. Эти действия по-следовательно повторяются как для цифровых выходов В и С ЦАП, так и для аналоговых входов In2 и In1 АЦП, будучи строго синхронизированы в соответствии с временными диаграммами этих ИС.

Легко заметить, что рассмотренный кластерный JTAG-тест ЦАП и АЦП покрывает и возможные структурные неисправности монтажа обеих ИС и управляющих ими ИС JTAG, и все возможные неисправности монтажа наружного разъема ПП, и, в некоторой степени, функциональность самих ИС ЦАП и АЦП. Для углубления функционального теста этих ИС к описанным циклам преобразования кодов 0xFF и 0x00 можно добавить любые другие коды, это лишь в незначительной степени увеличит время выполнения теста.

Еще один пример построения кластерных JTAG-тестов обусловлен тестированием исправности монтажа PHY-трансивера, работающего в протоколе Ethernet. Как и в предыдущем случае, нетрудно построить структурный JTAG-тест для PHY-трансивера, который, будучи частично функциональным, включит в себя тест трансформатора дифференциальной развязки. Для примера рассмотрим PHY-трансивер LXT971 фирмы Intel, подключенный, как показано на рис. 4. В отличие от предыдущего примера, эта ИС сама по себе снабжена структурой граничного сканирования, однако в соответствующем файле BSDL все четыре контакта, относящихся к дифференциальному протоколу Ethernet, помечены как linkage, то есть не снабженные структурой JTAG [ПЭ. 2007. № 7]. Более того, даже если бы они и имели JTAG-поддержку, ни передавать, ни принимать JTAG-сигналы через трансформатор дифференциальной развязки было бы невозможно в силу частотных ограничений.

Рис. 4. JTAG-тест для PHY-трансивера

Подход к JTAG-тестированию в данном случае основан на том, что ИС JTAG, управляющая сигналами последовательного протокола MDC, MDIO и Reset (например, микропроцессор), и ИС PHY-трансивера находятся в различных, не связанных друг с другом JTAGцепочках. На время выполнения теста межэлементных связей эти цепочки, разумеется, объединяются, однако во время выполнения кластерного JTAG-теста дифференциальных цепей Ethernet цепочка с PHY-трансивером не вводится в режим JTAG, и сам трансивер остается в функциональном режиме, осуществляя передачу и прием Ethernet-сигналов в своем обычном протоколе. Вообще говоря, построение кластерных JTAG-тестов для ИС, содержащих управляемые внутренние регистры, требует углубленного изучения технической документации этих ИС и некоторой изобретательности, а также тщательности в написании тест-векторов вручную. Следует иметь в виду, что никакая из существующих систем поддержки граничного сканирования [ПЭ. 2008. № 2, 3] не обеспечивает автоматизации процесса построения таких тестов.

Если позаботиться о закорачивании на наружном разъеме Ethernet тестируемой ПП соответствующих каналов (Tx_p на Rx_p и Tx_n на Rx_n), как показано на рис. 4, то после JTAG-сброса ИС PHYтрансивера по цепи Reset алгоритм JTAG-теста должен повторить последовательный протокол доступа к этой ИС. Для Intel LXT971 этот протокол заключается в удержании в цепи MDIO «лог. 1» в течение 36 синхроимпульсов в цепи MDC (преамбула) и синхронной передаче 0110 как кода операции MDIO. Затем последовательно выполняется 5-битная адресация к ИС PHY-трансивера, определяемая ее схемным включением, и 5-битная адресация к регистру состояния PHY-трансивера, после чего в последовательном протоколе выполняется чтение содержимого этого 16-разрядного регистра.

Идея выполнения кластерного JTAG-теста в данном случае заключается в том, что если ИС PHY-трансивера и трансформатор дифференциальной развязки смонтированы на ПП без ошибок и исправны, то в 10-м разряде регистра состояния Status Register 2 (флажок Link) PHY-трансивера установится значение «лог. 1», которое и будет считано JTAG-тестером. Любая неисправность фрагмента схемы, показанного на рис. 4, приведет к считыванию «лог. 0» в указанном 10-м разряде регистра состояния PHY-трансивера, что и будет признаком падения теста.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *