Система разработки и прогона JTAG-тестов фирмы ХJTAG


PDF версия

В девятнадцатой статье цикла «Основы технологии граничного сканирования и тестопригодного проектирования» рассмотрены основы построения и особенности программно-аппаратного обеспечения системы JTAG-тестирования фирмы ХJTAG.

Я знаю один секрет…

А. Макаревич

 

В ряде предыдущих статей нашего цикла [1—6] был выполнен обзор программно-аппаратных средств четырех широко известных систем JTAG-тестирования фирм Asset, Flynn Systems, Corelis и JTAG Technologies. Чтобы дать читателям более завершенную картину возможностей выбора наиболее подходящей из таких систем, в данной статье будет рассмотрена система генерации и прогона JTAG-тестов, а также средства аппаратной поддержки еще одной, пятой, JTAG-системы. Речь пойдет о весьма популярной системе британской компании XJTAG (www.xjtag.com), на базе которой собираются стенды JTAG-тестирования, внутрисхемного программирования и прожига флэш-памяти в лабораторных условиях и на производственных линиях монтажа ПП во многих странах мира, но преимущественно в Европе.

Основой разработки JTAG-тестов в системе XJTAG является программный пакет XJDeveloper (см. рис. 1), представляющий собой интуитивно понятный и весьма дружественный графический интерфейс пользователя (ГИП), предназначенный для описания тестируемой схемы, выбора ограничений при генерации того или иного теста, генерации собственно JTAG-тестов и их отладки. В качестве входных данных используются, как обычно, списки цепей (netlist) схемы, списки компонент (ВОМ), файлы BSDL отдельных микросхем JTAG тестируемой схемы, а также модели не-JTAG компонентов этой схемы, написанные на языке XJEase, внутреннем языке системы XJTAG.

Рис. 1. Описание тест-проекта в пакете XJDeveloper

Отдельным этапом подготовки описания схемы к генерации JTAG-теста является объявление соответствующих цепей схемы линиями питания (Vcc) или земли (GND), что приводит к распознаванию пакетом подтягивающих резисторов и резисторов, подключенных «на массу», и позволяет как автоматически получить тест для всех таких резисторов, так и тестировать исправность JTAG-входов микросхем, подключенных к цепям Vcc и GND. Пакет XJDeveloper может также выполнять предварительное распознавание таких цепей по их именам (типа *Vcc* и *GND*), и если этого достаточно, то ручного вмешательства не требуется.

Процесс определения и описания JTAG-цепочки (или нескольких таких цепочек) в тестируемой схеме (этап JTAG Chain на рисунке 1) выполнен весьма своеобразно и заключается в пошаговом и программно-направляемом подборе последовательных контактов описываемой цепочки посредством встроенного браузера, начиная с контакта TDI внешнего разъема (CN1 на рисунке 2).

Рис. 2. Описание JTAG-цепочки в пакете XJDeveloper

Несмотря на кажущийся «ручной» характер такого способа описания, этот подход очень эффективен для схем со сложными, многими и неоднозначно определенными JTAG-цепочками, структура которых может быть переменной. Эта структура может зависеть от назначения того или иного JTAG-теста и включать в себя перемычки, нулевые резисторы, мультиплексоры или другие пассивные компоненты. Автоматический анализ подобных сложных, иногда иерархических, цепочек по списку цепей, как правило, неадекватен и в любом случае нуждается в ручном вмешательстве тест-программиста.

Объявление моделей не-JTAG компонентов и установление соответствия между их схемными именами и библиотечными моделями выполняется автоматически на этапе Categorise Devices (см. рис. 1), если схемные имена в списке компонентов соответствуют именам библиотечных моделей, или вручную посредством браузера моделей в ГИП пакета XJDeveloper. Подбор моделей элементов (файлы с расширением *.xje) выполняется или из встроенных библиотек, поставляемых фирмой XJTAG (см. рис. 3), или скачиванием их с интернет-сайта компании. Несложный высокоуровневый язык описания моделей XJEase позволяет тест-программисту описывать модели самостоятельно и использовать их для построения тестов не-JTAG кластеров [7], внося их в свои собственные библиотеки. Подобные модели применяются для описания не только логических элементов, вентилей, буферов и т.д., но и для разных типов ЗУ (ПЗУ, DDR2 и DDR3 RAM, флэш-память), а также I2C, светодиодов, кнопок и т.д.

Рис. 3. Объявление моделей не-JTAG компонент

Браузер контактов пакета XJDeveloper является удобным средством объявления внутрисхемных ограничений или условий для выполнения тестов межэлементных связей, которые могут быть следующими: стимуляция на данном JTAG-контакте (и, разумеется, на всей подключенной к нему линии схемы) константного значения «лог. 0» или «лог. 1», или объявление JTAG-контакта только входным в рамках данного теста. Введение ограничений и условий выполнения JTAG-тестов посредством браузера контактов, разумеется, не автоматизировано и предполагает глубокое понимание тест-программистом топологии тестируемой схемы, ее элементов и логики выполнения разрабатываемого теста.

Заключительным этапом подготовки JTAG-теста межэлементных связей к прогону является конфигурирование цепей аппаратного интерфейса XJLink2 (см. рис. 4), а собственно прогон JTAG-тестов может осуществляться как из пакета XJDeveloper, так и из специально для этого предназначенного пакета раннера XJRunner. Конфигурирование цепей наружного JTAG-интерфейса предусматривает объявление в окне Pin Mapping (см. рис. 2), к примеру, что контакт CN1.5 подключается к цепи TDI интерфейса, а контакт CN1.13 — к цепи TDO, и т.д.

Рис. 4. Внешний вид интерфейса XJLink2

Интерфейс XJLink2 представляет собой портативное устройство сопряжения компьютера с тестируемой ПП по каналу USB 2.0, обеспечивая при этом высокую скорость передачи информации 480 Мбит/с по четырем независимым JTAG-каналам с максимальной частотой ТСК 166 МГц. Каждый из JTAG-каналов может быть конфигурирован на один из двух уровней напряжений в диапазоне от 1,1 до 3,3 В с шагом 0,1 В.

Программный пакет раннера XJRunner (см. рис. 5) используется для прогона JTAG-тестов на стендах тестирования и внутрисхемного программирования ПЛМ и FPGA, а также прожига флэш-памяти в лабораторных условиях и на производственных линиях монтажа ПП. Прогон этапов теста можно выполнять по одному, помечая соответствующую строку в правом окне секвенсера. Таким же образом можно прогонять любые группы тест-файлов в последовательности их расположения в окне секвенсера. Простой интерфейс позволяет задавать требуемое число прогонов JTAG-тестов или циклическое повторение каждого из них. В последовательность выполнения тестовых этапов могут быть включены, разумеется, этапы внутрисхемного прожига и конфигурирования ИС (флэш-память, ПЛИС, ЭСППЗУ, I2C и др.). При размещении в правом окне секвенсера каждого из таких этапов, в списке его параметров выбираются действия, предназначенные для выполнения.

Рис. 5. Экран раннера XJRunner

Интересной особенностью раннера XJRunner является то, что при использовании в системе тестирования XJTAG нескольких кабелей XJLink2, каждый из которых подключен к одной из одинаковых тестируемых ПП (т.н. групповой режим работы — см. рис. 6), раннер XJRunner может работать сo многими такими каналами JTAG-тестирования, но при этом не обязательно со всеми одновременно. Запись результатов прогона теста выполняется в отдельные отчеты, озаглавленные серийными номерами тестируемых ПП. Раннер XJRunner с успехом встраивается во многие тестовые операционные оболочки, такие как LabVIEW, JTAG Manager [8] и другие.

Рис. 6. Групповой режим работы раннера XJRunner

Пример падения теста межсвязей CONNTEST показан на рисунке  7. Здесь приведено диагностическое сообщение об обнаружении короткого замыкания между двумя цепями и указаны контакты всех компонентов, подключенных к каждой из этих цепей. Понятно, что короткое замыкание на любом из этих контактов может являться причиной обнаруженной неисправности. Тесты такого типа в системе XJTAG предназначены для обнаружения константных неисправностей типа «лог. 0» и «лог. 1», коротких замыканий между цепями и обрывов в цепях, подключенных к JTAG-контактам.

Рис. 7. Пример прогона теста межсвязей CONNTEST

Генератор отчетов по тестопригодности схем, встроенный в пакет XJDeveloper, позволяет получить оценку возможного тестового покрытия неисправностей схемы (см. рис. 8) немедленно по окончании разработки схемы, базируясь на получаемом для данной схемы JTAG-тесте межэлементных связей. Поскольку результаты такой оценки для тестируемой схемы могут быть получены задолго до разводки и начала изготовления ПП, они широко используются как важнейший параметр тестопригодного проектирования схем и оптимизации применяемых средств тестирования в процессе производства ПП и узлов.

Рис. 8. Пример отчета по тестопригодности схемы

Некоторым недостатком генератора оценки тестопригодности пакета XJDeveloper является то, что в нем автоматически учитываются только возможности тестового покрытия, обеспечиваемые тестом межэлементных связей. Дополнительное покрытие неисправностей, получаемое в результате прогона самых разнообразных JTAG-тестов, кроме теста межэлементных связей, может быть учтено лишь после ручной обработки результатов генерации каждого из этих тестов порознь и дополнения в специальном графическом интерфейсе сводной таблицы оценки тестопригодности. С другой стороны, опция подобного ручного вмешательства в результаты оценки тестопригодности совершенно отсутствует в рассмотренных ранее полностью автоматизированных системах [1—6], так что в них нет никакой возможности добавить оценки уровня тестопригодности, которого можно достичь применением других тестов: ICT [9], функциональных тестов и тестов с летающими щупами (FP), и даже оптических (AOI) и рентген-тестов (AXI). Пакет XJDeveloper позволяет, таким образом, получить всеобъемлющую сводную ведомость уровня тестопригодности разрабатываемой схемы, доводя оценку совокупного межтестового уровня достигаемой тестопригодности до 100%!

Необычайно удобным и мощным графическим средством отладки JTAG-тестов и ПП и поиска в них неисправностей является программный пакет XJAnalyser, аналогов которому нет ни у одной из конкурирующих JTAG-систем [1—6]. Мало того, что при запуске этого пакета тест-оператор получает графическое изображение всех контактов каждой из микросхем JTAG, соединенных в цепочку; каждый из изображенных контактов окрашивается в отдельный цвет в соответствии с его состоянием в данный момент времени (см. рис. 9). Здесь красным цветом обозначен уровень «лог.1», синим — «лог.0», желтый обозначает наличие синхросигналов любой частоты, черным обозначены контакты микросхем JTAG, не имеющие JTAG-поддержки (в частности, GND и Vcc), т.е. в соответствующих файлах BSDL описанные как linkage [10], а также контакты собственно JTAG-интерфейса, а серым — контакты, сигналы на которых не относятся ни к одному из указанных выше классов (таких нет в примере на рисунке 9).

Рис. 9. Окно пакета XJAnalyser

Изменение цвета на каждом из контактов при их отображении пакетом XJAnalyser происходит в реальном времени по мере выполнения того или иного теста. Это означает, в частности, что тест-оператор может наблюдать уровни сигналов даже на тех контактах корпусов BGA, которые недоступны для зондирования щупом осциллографа. Никаких дополнительных аппаратных подключений к тестируемой ПП при этом не требуется.

В нижней части панели XJAnalyser расположено окно управления состоянием JTAG-контактов и наблюдения за ними Pin Watch. Имена контактов с изменяющимися сигналами, а также их схемные параметры автоматически заносятся в это окно (например, контакт G5 микросхемы U1, находящейся слева на рисунке 7). Тест-оператор может также, выполнив двойной клик на изображении красного или синего контакта в окне XJAnalyser, задавать состояние сигнала на этом контакте при помощи простого браузера сигналов. Например, для визуального тестирования исправности и правильности подключения некоторого светодиода D1, схемно подключенного к JTAG-контакту U1.B4, тест-оператор, увеличив изображение левой микросхемы U1 (см. рис. 10), помечает контакт В4 и выбирает в меню браузера сигналов строку «Set Toggle Slow» (медленный меандр переключений сигнала между уровнями «лог.1» на «лог.0»). Окраска контакта в окне XJAnalyser с частотой медленного меандра меняется с красной на синюю и обратно, но что наиболее примечательно — это приводит к управлению светодиодом D1, который начинает мигать с той же частотой! Для завершения управления этим светодиодом тест-оператор, помечая контакт В4, выбирает в меню браузера сигналов строку «Disable».

Рис. 10. Управление состоянием контактов в XJAnalyser

Эта очень необычная и удобная возможность управления состоянием JTAG-контактов широко применяется для того, чтобы, к примеру, оперативно удостовериться в исправности связи между парой JTAG-контактов вообще без проведения какого-либо теста, а также в наличии или отсутствии коротких замыканий между исследуемыми контактами и любыми другими JTAG-контактами схемы. Очевидно, что для этого достаточно ввести один контакт из исследуемой пары в рассмотренный выше режим меандра переключений и визуально убедиться как в наличии принимаемого сигнала (мигание с той же частотой) на другом контакте исследуемой пары или в его отсутствии (однозначный признак наличия обрыва между контактами), так и в отсутствии таких миганий на любых других JTAG-контактах схемы, что свидетельствует об отсутствии коротких замыканий между ними. Быстро, просто и эффективно!

Графические возможности пакета XJAnalyser позволяют также разделить окно, показанное на рисунке 9, на два или более, в каждом из них выделить и увеличить до требуемых размеров изображение одной из многих микросхем в JTAG-цепочке, и анализировать связность цепей в режиме диалога с тестируемой ПП без всякой подготовки и компиляции отдельных тестов, предназначенных для такого анализа.

Как можно видеть из данного обзора и статей [1—6], все JTAG-системы имеют одно и то же назначение и более-менее структурно похожие программные средства разработки и отладки JTAG-тестов. Все такие системы несколько отличаются друг от друга средствами получения диагностической информации и имеют подобные, хотя и совершенно не взаимозаменяемые аппаратные средства сопряжения с тестируемыми ПП и узлами. Заметные отличия между JTAG-системами относятся к таким характеристикам, как:

– разнообразные сервисные средства разработки JTAG-тест-программ и их отладки;

– удобство и эффективность поиска дефектов по результатам получаемой диагностики неисправностей;

– гибкость аппаратных средств сопряжения для применения в нестандартных ситуациях;

– совместимость с широким спектром не-JTAG тестовых систем и встраиваемость в популярные ГИПы и базы данных;

– средства анализа уровня тестопригодности и полноты покрытия неисправностей;

– удобство и полнота документирования перечисленных особенностей JTAG-систем.

Отличия одной из JTAG-систем от другой проявляются также в таких особенностях, как:

– уровень автоматизации разработки тестов, включая объем ручной обработки текстов промежуточных файлов;

– дружественность и удобство ГИПов JTAG-систем;

– совместимость интерфейса прикладного программирования API (Application Programming Interface) с популярными языками и платформами программирования, такими как Java, СС++, OpenVG, X11, J#, и другими;

– поддержка доступных в интернете библиотек тестовых модулей и стоимость такой поддержки;

– простота интеграции в другие платформы тестирования, такие как ICT [9], MDА (Manufacturer Defect Analysis), FPT (Flying Probe Tester), платформы функционального тестирования, и т.д.;

– совокупность аппаратных средств сопряжения с тестируемыми ПП и узлами и наличие дополнительной тестовой периферии.

JTAG-системы заметно отличаются друг от друга также уровнем поддержки пользователей (как со стороны фирмы-производителя, так и дилерами на местах), языком и оперативностью поддержки, и, разумеется, уровнями цен. Сравнение характеристик и цен различных систем не всегда однозначно и просто выполнимо, поскольку модульность построения у разных систем различна. При проведении такого сравнения следует также принимать во внимание один немаловажный фактор, который часто не берется в расчет — это ежегодные выплаты, связанные с технической поддержкой пользователей, обеспечением их обновленными программными версиями, доступом к новейшим моделям отдельных элементов, гарантийным обслуживанием аппаратных средств сопряжения. Такие ежегодные выплаты практикуют все упомянутые компании, но уровни цен при этом значительно разнятся. Зачастую решающим фактором при выборе той или иной JTAG-системы становятся даже не одноразовые инвестиции в программное и аппаратное обеспечение, а возможность получения систематической экспертной поддержки, связанной в анализом тестопригодности (DFT) проектируемых схем, разработкой и модификациями JTAG-тест-программ для ПП и узлов, и обеспечением производственных линий JTAG-тестирования разнообразным дополнительным тестовым оборудованием и программным обеспечением, совместимым с выбранной JTAG-платформой [11].

Продолжение в следующем номере журнала: будут рассмотрены основы внутрисхемного конфигурирования ПЛМ и FPGA в стандарте IEEE 1532.

Литература

1. Городецкий A., Курилан Л. «Системы поддержки граничного сканирования ScanWorks и Scan», «Производство электроники» 2008, №2

2. Городецкий A., Курилан Л. «Системы поддержки граничного сканирования ProVision и onTAP», «Производство электроники» 2008, №3

3. Городецкий A., Курилан Л. «Аппаратное обеспечение систем поддержки ГС ScanWorks и ScanExpress», «Производство электроники» 2009, №2

4. Городецкий A., Курилан Л. «Аппаратное обеспечение системы onTAP фирмы Flynn Systems», «Производство электроники» 2009, №6

5. Городецкий A., Курилан Л. «Аппаратное обеспечение системы ProVision фирмы JTAG Technologies», «Производство электроники» 2009, №7

6. Городецкий A., Курилан Л. «Программное обеспечение прогона тест-программ граничного сканирования», «Производство электроники» 2010, №1

7. Городецкий A., Курилан Л. «Программы ГС-тестирования современных печатных плат в примерах», «Производство электроники» 2008, №7

8. JTAG Manager — www.jtag-test.ru/SoftAndHard/JTAG-Manager.php

9. Городецкий A., Курилан Л. «Введение во внутрисхемное тестирование», «Производство электроники» 2010, №2

10. Городецкий A., Курилан Л. «Язык описания структур граничного сканирования», «Производство электроники» 2007, №7

11. www.jtag-test.ru/SoftAndHard/index.php

Оставьте отзыв

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