Перейти к содержанию

BSDL

Программе граничного сканирования мало знать, что микросхема поддерживает JTAG: нужно знать, какой бит граничного регистра отвечает за какую ножку. Это описание производитель отдаёт в файле BSDL.

Обновлено Редакция GAW

BSDL (Boundary-Scan Description Language) — язык, на котором производитель описывает, как в микросхеме реализован JTAG по IEEE 1149.1, а также сам файл с таким описанием. Формально BSDL — подмножество языка VHDL; его разработал подкомитет рабочей группы IEEE 1149.1, и он вошёл в стандарт как часть IEEE Std 1149.1b-1994 (TI SSYA002D, гл. 5).

Файл нужен программам граничного сканирования и автоматическому тестовому оборудованию. Чтобы выставить уровень на нужной ножке, программа должна знать длину регистра команд, код команды EXTEST и место ячейки этой ножки в граничном регистре. TI приводит оценку Teradyne: вручную подготовить внутрисхемный тест для сложного микропроцессора — до семи недель, а при наличии BSDL от производителя — меньше двух часов (SSYA002D, гл. 5).

Из чего состоит описание

SSYA002D перечисляет элементы BSDL-описания:

  • entity — имя устройства, всё описание лежит между entity и end;
  • generic — параметр, обычно тип корпуса;
  • port — логические имена выводов и их тип: вход, выход, двунаправленный, питание и земля (linkage);
  • use — ссылка на пакет определений стандарта, например STD_1149_1_1994;
  • COMPONENT_CONFORMANCE — редакция IEEE 1149.1, которой соответствует микросхема;
  • PIN_MAP — соответствие логических сигналов ножкам конкретного корпуса;
  • идентификация тестового порта — какие выводы работают как TDI, TDO, TMS и TCK и какая наибольшая частота TCK;
  • описание регистра команд — длина, коды команд, значение при захвате;
  • необязательные регистры — например, IDCODE с его значением;
  • доступ к регистрам — какой регистр данных подключает каждая команда;
  • граничный регистр — длина и список ячеек: тип ячейки, вывод, назначение (вход, выход с третьим состоянием, управляющая ячейка) и связанная управляющая ячейка.

TI предупреждает, что синтаксически правильный файл ещё не гарантирует верного описания: BSDL сверяют с кристаллом. Типичные ошибки — неверная цоколёвка, порядок или длина граничного регистра, коды команд, положение управляющих ячеек и значение ID-кода (SSYA002D, гл. 5).

Фрагмент в стиле примера TI:

entity XYZ is
  generic (PHYSICAL_PIN_MAP : string := "DW");
  port (OE: in bit; Y: out bit_vector(1 to 3);
        TDO: out bit; TMS, TDI, TCK: in bit);
  use STD_1149_1_1994.all;
  attribute COMPONENT_CONFORMANCE of XYZ : entity is "STD_1149_1_1993";
end XYZ;

Где взять

BSDL выкладывают производители микросхем рядом с даташитом или в разделе инструментов. Файл привязан к корпусу и иногда к ревизии кристалла, поэтому проверяйте, что длина регистра команд и ID-код в нём совпадают с тем, что читает ваш адаптер. Для STM32F4, например, это 5 бит регистра команд TAP граничного сканирования и ID-код 0x06413041 у STM32F405/407 (RM0090, разд. 38.5–38.6). Как работает сама цепочка — в статье «JTAG и SWD» и в словарной статье «TAP-контроллер».

Частые вопросы

Зачем BSDL, если есть даташит?

Даташит читает человек, BSDL — программа. Файл в строгом формате перечисляет выводы, длину регистра команд, коды команд и порядок ячеек граничного регистра, и программа граничного сканирования по нему сама строит тест соединений. По оценке, которую приводит TI, при наличии BSDL подготовка теста для микропроцессора занимает часы вместо недель.

Почему BSDL зависит от корпуса?

Логическая структура кристалла одна, а номера ножек в разных корпусах разные. Поэтому в BSDL есть параметр корпуса и таблица соответствия логических сигналов физическим выводам для каждого из них. Берите файл, точно соответствующий корпусу и ревизии вашей микросхемы.

Нужен ли BSDL для отладки по JTAG?

Нет. Отладчик работает с портом отладки ядра, ему достаточно найти цепочку и прочитать IDCODE. BSDL нужен программам граничного сканирования, которые управляют выводами микросхемы, и иногда — для настройки длины регистров команд в цепочке из нескольких микросхем.

Источники

  1. Texas Instruments. IEEE Std 1149.1 (JTAG) Testability Primer (SSYA002D, 1997) — гл. 5: BSDL — подмножество VHDL, описывает реализацию IEEE 1149.1 в микросхеме, формально принят в IEEE Std 1149.1b-1994; используется программами автоматической генерации тестов соединений и автоматическим тестовым оборудованием; оценка Teradyne — до семи недель на ручную разработку внутрисхемных тестов микропроцессора против менее двух часов при наличии BSDL; элементы описания: entity, generic (тип корпуса), port, use, COMPONENT_CONFORMANCE, PIN_MAP, идентификация тестового порта, описание регистра команд, необязательных регистров, доступа к регистрам и граничного регистра; файл сверяют с кристаллом, типичные ошибки — цоколёвка, тип, порядок и длина ячеек, коды команд, управляющие ячейки, ID-код
  2. STMicroelectronics. RM0090 Reference manual STM32F405/415, STM32F407/417, STM32F427/437, STM32F429/439 (Rev 21) — разд. 38.5–38.6: TAP граничного сканирования STM32F4 с регистром команд 5 бит и ID-кодом 0x06413041 (STM32F405/407/415/417) — параметры, которые описывает BSDL

Нашли ошибку?