Открыть сервис

BSDL

BSDL (Boundary-Scan Description Language) — это стандартизированный язык описания граничного сканирования (boundary-scan), используемый для тестирования цифровых и смешанных интегральных схем (ИС) и печатных плат. BSDL является подмножеством языка VHDL (Very High Speed Integrated Circuit Hardware Description Language) и служит для формального описания реализации архитектуры граничного сканирования, определённой стандартом IEEE 1149.1 (JTAG). Язык позволяет разработчикам, тест-инженерам и системам автоматизированного проектирования (САПР) однозначно описывать структуру и поведение JTAG-совместимых устройств.

История и стандартизация

Язык BSDL был разработан в конце 1980-х — начале 1990-х годов как часть усилий по стандартизации методов тестирования сложных цифровых устройств. Основой послужил стандарт IEEE 1149.1-1990 «Standard Test Access Port and Boundary-Scan Architecture», который определил архитектуру граничного сканирования. BSDL был официально принят как дополнение к этому стандарту в 1994 году (IEEE 1149.1b-1994). Впоследствии стандарт неоднократно обновлялся: последняя версия IEEE 1149.1-2013 включает расширения для описания встроенного самотестирования (BIST) и других возможностей.

BSDL был создан для решения проблемы несовместимости описаний JTAG-устройств от разных производителей. До его появления каждый производитель интегральных схем предоставлял документацию на граничное сканирование в произвольном формате, что затрудняло автоматизацию тестирования и разработку универсальных тестовых программ. BSDL обеспечил единый машинно-читаемый формат, который может быть обработан как программами САПР, так и тестовыми системами.

Структура и синтаксис

BSDL-файл представляет собой текстовый документ, написанный на подмножестве VHDL. Он состоит из нескольких обязательных и опциональных секций, каждая из которых описывает определённый аспект JTAG-архитектуры.

Обязательные элементы

Каждый корректный BSDL-файл должен содержать:

  • Entity (сущность) — объявление имени устройства, которое соответствует обозначению микросхемы (например, entity TMS320F28335 is).
  • Generic (обобщённые параметры) — указание физического корпуса (package) микросхемы, так как от корпуса зависит количество и расположение выводов.
  • Port (порты) — описание всех внешних выводов микросхемы с указанием их типа (вход, выход, двунаправленный, трёхстабильный) и соответствия сигналам JTAG.
  • Use statements (использование библиотек) — подключение стандартных библиотек IEEE 1149.1.
  • Scan Port Identification (идентификация порта сканирования) — описание сигналов TAP (Test Access Port): TCK (тактовый сигнал), TMS (выбор режима), TDI (вход данных), TDO (выход данных), а также опциональных TRST (сброс) и других.
  • Instruction Register (регистр команд) — описание длины регистра команд (обычно 2-8 бит) и всех поддерживаемых команд, включая обязательные (BYPASS, SAMPLE/PRELOAD, EXTEST) и опциональные (INTEST, IDCODE, USERCODE, RUNBIST и др.).
  • Boundary-Scan Register (регистр граничного сканирования) — описание всех ячеек граничного сканирования, их порядка и привязки к выводам микросхемы. Каждая ячейка описывается с указанием номера ячейки, номера вывода, функции (вход, выход, управление, двунаправленный) и безопасного состояния.
  • Design Warning (предупреждения) — обязательное указание, что описание соответствует стандарту, и перечисление любых отклонений или ограничений.

Опциональные элементы

  • IDCODE Register (регистр идентификационного кода) — описание 32-битного идентификатора устройства, включающего код производителя, номер части и версию.
  • User Code (пользовательский код) — описание регистра для хранения пользовательских данных.
  • BIST (встроенное самотестирование) — описание алгоритмов и результатов встроенного тестирования.
  • Runbist (выполнение самотестирования) — описание команд и процедур для запуска BIST.
  • Alias (псевдонимы) — альтернативные имена для сигналов или команд.
  • Attribute (атрибуты) — дополнительные параметры, такие как тактовые частоты, напряжения питания и другие характеристики.

Пример фрагмента BSDL-описания

``bsdl entity EXAMPLE is generic (PHYSICAL_PIN_MAP : string := "DIP40"); port ( CLK : in bit; DATA : inout bit_vector(7 downto 0); TDI : in bit; TDO : out bit; TMS : in bit; TCK : in bit; TRST : in bit ); use STD_1149_1_2001.all; attribute COMPLIANCE_PATTERNS of EXAMPLE : entity is "(CLK)"; attribute INSTRUCTION_LENGTH of EXAMPLE : entity is 4; attribute INSTRUCTION_OPCODE of EXAMPLE : entity is "BYPASS (1111), " & "EXTEST (0000), " & "SAMPLE (0001), " & "IDCODE (0010)"; attribute IDCODE_REGISTER of EXAMPLE : entity is "XXXX" & -- version "XXXXXXXXXXXX" & -- part number "XXXXXXXXXXX" & -- manufacturer ID "1"; -- required 1 attribute BOUNDARY_LENGTH of EXAMPLE : entity is 20; attribute BOUNDARY_REGISTER of EXAMPLE : entity is -- cell num (port, function, safe, ccell, cval) "0 (BC_1, CLK, input, X), " & "1 (BC_1, DATA(7), bidirectional, X, 2, 1), " & ... "19 (BC_1, *, control, 1)"; end EXAMPLE; ``

Применение

Тестирование печатных плат

Основное применение BSDL — автоматизация тестирования печатных плат с использованием JTAG-интерфейса. Тестовые системы, такие как автоматические тестеры граничного сканирования (Boundary-Scan Testers), считывают BSDL-файлы всех микросхем на плате, строят модель соединений и генерируют тестовые последовательности. Это позволяет:

  • Проверять целостность паек и соединений (тест EXTET).
  • Выявлять короткие замыкания и обрывы.
  • Тестировать логику без физического доступа к выводам (например, под корпусами BGA).

Проектирование и верификация

В процессе разработки электронных устройств BSDL используется для:

  • Симуляциимоделирование поведения JTAG-цепи на этапе проектирования.
  • Генерации тестов — создание тестовых векторов для внутрисхемного тестирования (ICT).
  • Программирования — загрузка прошивок в ПЛИС (FPGA) и микроконтроллеры через JTAG (например, с помощью программ Xilinx iMPACT или Altera Quartus).
  • Диагностики — анализ неисправностей в готовых изделиях.

Совместимость и интеграция

BSDL-файлы предоставляются производителями микросхем (например, Texas Instruments, Intel, Xilinx, Analog Devices) как часть технической документации. Они могут быть загружены с сайтов производителей или получены через дистрибьюторов. Стандарт IEEE 1149.1 гарантирует, что BSDL-файлы от разных производителей совместимы между собой, что позволяет создавать универсальные тестовые системы.

Инструменты и программное обеспечение

Для работы с BSDL существует множество программных средств:

  • Синтаксические анализаторы — проверяют корректность BSDL-файлов (например, BSDL Syntax Checker от Texas Instruments).
  • Тестовые генераторы — создают тестовые последовательности (например, ScanWorks от ASSET InterTech, JTAG Technologies).
  • САПР — многие системы проектирования печатных плат (Altium Designer, Cadence OrCAD, Mentor Graphics PADS) поддерживают импорт BSDL для автоматической генерации тестовых цепей.
  • Отладчики — программы для отладки через JTAG (OpenOCD, UrJTAG) используют BSDL для определения структуры TAP.

Критика и ограничения

Несмотря на широкое распространение, BSDL имеет ряд недостатков:

  • Сложность создания — ручное написание BSDL-файлов для сложных микросхем требует глубокого знания архитектуры и стандарта. Ошибки в описании могут привести к некорректным тестам.
  • Ограниченная поддержка смешанных сигналов — стандарт изначально ориентирован на цифровые схемы; описание аналоговых и смешанных сигналов (например, АЦП/ЦАП) реализовано лишь в расширениях IEEE 1149.4.
  • Отсутствие единой базы — хотя BSDL-файлы доступны от производителей, они не централизованы, что затрудняет поиск и верификацию.
  • Зависимость от корпуса — BSDL-файл привязан к конкретному корпусу микросхемы, что требует отдельных файлов для разных вариантов упаковки.

Интересные факты

  • BSDL является одним из немногих промышленных языков описания аппаратуры, который используется не для проектирования, а исключительно для тестирования.
  • Стандарт IEEE 1149.1, частью которого является BSDL, изначально разрабатывался для военных и аэрокосмических приложений, но быстро стал стандартом де-факто в коммерческой электронике.
  • В России BSDL активно применяется в оборонной и аэрокосмической промышленности для тестирования сложных бортовых систем, где надёжность соединений критична.

Источники

  • IEEE Standard 1149.1-2013 — IEEE Standard for Test Access Port and Boundary-Scan Architecture.
  • IEEE Standard 1149.1b-1994 — Supplement to IEEE Std 1149.1-1990, Boundary-Scan Description Language (BSDL).
  • Texas Instruments. «Boundary-Scan Description Language (BSDL) — Application Report». 2004.
  • ASSET InterTech. «Introduction to Boundary-Scan and BSDL». 2020.
  • Xilinx. «BSDL Files for Xilinx Devices — User Guide». 2019.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →