В данной статье содержится интересная базовая информация о технических основах 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, оно же «Граничное Сканирование», оно же «Периферийное Сканирование»)
Самой основной функцией Пограничного Сканирования является возможность устанавливать и считывать значения на контактах микросхемы, не имея при этом физического доступа к этим контактам.
Иллюстрация 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-контроллера.
Иллюстрация 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:
Ещё статьи
Руководство по улучшению тестопригодности (DFT)
Рекомендации по улучшению покрытия платы тестами (Английский)
Концепция применения JTAG
Посмотрите, на что способен JTAG (Английский)
Что такое JTAG?
и как это применить для тестирования печатных плат?
JTAG-тестирование при помощи XJTAG
Как XJTAG расширяет возможности JTAG (Английский)
Формат файла BSDL — Boundary-Scan Description Language
Ссылки на сайты производителей микросхем (Английский)