Техническое руководство по JTAG

В данной статье содержится интересная базовая информация о технических основах XJTAG. Данная информация не является обязательной для освоения при использовании системы XJTAG, так как тесты в системе XJTAG представлены в виде скриптов на высокоуровневом языке, который не требует детальных знаний о принципах работы JTAG.

Введение

Постоянное повышение плотности элементов на кристаллах микросхем всё чаще приводит к необходимости использовать корпуса формата BGA, что снижает эффективность традиционных методов тестирования.

Для преодоления таких проблем, некоторые мировые лидеры в производстве кремниевых микросхем объединили усилия и сформировали Joint Test Action Group. Наработки и рекомендации данной группы были взяты за основу для стандарта Institute of Electrical and Electronic Engineers (IEEE) 1149.1 — Standard Test Access Port and Boundary Scan Architecture (стандартный порт для тестирования и архитектура пограничного сканирования). Стандарт сохранил связь с Joint Test Action Group и, в связи с этим, стандарт известен под названием JTAG.

Пограничное Сканирование (оно же Boundary Scan, оно же “Граничное Сканирование”, оно же “Периферийное Сканирование”)

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

Schematic Diagram of a JTAG enabled device
Иллюстрация 1 — Блок-схема модуля JTAG в микросхеме

Принцип работы Пограничного Сканирования можно понять из схемы на Иллюстрации 1.

Все цепи, идущие от логического ядра микросхемы к её контактам, проходят через так называемые “сканируемые” ячейки (по сути это разряды сдвигового регистра), которые в совокупности имеют специальное название: Boundary Scan Register — Регистр Пограничного Сканирования. В “стандартном” режиме работы микросхемы эти ячейки никак себя не проявляют. Однако, при переключении микросхемы в режим тестирования (test mode), эти ячейки могут быть использованы для установки и/или считывания значений на контактах микросхемы (или на цепях внутреннего логического ядра). Не все ячейки Пограничного Сканирования одинаковые — в стандарте 1149.1 описано 10 типов ячеек, но разработчики микросхем могут размещать ещё и “нестандартные” типы ячеек в зависимости от конкретного предназначения ячеек.

Интерфейсные сигналы

JTAG-интерфейс, совокупность сигналов которого обобщённо называется Test Access Port — TAP (в разговорной речи как правило используется название без перевода — ТАП), состоит из следующих сигналов, необходимых для работы Пограничного Сканирования:

  • TCK (Test Clock) — сигнал синхронизации внутренних конечных автоматов;
  • TMS (Test Mode Select) — сигнал, синхронизированный передним фронтом TCK, переключает состояние микросхемы в следующее доступное;
  • TDI (Test Data In) — по данному сигналу подаются данные, вдвигаемые в микросхему с целью тестирования или программирования. Данный сигнал синхронизируется передним фронтом сигнала TCK. Для использования сигнала необходимо переключить микросхему в правильное состояние;
  • TDO (Test Data Out) — на данный сигнал приходят данные, выдвигаемые из микросхемы с целью тестирования или программирования. Данный сигнал синхронизируется задним фронтом сигнала TCK. Для использования сигнала необходимо переключить микросхему в правильное состояние;
  • TRST (Test Reset) — необязательный сигнал, предназначенный для сброса конечного автомата TAP-контроллера в исходное состояние.

Регистры

Существует два типа регистров для Пограничного Сканирования. Каждая JTAG-совместимая микросхема обязательно имеет один регистр команд (instruction register) и два или более регистра данных (data registers).

Регистр команд (Instruction Register) — хранит текущую исполняемую команду. Значение данного регистра используется TAP-контроллером для принятия решения о том, что делать с входящими сигналами. Наиболее часто используемая команда указывает на то, в какой регистр данных должны поступать входящие данные.

Регистры данных (Data Registers) — существует три основных типа регистров данных: регистр BSR (Boundary Scan Register), регистр BYPASS и регистр IDCODES. Прочие регистры могут присутствовать, но стандарт JTAG не требует их наличия.

  • BSR — основной регистр для тестирования. Он используется для передачи данных к контактам и от контактов микросхемы.
  • BYPASS — однобитный регистр, который передаёт данные от TDI к TDO. Это позволяет с минимальными задержками тестировать и другие микросхемы, подключенные последовательно.
  • IDCODES — хранит идентификатор (ID-код) и номер ревизии (revision number) микросхемы. Данная информация позволяет сопоставить для данного компонента определённый BSDL-файл (Boundary Scan Description Language). Этот файл содержит детальную информацию о конкретной конфигурации Пограничного Сканирования данной микросхемы.

Контроллер Test Access Port (TAP)

TAP-контроллер представляет из себя конечный автомат, управляемый сигналом TMS, который управляет поведением системы JTAG. На Иллюстрации 2 представлен конечный автомат TAP-контроллера.

TAP State machine

Иллюстрация 2 — Конечный автомат контроллера TAP

У всех состояний есть два выхода, а переходы организованы так, что в любое состояние можно прийти управляя автоматом одним единственным сигналом TMS (синхронизируемым по TCK). Имеются две ярко выраженные последовательности состояний: одна для чтения или записи в регистр данных — DR (Data Register) и одна для работы с регистром команд — IR (Instruction Register). Операции с регистром данных (Data Registers, BSR, IDCODES, BYPASS) выполняются в зависимости от команды в регистре команд (Instruction Register).

Более подробное описание по каждому состоянию можно найти в документации на стандарт IEEE 1149.1.

Команды Пограничного Сканирования

В стандарте IEEE 1149.1 объявлен набор команд, которые обязательно должна уметь обрабатывать микросхема, чтобы она могла называться поддерживающей JTAG. Эти команды приведены далее.

  • BYPASS — данная команда приводит к замыканию TDI и TDO на однобитный регистр BYPASS, что позволяет без лишних задержек передавать данные дальше по цепи последовательно подключенных микросхем с поддержкой JTAG.
  • EXTEST — данная команда приводит к замыканию TDI и TDO на регистр BSR (Boundary Scan Register). При этом текущие логические значения на контактах микросхемы запоминаются на состоянии “capture dr”, а новые значения побитно вдвигаются в регистр BSR на состоянии “shift dr”; вдвинутые новые значения появятся на контактах микросхемы на состоянии “update dr”.
  • SAMPLE/PRELOAD — данная команда приводит к замыканию TDI и TDO на регистр BSR (Boundary Scan Register). Однако, микросхема при этом остаётся в состоянии штатного функционирования. В процессе выполнения данной команды регистр BSR может быть использован для захвата данных, которыми микросхема обменивается в процессе штатной работы. Данная команда также используется для предварительной загрузки данных для тестирования в регистр BSR перед выполнением команды EXTEST.

Другие часто поддерживаемые микросхемами команды:

  • IDCODE — данная команда приводит к замыканию TDI и TDO на регистр IDCODE.
  • INTEST — данная команда приводит к замыканию TDI и TDO на регистр BSR (Boundary Scan Register). В отличие от команды EXTEST, которая оперирует внешними контактами микросхемы, команда INTEST оперирует внутренними сигналами микросхемы.

Получение стандарта IEEE 1149.1

Документация по стандарту IEEE 1149.1 доступна непосредственно на сайте IEEE:

https://standards.ieee.org

Ещё статьи

Design for Test techniques

Руководство по улучшению тестопригодности (DFT)

Рекомендации по улучшению покрытия платы тестами (Английский)


JTAG Introduction, Background, JTAG Connection Testing, In-system Programming

Концепция применения JTAG

Посмотрите, на что способен JTAG (Английский)


Что такое JTAG?

Что такое JTAG?

и как это применить для тестирования печатных плат?


circuit design, development, manufacturing, service

JTAG-тестирование при помощи XJTAG

Как XJTAG расширяет возможности JTAG (Английский)


Boundary-Scan Description Language

Формат файла BSDL — Boundary-Scan Description Language

Ссылки на сайты производителей микросхем (Английский)


Memory testing

Testing non-JTAG devices


JTAG, SVF

Формат файла SVF — Serial Vector Format

Хотите быть в числе первых, кто узнает о появлении новых
электронных книг и прочих ресурсов по JTAG?

Узнайте, как XJTAG может помочь протестировать плату быстрее
от прототипа до производства