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 →