Введение в стандарт IEEE 1500 для тестопригодного проектирования СнК (часть 1)


PDF версия

Эта и несколько последующих статей большого цикла «Основы технологии граничного сканирования и тестопригодного проектирования» будут посвящены краткому введению в стандарт IEEE 1500 [1]. Стандарт охватывает не только аппаратные аспекты СнК-структур, но и вводит в обиход новый язык тестирования CTL (Core Test Language), которому также будет уделено определенное внимание в подцикле, поскольку применимость языка CTL уже далеко вышла за рамки собственно стандарта 1500 и определяется отдельным стандартом IEEE 1450.6.

Еще не всё дорешено,
еще не всё разрешено…
А. Макаревич

IEEE 1500, предназначенный для формализации тестопригодного проектирования СнК-структур, официально утвержден в качестве международного стандарта еще в 2005 году. Рабочей группе IEEE понадобилось около семи лет для завершения работы над ним, и со времени официального утверждения этот стандарт широко применяется при проектировании тестопригодных СнК. Во многом стандарт схож с JTAG-стандартом IEEE 1149.1 и использует базовую идеологию последнего. Отличие между ними заключается в том, что принципы тестопригодности стандарта 1500 сформулированы на уровне IP и функциональных ядер СнК.
Полупроводниковая промышленность находится в непрерывных поисках сочетания минимального форм-фактора, как можно меньшей потребляемой мощности и затрат с как можно большей функциональностью, производительностью и тестопригодностью готовых изделий. Традиционно для этой цели использовались только двухмерные компоненты, начиная с миниатюризации традиционных КМОП СнК. Затем появились многофункциональные ядра СнК, содержащие несколько IP (intellectual property) на одном кристалле. Затем — многокристальные системы в одном корпусе (многокристальный корпус ИС, МИС), а также многослойные ИС, монтируемые на печатных платах (ПП). Относительно недавно стало широко использоваться третье, вертикальное, измерение. Примером такого подхода могут служить системы, размещаемые в корпусе. При этом несколько чипов вертикально, как этажерка, упаковываются в одном корпусе СнК и связываются с подложкой посредством проводных связей, или же в виде конструкции типа корпус-на-корпусе (КнК), в которых вертикально смонтированы несколько корпусов СнК.
Одним из последних достижений в этом списке инноваций являются так называемые трехмерные многоуровневые СНК (3-МИС), корпуса которых содержат стеки чипов, упакованных вертикально и связанных между собой посредством межуровневых перемычек (МП) [2]. Эти МП представляют собой соединительные штифты, выходящие из задней части каждого кристалла и связывающие между собой все отдельные чипы. Соединения посредством МП позволяют обмениваться сигналами на более высоких скоростях при значительно меньшей мощности рассеивания. Трехмерные технологии, основанные на использовании МП, открывают новые архитектурные возможности, позволяя создавать новые поколения супер-чипов с большей функциональностью и производительностью при малых размерах, рассеиваемой мощности и стоимости. Это тем более важно в эпоху, когда обычные способы миниатюризации становятся все более сложными и дорогостоящими.
В условиях необходимости постоянного сокращения циклов проектирования СнК, диктуемого агрессивной политикой вывода на рынок новых СБИС, решение следует искать в оптимизации производительности проектирования. Одним из множества решений, удовлетворяющих такому подходу, является формализация отдельных фрагментов разработки, повторяющихся как в рамках одного дизайна, так и применяющихся в других структурах, с тем, чтобы не изобретать это колесо (тот или иной фрагмент структуры СнК) по нескольку раз. Каждый такой фрагмент должен быть разработан однажды, а затем повторно использован (тиражирован) в любых структурах, в которые он может входить. Применение стратегии повторного использования отдельных фрагментов предполагает, разумеется, существенные изменения в самой методологии проектирования СнК.
Необходимые перемены в подходе к проектированию заключаются в том, что разработчик чипа освобождается от забот по проектированию отдельных, постоянно встречающихся функций (далее мы будем их называть ядрами), применяя в своем дизайне отдельные ядра в виде покупных модулей, или IP, поставляемых на рынок фирмами, специализирующимися на их разработке. Это напоминает современные подходы к проектированию схем печатных плат на основе использования отдельных покупных компонентов и микросхем той или иной степени сложности. Задача разработчика в обоих случаях заключается в требуемом соединении отдельных компонентов как для обеспечения ожидаемой функциональности проектируемой структуры, так и для обеспечения ее тестопригодности. Нас будут интересовать только аспекты тестопригодности, подразумевающие повторное применение частных тестов, предназначенных для отдельных ядер, которые должны быть разработаны самими поставщиками ядер и приобретены наряду с приобретением IP-ядер.
Трудности подобного подхода очевидны, поскольку необходимо четкое согласование принципов тестопригодного проектирования (ТПП, или DFT), применяемых как поставщиками ядер, так и их заказчиками, или интеграторами, разрабатывающими СнК. Мало того, необходимо детальное взаимопонимание между этими двумя сторонами процесса проектирования во всем, что касается структур и обозначений терминалов отдельных ядер. Пользуясь терминологией тестопригодного проектирования [3], на уровне СнК следует обеспечить как управляемость, так и наблюдаемость покупных ядер путем тех или иных добавок в структуры СнК интерфейсной ТПП-логики.
Многие фирмы, занимающиеся разработкой СнК и стремящиеся побыстрее выйти со своими продуктами на рынок, но по различным причинам еще не использующие стандарт IEEE 1500, применяют разнообразные нестандартизованные встроенные структуры, призванные обеспечить тестопригодность своих СнК. Следствием такого подхода зачастую являются проблемы совместимости с покупными ядрами СнК, или IP, интерфейсы которых построены несколько иначе. Применяемые в подобных ситуациях решения обычно состоят в следующем:
– разработка тех или иных местных структур, обычно называемых «механизмами тестового доступа» (Test Access Mechanism, TAM) для обеспечения транспортировки данных тестирования в последовательном – протоколе (сериализация) от внешних контактов СнК ко встроенной оболочке ядра СнК;
– десериализация данных тестирования, обычно неширополосных, приходящих от ТАМ, с тем, чтобы их можно было подать на функциональные ядра, как правило куда более широкополосные;
– обратная сериализация данных на выходах функциональных ядер для согласования их с неширополосными ТАМ.
Встроенные в СнК аппаратные структуры, охватывающие функциональные ядра и предназначенные для использования в качестве DFT-интерфейса, принято называть обёртками или DFT-обёртками (wrapper), и именно этот термин мы будем неоднократно использовать в данном подцикле статей.
Пользовательские нестандартизованные решения, как и следует ожидать, малоэффективны. В одних из них вынужденно увеличивается ширина полосы ТАМ, что подразумевает использование ресурсов СнК других уровней. Неэффективность других обусловлена тем, что без особой необходимости увеличивается время тестирования ядра СнК из-за последовательного характера доступа к интерфейсу тестирования. Несмотря на ряд недостатков применения нестандартизованных DFT-обёрток, следует отметить, что структуры типа обёрток сами по себе представляют собой весьма эффективное средство обеспечения как управляемости, так и наблюдаемости [3], и широко используются различными компаниями разработчиками СнК.
К определенному времени стало ясно, что применение DFT-обёрток безусловно оправданно, и лишь их нестандартизованность ощущалась как очевидный фактор, сдерживающий их повсеместное использование. Речь при этом, конечно, шла не только о разработке стандартной и эффективной структуры DFT-обёрток, но также и об эффективной структуре их сигнальных и прочих интерфейсов, позволяющих ответить на ряд возникающих при этом вопросов. К примеру, каким образом описать пользователю функционального ядра (IP) СнК, что некий из терминалов обёртки определенного уровня представляет собой вход сканирования и, следовательно, должен быть подключен определенным образом к структуре СнК на некоем уровне? Каким образом пользователь функционального ядра СнК может обрабатывать тест-векторы, получаемые от разработчика этого ядра, или IP? В каком формате эти тест-векторы должны поставляться с тем, чтобы они были стандартными и совершенно не зависели от разработчика ядра СнК? Это, разумеется, лишь малая часть вопросов, с которыми столкнулась в свое время группа разработки нового стандарта IEEE 1500, задача которой заключалась в формулировке стандартных подходов к тестированию СнК на уровне их функциональных ядер.
В качестве одного из основополагающих принципов, заложенных в основу стандарта IEEE 1500, был принят тот очевидный факт, что различные компании и их разработки нуждаются в различных DFT-стратегиях, т.е. подходах к обнаружению и диагностике неисправностей, описываемых самыми разнообразными моделями. Наиболее распространенными их них является модель константных неисправностей (stuck-at), модель неисправностей перехода между логическими состояниями (transition faults) [3], функциональные модели, изоляция отдельного функционального ядра для целей тестирования, выведение в состояние покоя или же полная изоляция одних фрагментов СНК при тестировании других, тот или иной уровень координации между ядрами или IP в процессе их тестирования порознь или СнК в целом.
Таким образом, очевидно, что хотя стандартизации и связанных с нею затрат можно было бы избежать на уровне реализации отдельных DFT-стратегий, при решении системных проблем тестирования без стандартизации не обойтись. Такой системный подход должен привести к возможности однотипной реализации поставщиками ядер СнК разнообразных DFT-стратегий в форматах, точно и однозначно приемлемых для любых пользователей ядер и IP. Другой немаловажный аспект стандартизации тестирования, на котором мы неоднократно будем останавливаться в дальнейшем, заключается в возможности эффективного повторного применения посредством ТАМ СнК тест-векторов, сгенерированных поставщиками отдельных ядер СнК и приобретаемых как любой другой товар.
Стандарт IEEE 1500 определяет гибкую и масштабируемую (или, если угодно, расширяемую) DFT-архитектуру СнК, которая поддерживает широкий диапазон стратегий тестирования. Для описания связей между пользователями ядер и их поставщиками в IEEE 1500 используется еще один стандарт IEEE 1450.6, известный как язык описания интерфейсов тестирования (STIL) для передачи цифровых тест-векторов, или как язык тестирования ядер (Core Test Language, CTL). Мы подробно остановимся на структуре этого языка в дальнейшем. Упрощенно говоря, архитектура стандарта 1500 состоит из следующих двух составляющих:
– стандартные компоненты обёрток ядер, поддерживающие как комбинационные, так и последовательностные стратегии тестирования;
– требования языка CTL, обеспечивающие интерфейс обёрток с пользователями ядер (IP),
что, в конечном итоге, позволяет эффективно интегрировать ядра и обеспечивать сопряжение тест-векторов на уровне каждого из IP, совершенно независимых от происхождения отдельного IP, с уровнем СнК.
Рассмотрение архитектуры обёртки в понимании стандарта IEEE 1500 (в дальнейшем будем называть ее «обёртка-1500») начнем с краткого описания ее функций. Как указывалось выше, обёртка-1500 представляет собой определенную логическую структуру, предназначенную для обеспечения тестирования IP, добавленного в СнК, посредством ТАМ этого СнК. Обёртка может восприниматься в виде некоего шлюза между ТАМ и каждым из IP, прежде всего для согласования их частотных характеристик. С другой стороны, обёртка-1500 представляет собой изолирующую структуру, как для самого ядра, так и для окружающей его логики. И, разумеется, обёртка-1500 должна поддерживать выполнение разнообразных типов тестов и их последовательностей для встроенного тестирования каждого из IP.
Как можно видеть на рисунке 1, обёртка-1500 состоит из следующих компонент:
– Входной порт обёртки (ВПО), служащий своего рода интерфейсом между одним или несколькими блоками ТАМ СнК и собственно обёрткой-1500 и обеспечивающий поддержку условий широкополосности интерфейса между ними.
– регистр команд обёртки (РКО) (Wrapper Instruction Register, WIR), предназначенный для ввода обёртки-1500 в один или несколько режимов тестирования, а также инициализации тестовой активности собственно ядра;
– регистр граничного cканирования обёртки (РГСО) (Wrapper Boundary Register, WBR), работающий, с одной стороны, как структура, предназначенная для изоляции данного ядра от его окружения в пределах СнК, а с другой стороны — как цепочка сканирования, выполняющая сериализацию иили десериализацию данных тестирования. Посредством РГСО самые разнообразные тестовые данные могут быть транспортированы ко встроенным терминалам тестируемого ядра и от них;
– регистр обхода обёртки (РОО) (Wrapper Bypass Register, WBY), обеспечивающий возможность обхода данного ядра (между последовательным входом обёртки-1500 WSI и последовательным выходом обёртки-1500 WSО) при необходимости такого обхода в рамках выполняемого теста в течение нескольких синхроимпульсов WRCK.
Совершенно точно так же, как и в стандарте JTAG IEEE 1149.1 [5], послужившем прообразом и основой рассматриваемого стандарта IEEE 1500, совокупность регистров любой обёртки-1500 состоит из двух классов:
– регистр команд обёртки (РКО), всегда единственный в данном классе;
– регистры данных обёртки (Wrapper Data Registers, WDR), к которым относятся РГСО и РОО, а также любой другой определяемый разработчиком СнК регистр на уровне обёртки. Cледует подчеркнуть, что регистр РКО к классу WDR, разумеется, не относится.

 

Рис. 1. Архитектура обёртки-1500 ядра или IP СнК  Архитектура обёртки-1500 ядра или IP СнК

Внутренние регистры данных ядра (Core Data Registers, CDR), показанные на рис. 1, в отличие от правил, принятых в стандарте IEEE 1149.1, в состав регистров данных обёртки WDR входить не могут.
Входной порт обёртки-1500 (ВПО) представляет собой совокупность терминалов данных и управления, обеспечивающих интерфейс между блоком ТАМ и собственно обёрткой, а также интерфейс с наружными контактами СнК. Хотя ВПО определен в стандарте 1500 и предназначен для обеспечения как последовательного, так и параллельного доступа к тестируемому ядру, на практике последних лет его применение фокусируется преимущественно на последовательных типах интерфейса, и в данном подцикле статей мы ограничимся рассмотрением лишь последовательного типа доступа. Следует отметить, что одним из преимуществ такого типа доступа является возможность построения структур типа «plug-and-play» из отдельных обёрток-1500 с последовательным доступом, что весьма затруднительно выполнить для параллельных интерфейсов [1].
Регистр команд обёртки-1500 (РКО) управляет началом любой операции тестирования, выполняемой обёрткой, переводя тестируемое ядро в соответствующий режим. Тип инициируемого теста задается и соответствует коду команды, загружаемой в РКО через последовательный интерфейс типа JTAG. Далее этот код, пройдя схему дешифратора, генерирует все требуемые для выполнения данного теста сигналы управления.
Регистр граничного cканирования обёртки-1500 (РГСО), аналогично регистру граничного cканирования JTAG, обеспечивает доступ к терминалам ввода или вывода (но не ввода/вывода!) тестируемого ядра. Этот регистр представляет собой совокупность 1500-совместимых ячеек обёртки, подключенных к каждому однонаправленному терминалу ядра. Важно отметить, что поддержка ячейками РГСО двунаправленных терминалов ядра действительно отсутствует, и в стандарте 1500 это сделано намеренно только для того, чтобы устранить возможные противоречия при повторном использовании одних и тех же ядер в различных СнК. Каждая из ячеек РГСО может, тем не менее, быть изолирована, что будет подробно рассмотрено в продолжении статьи.
Такой подход позволяет блокировать те или иные однонаправленные функции двунаправленного порта в процессе тестирования.
Стандарт IEEE 1500 предполагает применение множества типов ячеек РГСО с тем, чтобы удовлетворить требованиям разнообразных стратегий тестирования. Конфигурация самих РГСО также может быть параллельной или последовательной. Параллельная конфигурация РГСО обычно соответствует параллельной конфигурации обёртки-1500. Стандарт 1500 допускает применение разработчиком СнК любого другого регистра данных на уровне обёртки-1500 наряду с регистром РГСО, но не вместо него.
Заложенная в основу стандарта 1500 идея построения структур типа «plug-and-play» из отдельных обёрток-1500 позволяет выполнять последовательное включение множества «обёрнутых» ядер на одном и том же уровне СнК. Одним из достоинств такого способа включения обёрток-1500 является оптимизация времени тестирования СнК в результате так называемой маршрутизации (scheduling), что также будет подробно рассмотрено ниже. Естественной структурой поддержки маршрутизации является специальный регистр обхода обёртки-1500 (РОО) — регистр, похожий на РО, хорошо нам знакомый по традиционному JTAG, однако несколько более усложненный. Роль РОО, тем не менее, та же — обеспечение укороченного обхода отдельных обёрток-1500 или их групп.
Отличительной особенностью стандарта IEEE 1500 является то, что он вовсе не предназначен для тестирования на уровне чипа, как может показаться на первый взгляд, но на уровне ядра (или IP)! Это, в частности, подразумевает, что интеграция СнК должна происходить после реализации структур стандарта 1500, а поскольку физически тестирование все же выполняется относительно чипа, то успех тестирования СнК в немалой степени зависит от успешной интеграции в нем отдельных ядер в обёртках-1500. Необходимость интеграции внутри чипа «обёрнутых» ядер диктуется в подобных случаях самой бизнес-моделью идеи применения стандарта IEEE 1500 в условиях, когда поставщик ядер (или IP) для СнК и разработчик собственно чипа — это совершенно различные фирмы, взаимодействующие между собой на рынке. Для обеспечения требуемой гибкости такого взаимодействия стандарт 1500 определяет два возможных уровня совмещения ядер (или IP) в СнК: «необёрнутое» и «обёрнутое».
Один из важных практических аспектов разработки обёрток-1500 заключается в том, что поставщики ядер (или IP) не всегда в состоянии предложить решения для любых типов таких обёрток. К примеру, требуется управление изоляцией обёртки-1500 некоего ядра как определенной функции СнК, управляющей самим этим ядром. Успех подобной интеграции может заключаться в точном определении поставщиком IP всех компонент ядра, к которым интегратор СнК сможет подключить необходимые элементы обёртки. Такие интерфейсные определения должны выполняться на языке CTL, рассмотрением которого мы займемся в следующей статье цикла.
В следующем номере журнала будет продолжено краткое введение в основы нового стандарта IEEE 1500 для проектирования тестопригод­ных СнК.

Литература

1. F. da Silva, T. McLaurin, T. Waayers, The Core Test Wrapper Handbook. Rationale and Application of IEEE Std. 1500, Springer 2006.
2. Ервант Зорян, Эрик Ян Мариниссен, Тестирование трехмерных чипов, содержащих межуровневые перемычки, Компоненты и технологии, №№ 2, 3 — 2011 (перевод Галит Городецкой),
www.kit-e.ru/author.php?author_id=1597.
3. 
www.jtag-test.ru/JTAGUniversity/articles/05-PE_1_2008.php.
4. Й. Хигами, Й. Куросе и др., Генерация тестов диагностики неисправностей перехода между логическими состояниями, Производство электроники, № 5 — 2011 (перевод Галит Городецкой).
5. 
www.jtag-test.ru/JTAGUniversity/articles/02-PE_6_2007.php.

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

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