Тестер цифровых БИС на базе JTAG, поддерживающих технологию перифирийного сканирования

№ 3’2005
Термином JTAG обозначают совокупность средств и операций, позволяющих проводить тестирование БИС без физического доступа к каждому ее выводу.

Сведения по стандарту JTAG
в редакции IEEE Std 1149.1

Термином JTAG обозначают совокупность средств
и операций, позволяющих проводить тестирование
БИС без физического доступа к каждому ее выводу.
Аббревиатура JTAG возникла по наименованию раз
работчика — объединенной группы по тестам Joint
Test Action Group. Термином «периферийное скани
рование», или по-английски Boundary Scan Test (BST),
называют тестирование по стандарту JTAG (IEEE Std
1149.1). Такое тестирование возможно только для
ИС, внутри которых имеется набор специальных
элементов — ячеек периферийного сканирования
(Boundary Scan Cells) и схем управления их работой.
Механизм граничного сканирования (Boundary Scan)
является промышленным стандартом, который был
разработан группой специалистов по проблемам те
стирования электронных компонентов. BST-техно
логия может тестировать выводы без использования
щупов и пробников (обычный мультиметр) и вы
полняет сбор необходимых функциональных дан
ных в нормальном режиме функционирования ИС.

Все семейства ПЛИС фирмы Altera (FLEX 10K,
MAX9000,APEX20K и др.) в той или иной степени
поддерживают этот стандарт. В разных семействах
по-разному реализованы схемы поддержки стандар
та, они имеют разные временные параметры и со
став сигналов интерфейса. Необходимо отметить,
что для подобных целей используются также и дру
гие последовательные интерфейсы. Например, двух
проводный интерфейс I2C требует меньше аппарат
ных затрат и, что более важно, времени для доступа
к устройствам. Однако преимущество архитектуры
JTAG — в отсутствии необходимости явного задания
адресов устройств, поскольку все JTAG-устройства
объединяются в последовательную цепочку и неяв
но адресуются своим положением в ней.

Рассмотрим JTAG-интерфейс. Блок схема JTAGин
терфейса приведена в стандарте IEEE Std 1149.1-2001.
Имеется возможность выбирать путь прохождения
данных от TDI к TDO: либо через регистр команд
(Instruction Register), либо через регистр данных (Data
Register). Регистром данных в каждый момент вре
мени может быть один из следующих регистров: по
следовательный сдвиговый регистр граничного ска
нирования (Boundary-Scan register); внутренний ре
гистр, предусмотренный разработчиком устройства (Internal register); регистр обхода (Bypass register);
идентификационный регистр (Identification register).

Регистр инструкций состоит из собственно сдви
гового регистра, некоторой декодирующей логики
(в зависимости от количества и типов реализуемых
команд) и секции хранения декодированной команды.
Длина IR-регистра должна быть больше двух.

На регистр инструкций (Instruction Register) по сиг
налу TDI приходит управляющая команда, она преоб
разуется в дешифраторе (Instruction Decode) и в зави
симости от полученного кода к выходу TDO подклю
чается один из внутрисхемных регистров: Boundary-Scan
Register (служит для ввода или установки сигналов
на выводы испытываемой ИС), Device ID Register
(в этом регистре хранится идентификационный код
ИС), Bypass Register (однобитный регистр, замыкает
сигналы TDI и TDO — уменьшает длину JTAG-пути
и обеспечивает возможность прозрачной ретрансля
ции данных через JTAG-контроллер), UESCODE (в этом
регистре пользователь может хранить свою информа
цию об ИС, например, ее порядок в JTAG-цепочке).

Внешние относительно ТАР-контроллера сигна
лы: TDI, TMS, TCK, TRST, TDO. Сигналы UPDATEIR,
CLOCKIR, SHIFTIR, UPDATEDR, CLOCKDR, SHIFTDR
формирует ТАР-контроллер. ТАР-контроллер пред
ставляет собой синхронный конечный автомат сшест
надцатью состояниями, изменяющий состояние
по фронту сигнала ТСК (синхроимпульса) и по вклю
чению питания. Сменой состояний управляет сиг
нал ТМS, воспринимаемый по переднему фронту
сигнала ТСК. Граф состояний и переходов управля
ющего автомата TAP-контроллера приведен в доку
менте AN039, который можно скачать с сайта фир
мы Altera (www.altera.com). Переходы граф-автома
та кодируются в следующей последовательности:
Test_logic/Reset (0), Run_test/Idle (1), Select_DR (2) …
Update_DR (8), Select_IR (9) … Update_IR (f).

Когда ТАР-контроллер находится в состоянии
TEST_LOGIC/RESET, регистры данных не активиро
ваны, устройство находится в своем нормальном со
стоянии и инициализируется регистр инструкций.

При включении питания или при подаче импуль
са на вывод TRST (сброс), автомат переходит в сос
тояние TEST_LOGIC/RESET. Вывод TDO находится
в Z-состоянии при всех состояниях ТАР-котролле
ра, кроме SHIFT_IR (регистр команд работает в ре
жиме сдвига) и SHIFT_DR (регистр данных работа
ет в режиме сдвига). Вывод TDO переходит в активное состояние по первому нарастающему
фронту сигнала ТСК после перехода ТАР-кон
троллера в состояние SHIFT_IR или в состоя
ние SHIFT_DR. Вывод TDO возвращается в Z
состояние по фронту спада сигнала ТСК по
сле выхода ТАР-контроллера из состояния
SHIFT_IR или SHIFT_DR.

Правая часть графа относится к записи в IR
регистр управляющей JTAG-команды. Чтобы
загрузить управляющую команду в IR-регистр,
нужно:

  1. Перейти из состояния TEST_LOGIC/RESET
    в состояние SHIFT_IR. Для этого на вход
    ТMS подать последовательность 01100,
    синхронную с сигналами ТСК. В режиме
    SHIFT_IR ТАР-контроллер подключает
    сдвиговый IR-регистр к выводам TDI и TDO.
    Теперь на сигнал TDI в сдвиговый IR-ре
    гистр можно подать любую JTAG-команду.
  2. Для записи введенной команды в IR-регистр
    нужно перейти в состояние UPDATE_IR
    (последовательность на вход 11 TMS) или
    пройти через состояния EXIT1_IR — >
    PAUSE_IR — > EXIT2_IR (последователь
    ность 1010 на входе TMS).
  3. После записи JTAG-команды осуществля
    ется переход в состояние SHIFT_DR. В со
    стоянии SHIFT_DR возможна запись или
    чтение данных с регистров данных ТАР-кон
    троллера (зависит от введенной команды
    в состоянии SHIFT_IR). Левая часть графа
    идентична правой части графа, но вместо
    работы с командами осуществляется рабо
    та с данными. Формирование на входе TMS
    последовательности 0100 синхронно с на
    растающим фронтом синхроимпульса TCK
    приведет к загрузке регистра данных (ка
    кой именно регистр будет загружаться, оп
    ределяется инструкцией в IR-регистре)
    с входа TDI. Если у выбранного регистра
    данных параллельный выход содержит за
    щелку, то защелкивание происходит в со
    стоянии UPDATE_DR. Состояния EXIT1_DR,
    PAUSE_DR и EXIT2_DR используются толь
    ко для навигации по граф-автомату.

В стандарте приводятся минимизированные
булевы уравнения граф-автомата TAP-кон
троллера и электрическая схема, построенная
по этим уравнениям.

Стандарт IEEE 1149.1 предписывает только
три обязательные команды (BYPASS, EXTEST,
SAMPLE/PRELOAD), необходимые для функ
ционирования аппарата Boundary-Scan, все ос
тальные являются необязательными (дополни
тельными). Обязательные и дополнительные
команды в стандарте только описываются
функционально, а их реализация на аппарат
ном уровне оставлена полностью на усмотре
ние разработчика. Команда BYPASS позволяет
эффективно организовывать длинные после
довательно объединенные цепочки из тестиру
емых ИС. Команда EXTEST обеспечивает воз
можность снимать или устанавливать логиче
ские значения на контактах ИС. Команда
SAMPLE/PRELOAD позволяет тестировать яд
ро ИС в статическом режиме, выставляя или
снимая значения логических уровней на гра
нице его выходных буферов.

В стандарте также приводятся электрические
схемы ячейки сдвигового регистра IR-регистра
и ячейка BSR-регистра. Ячейка BSR-регистра
состоит из двух D-триггеров, работающих
по фронту нарастания, двух мультиплексоров.
Ранее такие ячейки использовались для реали
зации элементов памяти в методе сканирова
ния пути (Scan Path). Регистр инструкций мо
жет быть 3-битным, как у ПЛИС фирмы Actel,
так и 10-битным, как у ПЛИС фирмы Altera.

Ячейки BSR-регистра могут работать в раз-
ных режимах. В рабочем режиме они пропус
кают сигналы через себя слева направо и не из
меняют функционирование схемы. Для выхо
дов обычного логического типа нужна одна
ячейка, для выходов с третьим состоянием—
две, для двунаправленных — три.

Разработка схемы цифрового тестера
на базе JTAG

В настоящей работе приводится разработ
ка аппаратной части цифрового тестера на ба
зе JTAG-стандарта для реализации в ПЛИС,
предназначенного для лабораторного иссле
дования внутренней схемотехники ПЛИС
по архитектуре FLEX10К, упакованных в кор
пуса типа 240-Pin PQFP/RQFP. Может быть ис
пользован для исследования новых образцов
зарубежных цифровых БИС в аналогичных корпусах, поддерживающих технологию JTAG.
За основу принята редакция JTAG 1149.1 и тех
ническая документация фирмы Altera (AN039
и cfg_cf51005 с сайта www.altera.com).

Архитектура цифрового тестера на базе ПЛИС1, ПЛИС2 с использованием интерфейса JTAG
Рис. 1. Архитектура цифрового тестера на базе ПЛИС1, ПЛИС2 с использованием интерфейса JTAG

Проект (тестер ПЛИС) логически разбит
на две части (рис. 1). Каждая часть проекта «за
шивается» в отдельную ПЛИС по архитектуре
ACEX1K. Первая ПЛИС содержит JTAG-интер
фейс и фрагмент BSR-регистра (108 BSR-яче
ек), вторая ПЛИС содержит оставшуюся часть
BSR-регистра (132 BSR-ячейки). Фрагмент
BSR-регистра из 108 BSR-ячеек, в свою оче
редь, разбивается на две цепочки: 69 BSR-ячеек
и 39 BSR-ячеек, фрагмент BSR-регистра из 132
BSR-ячеек так же разбивается на две цепочки:
58 BSR-ячеек и 74 BSR-ячеек. Таким образом,
имеется возможность протестировать 240 дву
направленных контактных ножек испытывае
мой ПЛИС FLEX10K и проверить правильность
функционирования внутренней логики.

Электрическая схема JTAG-интерфейса
Рис. 2. Электрическая схема JTAGинтерфейса

На рис. 2 показана электрическая схема
JTAG-интерфейса без BSR-регистра, реализо
ванная в САПР Max+Plus II. В JTAG-интерфейс
входят TAP-контроллер, регистр инструкций,
дешифратор команд, регистры BYPASS, ре
гистр UESCODE, регистр IDCODE и вспомо
гательные схемы управления. Внешние отно
сительно ТАР-контроллера сигналы: TDI, TMS,
TCK, TRST, TDO, соответствуют списку сиг
налов интерфейса IEEE Std.1149.1.

Проектирование ТАР-контроллера

Когда ТАР-контроллер находится в состоя
нии TEST_LOGIC/RESET, регистры данных
JTAG-схематики не активированы, ПЛИС на
ходится в своем нормальном состоянии и ини
циализируется регистр BST-команд.

Первоначально в регистре инструкций
SHIFT_IR находится последовательность
из чисел 0101010101 или 341 в десятичной си
стеме счисления. В этом можно убедиться, ес
ли записывать любые данные (из 10 чисел)
в регистр SHIFT_IR с помощью сигнала TDI,
а с помощью сигнала TDO считывать выход
ную последовательность данных. Регистр
SHIFT_DR зависит от выбранной JTAG-коман
ды и в нем могут находиться совершенно раз
личные данные.

Дешифратор команд формирует управ
ляющие сигналы ena_BSR, ena_BYPASS,
ena_UESCODE, ena_IDCODE (сигналы разре
шения работы следующих регистров:
Boundary-Scan Register, Device ID Register,
Bypass Register, UESCODE Register), а также уп
равляющий сигнал (вектор Sel) для мульти
плексора. При SEL

Исполнение команды EXTEST

Команда EXTEST используется для провер
ки соединений между несколькими тестируе
мыми устройствами. EXTEST позволяет за
дать тестовые данные на контактные ножки
тестируемого устройства (БИС/ПЛИС). В пер
воначальный момент времени высоким уров
нем сигнала TRST регистры захвата и регист
ры обновления установлены в ноль. Выходы
BSR-регистра находятся в Z-состоянии.

Регистр инструкций представляет 10-разряд
ный сдвиговый регистр на D-триггерах с син
хронной установкой sset (активный высокий
уровень сигнала), сигналом разрешения enable
(активный высокий уровень сигнала), после
довательным входом shiftin, последовательным
выходом shiftout, параллельным выходом q.

Во время фазы захвата регистра инструк
ций (фаза CAPTURE_IR TAP-контроллера)
контроллером вырабатываются сигналы
CAPTUREIR=’1′ и SHIFTIR=’1′. Загружается
число 341 (десятичное).

Для загрузки кода команды EXTEST в регистр
инструкций (фаза сдвига регистра инструкций)
последовательно на вход TDI по переднему
фронту синхроимпульса TCK за десять тактов
загружается логический ноль. На выходе реги
стра инструкций ТАР-контроллера появляет
ся последовательность: 341, 170, 85, 42, 21, 10,
5, 2, 1, 0. ТАР-контроллер находится в состоя
нии SHIFT_IR, в котором он остается до тех пор,
пока сигнал TMS не выйдет из состояния низ
кого уровня. На вывод TDO последовательно
выдвигаются данные кода команд.

Во время фазы обновления ТАР-контрол
лер вырабатывает управляющий сигнал
UPDATEIR=’1′, который является разрешаю
щим для дешифратора команд. Дешифратор
команд согласно VHDL-описанию вырабаты
вает сигнал ena_BSR=’1′, который высоким
уровнем разрешает работу BSR-регистра.

Для того, чтобы проектируемый тестер
в точности отрабатывал JTAG-команды, BSR
ячейка была модифицирована (см. AN39.pdf.
IEEE 1149.1 (JTAG). Boundary-Scan Testing).
На рис. 3а показана BSR-ячейка ПЛИС фир
мы Altera. В фазе захвата на входы OUTJ и OEJ
поступают сигналы из ядра ПЛИС и в ядро,
c регистров обновления (сигнал INJ).
На рис. 3б показана BSR-ячейка тестера.

Работа BSR-ячейка ПЛИС фирмы Altera в фазе захвата (а) и BSR-ячейка тестера (б)
Рис. 3. Работа BSR-ячейка ПЛИС фирмы Altera в фазе захвата (а) и BSR-ячейка тестера (б)

Во время фазы захвата входные мульти
плексоры регистров захвата (Capture
Registers) настроены на прием тестовых сигналов. При высоком уровне сигнала
ENA_CUP =’1′, мультиплексоры регистров
захвата захватывают логический ноль, со
стояние CAPTURE_DR TAP-контроллера.
Который принимается на регистры захвата
по сигналу TCK при наличии разрешающе
го сигнала SHIFTDR_BSR=’1′, формирую
щийся дешифратором инструкций (сигнал
ENA_BSR) и TAP-контроллером (сигнал
SHIFTDR). В состоянии CAPTURE_DR низ
кий уровень сигнала ENA_UPDATE запре
щает работу регистров обновления (Update
Registers), то есть регистры обновления
не настроены на выдачу тестовых сигналов.

Во время фазы сдвига регистр BSR форми
руется путем сдвига данных через все 240 BSR
ячейки, со входа SDI до выхода TDO_BSR за n
тактов. Сигнал управления мультиплексорами
регистров захвата принимает значение логиче
ского нуля ENA_CUP =’0′. Тестовые данные со
входа TDI последовательно сдвигаются при вы
соком уровне сигнала SHIFTDR_BSR=’1′ (со
стояние SHIFT_DR TAP-контроллера) рис. 4.

Тест на выполнение команды EXTEST. Фаза захвата и сдвига данных в BSRрегистре
Рис. 4. Тест на выполнение команды EXTEST. Фаза захвата и сдвига данных в BSRрегистре

Во время фазы обновления данных инфор
мация из регистров захвата по высокому
уровню сигнала ENA_UPDATE=’1′ перепи
сывается в регистры обновления (состояние
UPDATE_DR TAP-контроллера). На выходах
регистра BSR появляется тестовая последо
вательность.

Использование команды BYPASS. Регистр
BYPASS представляет собой однобитный регистр
(D-триггер) с сигналом разрешения enable,
которым управляет сигнал ena_BYPASS деши
фратора команд и сигнал SHIFTDR TAP-кон
троллера. Код команды BYPASS — последовательность единиц. Посылаемые данные ска
нирования со входа TDI по переднему фрон
ту синхроимпульса TCK записываются в ре
гистр BYPASS и выдаются с регистра на выход
TDO по нисходящему фронту ТСК.

Использование команды UESCODE. Регистр
UESCODE представляет собой 32-разрядный
сдвиговый регистр на D-триггерах с синхрон
ной установкой sset (активный высокий уровень
сигнала), сигналом разрешения enable (актив
ный высокий уровень сигнала), последователь ным входом shiftin, последовательным выходом
shiftout, параллельным выходом q. Сигналом
enable управляет сигнал SHIFTDR TAP-контрол
лера и сигнал ena_UESCODE дешифратора ко
манд.

Команда UESCODE используется для опре
деления имени пользователя электронного
прибора (User Electronic Signature — UES) в це
почке устройств с интерфейсом JTAG (номер
ПЛИС в JTAG-цепочке). При исполнении этой
команды регистр данных UES включается между выводами TDI и TDO и заданное пользова
телем имя последовательно сдвигается через
регистр данных UESCODE.

Использование команды IDCODE. Коман
да IDCODE используется для опроса в цепоч
ке устройств с интерфейсом JTAG. В этом ре
гистре хранится идентификационный номер
ПЛИС, заложенный производителем. При ис
полнении команды регистр идентификации
устройства загружается 32-битным кодом
идентификатора устройства, заданным поставщиком устройства. Далее регистр идентифи
кации устройства включается между вывода
ми TDI и TDO, и идентификатор устройства
последовательно сдвигается через регистр дан
ных IDCODE. Разработанный тестер не под
держивает команду SAMPLE/PRELOAD.

Цифровой тестер спроектирован так, чтобы
в точности поддерживать JTAG-команды
ПЛИС фирмы Altera. Это позволяет отказать
ся от разработки программного обеспечения
и использовать технологию Jam-программи
рования ПЛИС с использованием программ
ных модулей Jam Composer. Jam — это стан
дартный язык программирования и тестиро
вания (STAPL — Standard Test and Programming
Language).

Jam-технология использует файлы стандарт
ного формата для работы с JTAG-интерфей
сом стандарта IEEE Std. 1149.1. Jam-файлы
(текстовый ASCII-файл) содержат алгоритм
программирования и все данные, необходи
мые для обновления конфигурации нескольких ПЛИС. Язык Jam поддерживается САПР
MAX+PLUS II версий 8.0 и выше. На рис. 5 схе
матически показано использование тестера
в качестве Jam Player.

Использование разработанного тестера в качестве Jam Player
Рис. 5. Использование разработанного тестера в качестве Jam Player

Тестер работает в двух режимах: режим за
писи тестовой информации в ПЛИС FLEX10K
и режим считывания. В режиме записи тесто
вой информации с 240 двунаправленных вы
ходных ножек BSR-регистра выставляется те
стовая информация на 240 контактных ножек
испытываемой ПЛИС (рис. 6). В режиме счи
тывания информация с контактных ножек ис
пытываемой ПЛИС попадает в фазе захвата
в BSR-регистр тестера (рис. 7). Далее она сдви
гается и поступает на выход TDO для после
дующего анализа.

Временные диаграммы работы BSRрегистра (режим записи теста в ПЛИС FLEX10K)
Рис. 6. Временные диаграммы работы BSRрегистра (режим записи теста в ПЛИС FLEX10K)
Режим считывания информации из ПЛИС FLEX10K в BSR-регистр
Рис. 7. Режим считывания информации из ПЛИС FLEX10K в BSR-регистр

С помощью САПР PCAD-2001 разработаны
электрическая схема и печатная плата элект
рической схемы тестера ПЛИС, состоящая
из двух однотипных плат с использованием
ПЛИС ACEX1K (ACEX EP1K50QC208-3).
Обе ПЛИС соединены в цепочку с возможностью исключения любого устройства с помо
щью перемычек. С использованием конфигу
рационных ПЗУ EPC2 (режим загрузки Passive
Serial, для программирования ПЗУ предусмо
трен JTAG-разъем) осуществляется конфигу
рирование ПЛИС1 и ПЛИС2 (рис. 8). После
этого путем JTAG-конфигурирования цепоч
ки ПЛИС1 и ПЛИС2 тестовые данные для ис
пытываемой ПЛИС загружаются через разъ
емы кабелей MasterBlaster.

Электрическая схема ПЛИС ACEX1K
Рис. 8. Электрическая схема ПЛИС ACEX1K

Также разработана электрическая схема
и печатная плата для испытываемой ПЛИС
с JTAG-конфигурированием. В ней требуется
два источника питания. Один (5 В) питает ис
пытываемую ПЛИС FLEX10К, второй (3,3 В
с ограничением по току) питает обе ПЛИС
ACEX 1K. Платы между собой соединяются
шлейфами. Предварительно в испытываемую
ПЛИС FLEX10К с помощью JTAG-загрузки за
носится тестовая прошивка для конфигури
рования макроячеек на выполнение опреде
ленных логических функций.

Литература

  1. Угрюмов Е. П. Цифровая схемотехника. СПб: БХВ. 2000.
  2. Торчигин С. В. Принципы использования стандарта JTAG при отладке вычислительных систем, основанных на программируемых логических интегральных схемах // Электронный журнал «Исследовано в России». http://zhurnal.ape.relarn.ru/articles/ 2002/149.pdf.
  3. IEEE Std 1149.1-2001. IEEE Standard Test Access Port and Boundary-Scan Architecture.

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

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