СРЕДСТВА ТЕСТИРОВАНИЯ ПЕЧАТНЫХ ПЛАТ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ JTAG В.И. Скорубский, Д.В. Овчаров, Д.А. Макаров
Рассматривается технология автоматического тестирования печатных плат (РСВ) с использованием граничного сканирования и JTAG-интерфейса с применением аппаратной поддержки исполнения контроллером. Определены условия для повышения разрешающей способности системы тестирования.
Введение
JTAG-технология [1] контроля печатных плат для сложной цифровой аппаратуры с установленными ПЛИС, быстродействующими контроллерами и микропроцессорами - единственно доступная в настоящее время. Несмотря на распространение и наличие большого числа публикаций по этой теме, сохраняется определенная дистанция между разработчиком и фирмами-изготовителями схем и тестового оборудования. Таким образом, приходится практически заново создавать средства тестирования.
В работе предлагается обзор прикладной системы, поддерживающей технологию JTAG. Обзоры [2-5] содержат рекомендации известных фирм Altera, Xilens, Atmel, TI по применению технологии к конкретным изделиям этих фирм - главным образом, при внутрисхемном программировании отдельных модулей. В целом, отсутствуют общедоступные средства и какая-либо методика организации тестирования и выбора тестов при искусственных ограничениях - доступен весьма ограниченный список команд тестирования, не всегда можно получить описание микросхем в BSDL- файлах.
Фирма Altera предлагает Jam- плееры для интерпретации Jam-программ записи ПЛИС, формируемых системой MAX+.на PC или контроллером с архитектурой MCS51. Во втором случае требуется дополнительное преобразование Jam-программ в программу виртуальной машины. Интерпретаторы Jam-текстов приспособлены только для программирования ПЛИС, и, несмотря на то, что тексты исходных С-файлов доступны, вмешаться или адаптировать их к приложениям тестирования не представляется возможным.
Тем не менее, архитектура системы тестирования с плеером, реализованная, например, в эмуляторах MSP430 фирмы TI, может быть успешно использована в собственных системах тестирования. В работе рассматривается архитектура и особенности реализации системы тестирования, не ограниченная только элементами одной фирмы.
Технология JTAG-тестирования
На рис. 1 приведена общая схема системы тестирования с использованием специализированного контроллера Player. Здесь может быть использован любой контроллер, имеющий достаточные ресурсы - не менее 8 кБ Flash, 2 кБ Ram, интерфейс rs232 и JTAG-порт. В частном случае для контроля исполнения тестирования в автоматическом режиме и автономного использования могут быть полезны локальные средства индикации (ЖКИ) и оперативного ручного управления (функциональная клавиатура).
Элементы архитектуры системы тестирования: PCB - печатная плата, Player -исполнение JTAG-команд и связь с Монитором на ПК, Монитор - система исполнения тестов и формирования базы данных txt на основе BSDL-файлов и тестируемых цепей Pins. В отличие от фирменных решений, приходится отказаться от прямой интерпретации Jam-файлов, что позволяет сократить объем программ плеера и увеличить скорость обмена данными.
Существенная функция Player'а - управление автоматом TAP Jtag-интерфейса. Интерпретация конечного автомата - одна из распространенных задач при работе с моделями алгоритмов, обобщение этой задачи - выбор кратчайших путей на графе.
Рис.1. Схема тестирования в JTAG-технологии
Используя символическое кодирование ребер графа, приходим к задаче поиска кратчайшего пути в КА, где вершины графа - состояния автомата, а кодирующие символы - условия перехода между состояниями.
Алгоритм выбора кратчайшего пути
Традиционное решение задачи выбора кратчайшего пути требует значительного перебора - например, распространением числовой волны. О важности этой задачи свидетельствует то, что к заслугам Дейкстры [5] относят решение задачи выбора кратчайшего маршрута. Задача упрощается, если информация о кратчайших маршрутах получена предварительным анализом одним из известных алгоритмов или простым перебором, а в реальном времени выбирается маршрут между двумя заданными точками на ее основе.
Задача может быть сведена к выбору кратчайшего пути в закодированном графе, который интерпретируется конечным автоматом в некотором алфавите. Эффективный метод решения задачи для конечного автомата ТАР применяется в Player51 фирмы Altera
Пусть автомат задан матрицей переходов NxN, где N - число состояний. Предположим нетривиальный случай, когда автомат детерминирован и полностью определен и число состояний Q={q1,..qN} больше числа символов входного алфавита Z={a, b, ..}. Тогда матрица переходов содержит пустые клетки.
В тривиальном случае все клетки заняты, и решение тривиально - для любой пары состояний существует кратчайший путь из одного условия. Если матрица содержит пустые клетки, то выберем первую строку матрицы и первую пустую клетку в ней -пусть с индексами (i, j). Пустая клетка обозначает факт, когда необходимо найти кратчайший путь, соединяющий состояния (qi, qj). Найдем такой кратчайший путь любым методом (можно визуальным просмотром или перебором). Тогда в клетку (i,j) запишем выделенное условие перехода в следующее состояние ае£ кратчайшего пути из (пусть в qm/m Ф i, j). Далее рассматривается кратчайший путь Eqmqj. Если клетка (m, j)
не пустая, то алгоритм доопредения матрицы кратчайших путей завершается. В противном случае заполняется пустая клетка (т, ]) в строке т аналогичным образом. Таким образом, за конечное (не более N-2) число шагов будут заполнены все клетки матрицы переходов выделенными условиями.
В дальнейшем любой кратчайший путь щ может быть выбран простым алгоритмом, состоящим из одинаковых шагов.
1. Выбрать клетку матрицы (/,/) .
2. Если условие в клетке не отмечено, то путь найден и заканчивается этим условием.
3. В противном случае перейти по выделенному условию а в следующее состояние, используя условие, не выделенное в строке г .
4. Продолжить движение по кратчайшему пути до завершения его в п.2.
Методика построения матрицы кратчайших путей является доказательством конечности и корректности алгоритма поиска кратчайшего пути в графе автомата.
Пример формирования матрицы для детерминированного КА, заданного графом
и таблицей переходов
I
А а В
Ь А
В а С
Ь А
С а Б
Ь В
Б а В
Ь А
Табл. 1. Таблица переходов КА
В матрице выделяются заданные условия перехода. В данном случае первая пустая клетка в первой строке матрицы (А,С). Соответствующий кратчайший путь из А в С проходит через вершину В, и первое условие 'а' перехода из А в В запишем в клетку (А,С). Условие перехода из В в С уже присутствует в матрице, и первый проход с доопределением кратчайшего пути заканчивается. Следующей рассматривается пустая клетка (А, Б), и для нее кратчайший путь А^В^С^Б. При этом условием 'а'заполняется пустая клетка (А,Б). Остальные клетки на этом пути уже заполнены.
A B C D
A b a
B b a
C b a
D b a
A B C D
Таблица 2. Исходная матрица переходов
Аналогичным способом заполняем клетки кратчайших путей Б^А^Б, Б^С^Б, С^Б^А, С^Б^С. После заполнения матрица имеет вид.
A B C D
A b a a a
B b a a a
C a b a a
D b a a a
A B C D
Таблица 3. Матрица кратчайших путей
Для выбора кратчайшего пути между двумя заданными вершинами графа по матрице кратчайших путей следует двигаться по заданным условиям последовательно. Например, из А в D попадаем, выбирая условие 'a' в клетке (A,D), затем 'а' в клетке (B,D) и завершающее выделенное условие 'а' в клетке (QD).
Алгоритм можно применить для выбора кратчайшего пути в реальном времени на взвешенном графе - частный случай задачи коммивояжера.
В ТАР условия принимают только значения 0, 1 для сигнала TMS в JTAG-интерфейсе, для состояний используется естественная последовательная нумерация (многозначное кодирование) и матрица кратчайших путей задана 16 двоичными кодами. Для перехода по отмеченным вершинам используется таблица переходов.
Особенности тестирования в реальном времени
Тестирование внешних цепей для микросхемы осуществляется TAP-командой EXTEST. Предварительно командой SAMPLE/Preload загружается вектор, который переводит двунаправленные I/O выходы контактов микросхемы в Z-состояние или устанавливает выходы в контрольные состояния.
Таким образом, разрешающая способность теста определяется задержкой алгоритма выполнения функций SAMPLE и EXTEST, представленного на рис. 3, где N -длина теста в битах, ts - задержка байта в последовательном канале, m - длина команды в битах, tj - задержка бита в JTAG.
Диагностика, в которой используется эталонный вектор для сравнения, может совмещаться с выполнением команды EXTEST, как это предусмотрено в Jam-тестах. Вместе с тем для сокращения времени на сохранение реакции в BSR (TAP - состояние Capture) целесообразно выполнять диагностику и контроль в виде отдельной функции и возлагать ее на монитор в ПК. Точно также из цикла тестирования исключается загрузка векторов из ПК.
Таким образом, приведена подробная последовательность работы TAP, управляемая командами Player и совмещенная с подготовительными операциями.
Nts/8
mti
Ntj
mti
Ntj
Nts/8
Рис. 3. Схема алгоритма выполнения теста
Рис. 4. Схема исполнения команд Sample, Extest
Для тестирования соединений РС в статике при исполнении таких функций, как обращение к памяти или передача данных, последовательность операций ТАР-контроллера выполняется в диалоговом пошаговом режиме и совмещается с формированием кодов тестирования. Функциональный тест может быть представлен микрокомандами с использованием функциональных обозначений тестируемых линий - например, операции записи и чтения во внешней RAM, инициируемые ПЛИС: AM7-AM0 = 0; DM15-DM00=0xaaaa; cs=0; wr=0; oe=1; AM7-AM0 = 0; DM15-DM00=zzzz; cs=0; wr=1; oe=0; Модуль RAM не имеет Jtag цепочки и тестируется ПЛИС косвенно.
В режиме многократного повторного тестирования TAP проходит состояния Capture, Shift,Preload, пребывает N+m тактов в состоянии Shift (длина теста N - сотни и тысячи бит). Объем теста зависит от разрешения диагностики и определяется следующими уровнями:
• контактами отдельных схем, где сначала все доступные контакты устанавливаются в Z-состояние командой HIGHZ, затем группы контактов каждой схемы проверяются на наличие контакта;
• электрические цепи на наличие соединения (для n цепей формируются 2N бит теста - передача и прием 0, 1);
• короткие замыкания цепей (в [7] объем теста оценивается как [log(2(2N+2))]N-битовых векторов.
В реальном времени тестирующий вектор формируется с учетом динамики работы всей системы. Если контакт работает на вход In, то он может принимать различные состояния внешних схем, что затрудняет диагностику. Если контакт выхода Out, то состояние управляющего бита BSR согласуется с состоянием Z принимающего контакта, что невозможно, если этот контакт не доступен в BSR. В этом случае необходима команда Intest, позволяющая отключать внешние схемы, не связанные Jtag. К таким схемам относятся внешние синхронизаторы, формирователи. Для контроля и диагностики одиночных неисправностей в цепях связи Jtag-технология достаточна, но, естественно, диагностика множественных неисправностей [7] может быть затруднена или невозможна.
Заключение
Рассмотрена схема тестирования с JTAG-интерфейсом. Основными этапами, задержки которых влияют на разрешающую способность тестов, являются этапы исполнения автомата TAP. Предлагается алгоритм доопределения матрицы переходов конечного автомата и выбора кратчайшего пути между двумя состояниями в TAP. Разработанная программа в C++ используется для тестирования сложных печатных плат, содержащих несколько ПЛИС EPM7xxx фирмы Altera.
Литература
1. Платунов А.Е., Постников Н.П., Чистяков А.Г. Механизмы граничного сканирования в неоднородных микропроцессорных системах // ChipNews. 2000. № 10.
2. IEEE Std 1149.1-2001. The Institute of Electrical and Electronics Engineers, Inc.-2001.
3. IEEE Std 1149.1(JTAG) Testability. Texas Instruments. SG.1997
4. IEEE 1149.1 Boundary-Scan Testing in Altera Devices. Altera Corporation, 2005. <www.altera.com>.
5. Tutorial covering Xilinx designed flows. <www/support.xilinx.com>
6. Computerworld, 14 ноября 2006.
7. Maurizio Rebaudengo. Boundary Scan Testing. COREP// <http://www.bolton.ac.uk/mind/corep/bst/bst-intro.html-2001>.