https://lauftex.ru/product/4024-portativnyy-analizator-spektra

Два направления JTAG Technologies


PDF версия

В статье показаны различия между процессами тестирования и верификации. Если первый процесс используется для поиска дефектных цепей или компонентов на плате и отвечает на вопросы «где» и «что», то второй — исследует состояние известных цепей и компонентов.

Давайте представим, что у нас есть плата, пригодная для тестирования при помощи периферийного (граничного) сканирования, которое мы, собственно, и хотим применить. Плата содержит, к примеру, несколько ПЛИС, процессор и набор микросхем памяти, как оперативной, так и ПЗУ. Если при этом основные микросхемы выполнены в корпусах BGA, то периферийное сканирование дает нам отличный шанс получить тестовый доступ к цепям и компонентам на данной плате без попыток что-нибудь отпаять, оторвать или просверлить.

При этом задачи, решаемые при использовании периферийного сканирования, могут быть абсолютно разными. Выделим две основные:

1. Протестировать плату. Найти и локализовать все возможные неисправности;

2. Проверить состояние заранее известных цепей в целях верификации.

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

Теперь рассмотрим второй вариант использования периферийного сканирования. Предположим, что нам требуется всего лишь проверить логический уровень на двух-трех заранее определенных цепях или проверить соединение в исследовательских целях. Для этого не требуется автоматическое тестирование платы. Мы заранее знаем, какие цепи нам нужно проверить, и, в принципе, могли бы использовать для этих целей обычные измерительные приборы, если бы не отсутствие физического доступа.

В общем, первый вариант — это электрическое тестирование, которое используется для поиска дефектных цепей или компонентов на плате и отвечает на вопросы «где» и «что», а второй — применяется для исследования известных цепей и компонентов.

Наверное, многие производители и разработчики цифровой электроники заметили, что в последнее время средства тестирования JTAG Technologies разделились на два направления. Данное разделение назревало довольно давно, так как основные системы периферийного сканирования, которыми изначально занималась компания, все-таки больше подходили для тестирования и программирования продукции, нежели для отладки. При этом компания JTAG Technologies запустила два разных сайта по обоим направлениям: www.jtag-technologies.ru и www.jtaglive.ru.

Тестирование

Первое и основное направление — это профессиональные системы тестирования плат и систем (www.jtag-technologies.ru). Принцип их работы показан на рисунке 1.

Рис. 1. Принцип работы профессиональных средств JTAG-тестирования на примере JTAG ProVision

Для тестирования электронного модуля или блока из нескольких плат сначала строится проект в системе проектирования JTAG ProVision. Проект основывается на списке соединений из САПР (net-лист) и моделях компонентов. Эта информация является базой для генерации приложений для тестирования. При этом модели могут быть взяты из библиотеки или созданы при помощи редактора. Также существуют модели компонентов с поддержкой периферийного сканирования, называемые BSDL-файлами, которые обычно могут быть загружены с сайта производителя микросхем или входят в пакет документации на чип. BSDL-файл описывает архитектуру регистров периферийного сканирования внутри соответствующих микросхем. После того, как система «узнала» о межкомпонентных связях и функциональности самих компонентов, приступают к генерации тестовых и других приложений. При добавлении в проект исходных файлов для флэш-ПЗУ и ПЛИС к тестам можно добавить операции программирования. При генерации создаются тестовые последовательности (векторы), которые во время тестирования будут выставляться с выводов компонентов, с поддержкой JTAG. Количество тестовых векторов зависит от сложности платы, параметров генерации и типа тестового приложения. Например, для теста межкомпонентных соединений система обычно создает несколько десятков векторов, а для теста цепей оперативной памяти типа DDR — до нескольких тысяч.

После генерации и редактирования созданных тестов тестовые последовательности преобразуются в файлы приложений, компилируются и отправляются в контроллер периферийного сканирования, который выполняет тестирование плат или блоков. Полученные после тестирования результирующие векторы анализируются, и выдается информация о найденных дефектах и их местоположении. Каждое приложение создается со своими векторами, своими словарями для диагностики и может выполняться как самостоятельно, так и в составе последовательности. Важно, что программа сама создает все таблицы ожидаемых откликов на основе анализа схематики и функциональности компонентов и выполняет поиск дефектов по этим данным. Хотя существуют также и типы приложений, использующие «пользовательские» векторы.

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

Рис. 2. Тестирование плат при помощи профессиональных средств периферийного сканирования

Здесь следует отметить, что при выполнении хотя бы одного теста межкомпонентных связей тестовые паттерны могут диагностировать дефекты на других компонентах платы, даже если те не поддерживают периферийное сканирование. Пример показан на рисунке 3. На данном примере всего лишь один компонент (DSP) имеет тестовую логику JTAG. Однако при генерации «расширенного» набора векторов будут проверяться как неподключенные выводы процессора, так и возможные дефекты на соседних компонентах. В нашем случае — это тестирование между собой цепей, которые, вообще говоря, на управляющем процессоре соседними не являются. Теперь давайте представим, что мы знаем логику работы микроконтроллера (или любой другой микросхемы на ее месте) или мы установили для него особый, «тестовый» режим работы (запрограммировали). В таком случае, мы можем протестировать и диагностировать все дефекты на линиях связи, сообщив системе модель функционирования данного микроконтроллера. Полноценный тест при помощи периферийного сканирования как раз и состоит из таких «взаимодополняющих» комбинаций, объединяемых в производственные последовательности, о которых публиковалось ранее.

Рис. 3. Только лишь при одном тесте окружающих цепей микроконтроллера можно найти многие дефекты, а в сочетании с другими видами тестов (рис. 2) можно добиться полноценного тестового покрытия

Зачастую бывает, что тестируемая плата содержит один центральный процессор или ПЛИС и множество окружающих его микросхем ОЗУ. При этом, если обеспечен доступ к сигналам памяти (напрямую или через связующую логику), то благодаря тесту соединений с устройствами памяти удается получить исчерпывающий тест почти всей платы. Для микросхем ОЗУ генерация происходит следующим образом: модель содержит информацию о циклах чтения/записи; проект содержит названия цепей, соединенных с данным чипом. На основе этой информации генерируются сотни тестовых векторов, записывающих и считывающих данные в разных комбинациях, давая точнейшую диагностику дефектов. Если на плате установлено не одна такая микросхема ОЗУ, а несколько, то тестовые приложения для остальных создаются подобным образом с использованием той же самой модели. Добавим к этому тест окружающих цепей самого процессора и внешних интерфейсов, и локализация причин неисправности платы и даже скрытых дефектов будет приближаться к идеальной.

Одной из отличительных особенностей профессиональных средств тестирования при помощи JTAG является также возможность глобального контроля всех компонентов платы или системы во время каждого из тестов. Обладая обширной базой моделей компонентов и данным САПР, система сканирования во время тестов тех или иных участков платы автоматически включает или выключает различные устройства памяти, интерфейсов, логики и т.д., хотя пользователь имеет возможность вручную выставить свои ограничения. На рисунке 4 показан пример контроля некоторых микросхем памяти во время теста межкомпонентных связей, для исключения влияния. В следующем тесте система, наоборот, подаст сигнал включения на данные компоненты, когда наступит их очередь участвовать в тесте.

Рис. 4. Контроль над состоянием компонентов в системе JTAG ProVision при выполнении тестов

Отладка — новое направление

Второе направление деятельности JTAG Technologies, которое является довольно новым, — это отладка схем при помощи того же самого стандарта JTAG IEEE 1149.1. Средства отладки объединены не только в отдельном сайте www.jtaglive.ru, но и имеют собственный логотип семейства JTAG Live (см. рис. 5). На сайте JTAG Live можно загрузить бесплатную программу «прозвонки» и мониторинга цепей под названием Buzz, а также заказать несколько более функциональные платные программы. Цель создания такого направления — сделать периферийное сканирование полезным не только при тестировании плат, но и при верификации определенных участков схемы в целях отладки. При этом использование сканирования позволяет производить отладку «железа» без наличия аппаратного ПО, что часто бывает затруднительным. Как следствие, основная ожидаемая аудитория пользователей — это разработчики схем, которые уже давно требовали появления такого рода средств, которые отвечали бы требованиям задачи №2 из начала этой статьи.

Рис. 5. Логотип семейства программных средств JTAG Live

Данные продукты ни в коем случае нельзя рассматривать как средства тестирования. Они выполняют функцию проверки конкретных цепей, выбранных пользователем, поэтому там отсутствует анализ списков соединений из САПР, автоматическая генерация тестов, модели компонентов без JTAG и все прочее. В сущности, средства JTAG Live выполняют ту же функцию, что и «прозвонка» цепей при помощи обычного мультиметра или, в крайнем случае, при помощи клипс логического анализатора (см. рис. 6), не занимаясь целенаправленным поиском дефектов на плате. Преимущество периферийного сканирования перед «ручным» методом в данном случае — это возможность «влезать» в недоступные участки платы, например, под корпуса BGA.

Рис. 6. «Ручные» методы отладки прототипов

Рассмотрим более подробно возможности бесплатной программы Buzz. Прежде всего, данное средство работает не только с контроллерами JTAG Technologies, но и с отладочными кабелями фирм Xilinx и Altera, таким образом, не требуя никаких капиталовложений. Принцип работы программы прост — нужно задать программе только компоненты, поддерживающие JTAG, указав, соответственно, их BSDL-файлы. При этом программа не знает ничего о межсоединениях на плате, и пользователь должен сам выбрать выводы микросхем, между которыми необходимо установить контакт. Следует также отметить, что выбирать можно только пины JTAG-совместимых микросхем, так как об остальных информация у системы отсутствует.

После ввода такой информации можно проводить несколько типов экспериментов. На рисунке 7 показана измерительная область Buzz. В окне «Watch» можно наблюдать за состоянием того или иного вывода. При этом используется JTAG-режим SAMPLE для мониторинга в реальном времени, кроме того, это никак не сказывается на общей работе устройства, позволяя проводить измерение на работающем изделии.

Рис. 7. Измерительное окно программы JTAG Live Buzz

Поле «Buzz» используется для проверки наличия соединения между двумя выводами одной или разных микросхем с поддержкой JTAG и загорается красным или зеленым цветом. Поле «Measure» позволяет проводить считывание сигнала на каком-либо выбранном выводе при стимуляции определенных воздействий на другие.

Мы не будем углубляться в специфику продуктов JTAG Live, так как тематика данного издания — это производство электроники, а не разработка. Существуют и другие программы семейства JTAG Live, например, Clip и Script, о которых имеет смысл написать отдельный обзор. Кстати говоря, все они включены по умолчанию в профессиональные средства тестирования как дополнительные утилиты.

Целью данной статьи являлось прояснение разницы между двумя направлениями JTAG Technologies, их возможными применениями и целевой аудиторией. Зачастую происходит так, что разработчики принимают станции тестирования плат за средства отладки, а работники производства пытаются использовать JTAG Live как метод электрического контроля, что может привести к некоторым конфузам. Автор искренне надеется, что сумел показать различия концепций применения периферийного сканирования как для тестирования и программирования плат в целях поиска дефектов, контроля качества и диагностики отказов, так и для отладки прототипов в частных целях.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *