Порт тестового доступа JTAG (TAP JTAG)

Исходно протокол JTAG (стандартизированный как IEEE 1149.1) предназначался для облегчения тестирования соединений печатных плат на стадии производства. вследствие более компактного расположения проводников и корпусов ПЛИС доступ к выводам интегральных схем становился более ограниченным. Поэтому тестирование традиционными способами, такими как «ложе гвоздей» («bed-of-nails») становилось недостижимым. С использованием протокола JTAG обеспечивается физический доступ к выводам интегральной схемы через цепочку сдвига регистра, размещаемого близко к кольцу ввода/вывода. Этот набор регистров рядом с кольцом ввода/вывода, также называемый ячейками периферийного сканирования (BCS), помещает управляет сигналами на контактах ввода/вывода. Ячейки периферийного сканирования интегральных схем, поддерживающих JTAG, объединяются в цепочку последовательного сдвига и управляется через последовательный интерфейс.

В процессе периферийного сканирования, программное обеспечение через последовательный интерфейс помещает тестовые данные на BCS выбранных интегральных схем. Эти тестовые данные устанавливают предопределенный шаблон сигналов на выводы, подсоединенные к задействованным BCS. Если соединенная к другому концу проводника печатной платы интегральная схема поддерживает JTAG, BCS подсоединенной интегральной схемы считывает тестовый шаблон и возвращает обратно для анализа программным обеспечением. Рисунок ниже демонстрирует концепцию периферийного сканирования.

Так как интерфейс JTAG доставляет любую информацию к устройству, он считается коммуникационным интерфейсом общего назначения. В дополнение к приложениям периферийного сканирования, устройства Intel используют порт JTAG для других применений, таких как конфигурирование устройства и отладку на кристалле, доступные через программное обеспечении Intel Quartus Prime.

Архитектура схемы JTAG
Основу архитектуры схемы JTAG составляют следующие компоненты:
• Набор регистров данных (DRs)
• Регистр инструкции (IR)
• Конечный автомат для управления данными (известный как контроллер порта тестового доступа (TAP))
• Четырех или пяти контактный последовательный интерфейс, состоящий из следующих выводов:
◦ Вход тестовых данных (TDI), используемый для сдвига данных в цепочки IR и DR сдвиговых регистров
◦ Выход тестовых данных (TDO), используемый для извлечения данных из цепочек сдвиговых регистров IR и TDR
◦ Выбор режима тестирования (TMS), используемый в качестве входа контроллера порта тестового доступа TAP
◦ TCK, используемый как тактирующий вход схемы JTAG
◦ TRST сброс контроллера порта тестового доступа. Это не обязательный вход, определяемый стандартом 1149.1
Примечание: Контакт TRST отсутствует в семействе устройств Cyclone.

Банк регистров DR является основным путем прохождения данных схемы JTAG. Он переносит полезные данные для всех транзакций JTAG. Каждая цепочка DR выделена для выполнения специфичной функции. Ячейки периферийного сканирования образуют основную цепочку DR. Внешние цепочки DR используются для идентификации, обхождения интегральной схемы в процессе тестирования периферийного сканирования, или набора цепочек регистра определяемых производителем интегральной схемы. Intel использует две цепочки DR с использованием IP, определяемого пользователем, для которых цепочка JTAG необходима как коммуникационный ресурс, такой как приложение отладки на кристалле. IP Virtual JTAG в частности позволяет расширить две цепочки DR для использования приложением пользователя.

Регистр инструкций используется для выбора банка регистров данных, к которым должны быть подключены TDI и TDO. Этот регистр используется в качестве адресного регистра банка регистров данных. Каждая инструкция IR сопоставляется с определенной цепочкой DR.

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

На рисунке ниже представлена функциональная модель схемы JTAG. Контакт TRST не обязательный в стандарте 1149.1 и отсутствует на устройствах Cyclone. Контроллер порта тестового доступа является аппаратным; он не использует программируемые ресурсы. Основной функцией контроллера порта тестового доступа является маршрутизация тестовых данных между цепочками регистров IR и DR.

Инфраструктура отладки системного уровня.
Инструменты отладки на кристалле, использующие ресурсы JTAG, разделяют два пути цепочки регистра данных; инструкции USER1 и USER0 выбирают пути цепочки регистра данных. Пути данных являются расширением схемы JTAG для использования с элементами программируемой логики в устройствах Intel.

Так как ресурсы JTAG разделяются между множеством приложений на кристалле, схема распределения должна определить порядок использования цепочек сканирования USER0 и USER1 различными приложениями. Инфраструктура отладки системного уровня (SLD) определяет соглашения сигналов и логики распределения для всех приложений программируемой логики, использующих ресурс JTAG. На рисунке ниже представлена инфраструктура SLD.

Модель транзакций SLD инфраструктуры.

С точки зрения приложения, требующего использования ресурса JTAG, программное обеспечение Intel Quartus Prime автоматически реализует инфраструктуру SLD для управления распределением ресурса JTAG. Интерфейс взаимодействия между JTAG и любым IP ядром прозрачен для разработчика. Все составляющие SLD инфраструктуры, за исключением контроллера порта тестового доступа, формируются с использованием ресурсов программируемой логики.

Инфраструктура SLD имитирует парадигму IR/DR, определяемую протоколом JTAG. Каждое приложение реализует регистр инструкций IR и набор регистров данных DR таким образом, что взаимодействие с регистром инструкций и регистрами данных похоже на определенное в стандарте JTAG. Заметка, что регистр инструкций и банки регистров данных реализованные каждым приложением являются подмножеством цепочек USER1 и USER0 регистра данных. Инфраструктура SLD состоит из трех подсистем: контроллера порта тестового доступа (TAP); концентратора SLD (SLD hub) и узлов SLD.

Концентратор SLD коммутирует контакт TDI с каждым узлом SLD, и его конечный автомат аналогичен конечному автомату контроллера порта тестового доступа JTAG.

Узлы SLD представляют каналы связи для конечных приложений. Каждый экземпляр IP, требующий ресурс связи JTAG, такой как логический анализатор Signal Tap logic analyzer, должен иметь собственный канал связи в форме интерфейса узла SLD с концентратором SLD. Каждый экземпляр узла SLD имеет собственный регистр инструкций и банк цепочек DR. В зависимости от доступных ресурсов на устройстве может быть создано до 255 экземпляров узлов.

Совместно концентратор SLD sld_hub и узлы SLD образуют цепочки сканирования virtual JTAG в соответствии с протоколом JTAG. Он является виртуальным в том смысле, что транзакции регистра инструкций и регистров данных для каждого экземпляра узла SLD встроен в стандартный сдвиг DR протокола JTAG.

Регистр инструкци и регистры данных для узлов SLD являются подмножеством регистров данных USER1 и USER0. Так как регистр IR/DR узла SLD напрямую не является частью множества регистров IR/DR протокола JTAG, цепочки регистра инструкций IR и регистров данных DR SLD называются цепочками виртуального регистра инструкций (VIR) и виртуального регистра данных (VDR). Рисунок ниже представляет модель транзакций инфраструктуры SLD.

Конечный автомат концентратора SLD.

Концентратор SLD декодирует TMS независимо от конечного автомата аппаратного контроллера порта тестового доступа JTAG TAP и реализует аналогичный конечный автомат (называемый «конечный автомат концентратора SLD») для внутреннего пути JTAG. Концентратор SLD выполняет функцию для цепочек VIR и VDR, подобную функции контроллера порта тестового доступа JTAG для цепочек IR и DR. Он разрешает узлу SLD при активном пути контакта TDI выбирать данные между регистрами VIR и VDR, управлять запуском и остановом любой транзакции сдвига, и управлять потоком данных между параллельным регистром накопления и параллельным сдвиговым регистром цепочек VIR и VDR.

Так как сдвиги VIR и VDR содержатся в транзакции сдвига DR, требуется дополнительный управляющий сигнал для выбора путей данных VIR и VDR. Концентратор SLD использует команду USER1 для выбора пути VIR и команду USER0 для выбора пути VDR.

Информация состояния, включая банк разрешающих сигналов, передается каждому узлу SLD. SLD узлы осуществляют обновление VIR и VDR в соответствии с управляющими состояниями, передаваемыми sld_hub. Узлы SLD отвечают за continuity между контактами TDI и TDO.

На рисунке ниже представлен конечный автомат концентратора SLD. Нет сигнала прямого состояния доступного для использования приложением.

Код для взаимодействия с отладочной платой "marsohod" https://github.com/rzndev/marsohod_vjtag

Tags: