Ами ГОРОДЕЦКИЙ, к. т. н. (JTAG.TECT)
Кому понадобится
новый стандарт IEEE 1687?
Разработка нового JTAG-стандарта IEEE 1687, обсуждение которого мы начали в июльской колонке этой рубрики, близится к завершению. Альфред Крауч (Al Crouch), сопредседатель комитета IEEE P1687, занимающегося разработкой этого стандарта, полагает, что его ратификация состоится в III квартале 2011 года. По словам Крауча [1], рабочая группа комитета практически завершила разработку трех основных частей стандарта: архитектурных правил построения структур, определяемых стандартом, языка описания связей между отдельными инструментами (Instrument Connectivity Language, ICL) и языка описания тестовых векторов и процедур (Procedural Description Language, PDL).
Ввиду значительных ожиданий и надежд, с которыми связывается начало применения стандарта IEEE 1687, в этой и последующих колонках нашей рубрики мы продолжим рассмотрение отдельных его аспектов. Мы попытаемся шаг за шагом подробнее разобраться в том, что это за стандарт (кратко это уже описано в [2]), для кого он предназначен, каковы его преимущества и как этим стандартом пользоваться.
Одна из существенных проблем, с которыми столкнулись разработчики сложных ИС (СБИС, СнК), заключается в том, что схемные механизмы доступа к структурам DFT (Design-for-Test, или структуры тестопригод-ности) и DFD (Design-for-Debug, или структуры отладки) различных ИС существенно отличаются друг от друга. Более того, оказалось, что построение внутри кристалла структур DFT и DFD из элементов, принципиально отличающихся друг от друга, порождает массу совершенно неожиданных проблем, решительно выбивающих раз-
работчиков ИС из графика работ и увеличивающих стоимость разработок. Наряду с возникновением подобных проблем, применимость JTAG-структур во вновь разрабатываемых ИС уже давно стала рутиной, как из-за спроса на такие структуры со стороны разработчиков ПП, так и в связи с использованием JTAG-структур для тестирования и отладки самих ИС.
Попытки разработки структур DFT и DFD на базе протокола JTAG в стандарте IEEE 1149.1 оказались, тем не менее, не слишком успешными из-за недостаточной гибкости этого протокола применительно к потребностям разработчиков микросхем. Проблематично, в частности, то, что существующая структура файлов BSDL [3] не предусматривает адекватных описаний встроенных инструментов тестирования и отладки, а также операций с подобными инструментами. Первая итерация, предпринятая в начале разработки нового стандарта IEEE 1687, как раз и заключалась в использовании структуры JTAG в стандар-
те IEEE 1149.1 с модифицированным набором сдвиговых регистров данных SDR [2] для обеспечения доступа к встроенным инструментам внутри ИС.
Существенная особенность структур этих двух стандартов в том, что структура 1687, в отличие от обычной структуры JTAG, предусматривает управление длиной и составом JTAG-цепочек. Иными словами, становится возможным удлинять или укорачивать цепочки сканирования за счет добавления или устранения отдельных сдвиговых регистров, а также менять порядок включения сдвиговых регистров в фазе Scan-DR даже без прохождения контроллером ТАР состояния Scan-IR. Это означает, в частности, что JTAG-цепочки ИС, поддерживающих стандарт IEEE 1687 (далее будем их называть ИС-1687), управляемы и конфигурируемы в процессе управления данными и посредством сдвиговых регистров данных, что представляет собой замечательное новшество.
Язык ICL стандарта 1687, предназначенный для описания подобных гибких структур, позволит применять для тестирования ИС-1687, смонтированных на ПП, тесты, разработанные и отлаженные для отдельных встроенных инструментов таких ИС, которые сейчас используются только на уровне чипов, а также использовать для тестирования ПП готовые тесты, разработанные и отлаженные для отдельных ИС-1687, смонтированных на этих платах. Стандартизованная тестовая оболочка встроенных инструментов позволит сделать применимость одних и тех же тестов необычайно широкой — от отдельных чипов до смонтированных ПП. И в течение всего жизненного цикла ИС-1687: от верификации дизайна и тестового зондирования силиконовой пластины, далее через тестирование ИС в корпусе и на ПП после сборки, отладку ПП, а также системные тесты, анализ
Рисунок. Инструменты в составе ИС-1687
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 1 ’2011
уровня исправности производимых ИС и их отказов и, наконец, тестирование ПП для обнаружения в них возможных неисправностей.
Ответ на вопрос, кто извлечет наибольшие преимущества из стандарта IEEE 1687, прост: это будут все! Все специалисты, так или иначе вовлеченные с процессы производства и тестирования ИС и ПП, с введением нового стандарта обнаружат для себя множество новых и перспективных возможностей.
Начнем с разработчиков инструментов. Понятие инструмента в стандарте 1687 (рисунок) подразумевает любую размещаемую на ИС-1687 структуру, предназначенную для поддержки тестирования, диагностики, настройки и отладки самой ИС или любых ее частей, а также конфигурирования, мониторинга и прочих задач. Доступ к этим структурам и связь с ними осуществляются посредством JTAG-порта, регистра граничного сканирования (РГС) и контроллера ТАР, которые хорошо нам знакомы по стандарту 1149.1 [4]. Разработчики инструментов — это очень широкий диапазон компаний, включающих поставщиков программного обеспечения (ПО) и консультантов по тестопригодному проектированию (DFT), которые в состоянии поставлять на рынок хорошо документированные коды инструментов, разработанные в виде пакетов plug-&-play и снабженные наборами тестовых векторов в PDL-формате. Сами по себе инструменты могут, разумеется, и не поддерживать механизмы доступа в стандарте 1687 или не содержать JTAG-оболочек (wrapper), представляя собой макросы, модели или коды на Verilog/VHDL и подобных языках. Совместимость со структурами стандарта 1687 должна обеспечиваться PDL-векторами, а сигнальный интерфейс каждого такого инструмента должен быть описан в операторах языка ICL.
Разработчиками интеллектуальной собственности (IP) для структур ИС-1687 могут быть поставщики как отдельных инструментов, так и сколь угодно сложных и завершенных функциональных структур, содержащих несколько инструментов наряду со средствами поддержки их тестирования и отладки. Например, IP может содержать некоторую готовую сеть доступа к набору инструментов, поставляемую со всеми необходимыми PDL-векторами, снабженную описаниями на языке ICL, и без труда, в виде пакета plug-&-play, интегрируемую в архитектуру той или иной разрабатываемой ИС-1687. Портативность тестов и возможность их повторного применения (это центральное понятие для рассматриваемого стандарта, как было показано в [2]) заключается в том, что разработчик IP может поставлять разрабатываемые им тесты системным или чип-интеграторам ИС-1687, которые являются его заказчиками.
Роль чип-интеграторов ИС-1687 (отдельных специалистов, компаний и т. д.) заключается в объединении инструментов и инструментальных сетей в рамках архитектуры,
определяемой стандартом 1687, на основе его интерфейсных средств. Алгоритмы интеграции №-1687 легко автоматизируемы, поскольку все интегрируемые инструменты и сети снабжаются 1687-совместимыми JTAG-оболочками. Поэтому все, что остается интегратору, — это подключить сигналы управления протокола 1687 и позаботиться о целостности цепочек JTAG-сканирования. Тестирование получаемых структур можно выполнить на любом уровне архитектуры 1687 при помощи тестовых PDL-векторов.
Наиболее существенным преимуществом применения стандарта 1687 является, как уже упоминалось, портативность тестов и возможность их повторного применения. Повторное применение тестов заключается в том, что тесты, поставляемые с одним конкретным инструментом на этапе разработки ИС-1687 и предназначенные для тестирования самого этого инструмента, могут в дальнейшем неоднократно применяться различными пользователями и на разных этапах и уровнях тестирования. Такое универсальное использование тестов позволит кардинально сократить объем работы разработчиков тестов и квалификационные требования как к тест-программистам, так и к тест-операторам. Тест-инженеру не нужно будет слишком глубоко вникать в принципы построения тест-векторов для каждого из инструментов ИС-1687 на уровне чипа, что будет, несомненно, иметь значительные экономические последствия. Попросту говоря, достаточно будет взять набор готовых PDL-векторов, предназначенных для тестирования того или иного инструмента, и вставить его в программу подготовки теста для чипа, вводимую посредством JTAG-порта ИС-1687.
Еще более значительного эффекта экономии затрат и времени можно ожидать при разработке тестов для ПП, содержащих ИС-1687. Я хочу напомнить старое и хорошо известное «правило десяти»: затраты на тестирование или отладку любой ИС на каждом следующем уровне доступа (верификация, тестирование на силиконе, тестирование в корпусе, на ПП, в системе и т. д.) увеличиваются на порядок! Экономия при разработке тестов
для ПП, содержащих ИС-1687, как раз и заключается в том, что «правило десяти» нарушается, поскольку на каждом следующем уровне доступа применяются те же самые тесты. Разумеется, тест-инженер, разрабатывающий тесты для ПП, весьма далек от понимания структуры и принципов тестирования отдельных встроенных в ИС-1687 инструментов. Однако в этом и нет никакой нужды, поскольку программные пакеты генерации JTAG-тестов будут предусматривать ввод в них, наряду с файлами BSDL, наборов готовых PDL-векторов, в сущности, тех же самых тестов, которые уже применялись для тестирования каждой ИС-1687 еще до того, как она была смонтирована на ПП.
Более того, в этом случае тест-инженеры смонтированных плат получают недоступные прежде средства сбора диагностических данных о техническом состоянии отдельных инструментов, встроенных в каждую из ИС-1687. Соответствующие программные средства обработки собранных таким образом данных обеспечат возможность глубокой диагностики отдельных ИС (вплоть до отдельных инструментов) с уровня ПП, позволят прогнозировать отказы и обеспечивать безопасность данных и их защиту от внешних хакерских атак, а также многое другое. Наряду с появлением множества новых возможностей могут быть существенно оптимизированы уже имеющиеся программы управления прогоном JTAG-тестов, прежде всего, за счет новой возможности манипулирования глубиной тестирования и, как следствие, влияния на уровень тестового покрытия неисправностей. ■
Литература
1. http://blog.asset-intertech.com/test_data_out/ 2010/08/what-is-ieee-1687.html
2. Городецкий А. Стандарт тестопригодного проектирования IEEE Г1687 // Компоненты и технологии. 2010. № 7.
3. www.jtag-test.ru/JTAGUniversity/articles/ 03-PE_7_2007.php
4. www.jtag-test.ru/JTAGUniversity/articles/ 01-PE_5_2007.php
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 1 '2011
www.kit-e.ru