Введение
ATPG (аббревиатура от автоматической генерации тестовых последовательностей и автоматического генератора тестовых последовательностей) — это метод или технология автоматизации проектирования электронных схем, используемая для поиска входной (или тестовой) последовательности, которая при подаче на цифровую схему позволяет автоматическому тестовому оборудованию различать корректное поведение схемы и некорректное поведение, вызванное дефектами. Сгенерированные последовательности используются для тестирования полупроводниковых устройств после производства или для определения причины отказа (анализа отказов). Эффективность ATPG измеряется количеством смоделированных дефектов или моделей отказов, которые могут быть обнаружены, и количеством сгенерированных последовательностей. Эти показатели обычно указывают на качество тестирования (более высокое при обнаружении большего количества отказов) и время проведения тестирования (более высокое при большем количестве последовательностей). Эффективность ATPG также является важным фактором, на который влияют используемая модель отказов, тип тестируемой схемы (полное сканирование, синхронная последовательная схема или асинхронная последовательная схема), уровень абстракции, используемый для представления тестируемой схемы (элемент, передача регистров, переключатель), и требуемое качество тестирования.
Основы
Дефект – это ошибка, возникающая в устройстве в процессе производства. Модель отказов – это математическое описание того, как дефект изменяет поведение схемы. Логические значения, наблюдаемые на первичных выходах устройства при подаче тестового вектора на испытываемое устройство (DUT), называются выходным сигналом этого вектора. Выходной сигнал тестового вектора при тестировании безотказного устройства, работающего точно в соответствии с проектом, называется ожидаемым выходным сигналом этого вектора. Отказ считается обнаруженным тестовым вектором, если выходной сигнал этого вектора при тестировании устройства, содержащего только этот отказ, отличается от ожидаемого выходного сигнала. Процесс ATPG для целевого отказа состоит из двух фаз: активация отказа и распространение отказа. Активация отказа устанавливает значение сигнала в точке модели отказа, противоположное значению, генерируемому моделью отказа. Распространение отказа перемещает полученное значение сигнала, или эффект отказа, вперед, обеспечивая чувствительность пути от точки отказа к первичному выходу. ATPG может не найти тест для конкретного отказа как минимум в двух случаях. Во-первых, отказ может быть принципиально необнаружимым, то есть не существует векторов, способных обнаружить этот конкретный отказ. Классическим примером является избыточная схема, разработанная таким образом, что ни один одиночный отказ не приводит к изменению выходного сигнала. В такой схеме любой одиночный отказ будет принципиально необнаружимым. Во-вторых, возможно существование вектора обнаружения, но алгоритм не может его найти. Поскольку задача ATPG является NP-полной (по редукции из задачи булевой выполнимости), будут случаи, когда векторы существуют, но ATPG прекращает поиск, так как на их нахождение потребуется слишком много времени (при условии, что P≠NP, разумеется).
Модели неисправностей
Предположение об одиночной неисправности: в схеме может возникнуть только одна неисправность. Если мы определим k возможных типов неисправностей в нашей модели неисправностей, а схема имеет n сигнальных линий, то, согласно предположению об одиночной неисправности, общее количество одиночных неисправностей равно k × n. Предположение о множественных неисправностях: в схеме может возникнуть несколько неисправностей.
Колапс разлома
Эквивалентные неисправности вызывают одинаковое ошибочное поведение для всех входных сигналов. Любая отдельная неисправность из набора эквивалентных неисправностей может представлять весь набор. В этом случае для схемы с n линиями сигнала требуется значительно меньше тестов на неисправности, чем k × n. Удаление эквивалентных неисправностей из полного набора неисправностей называется схлопыванием неисправностей.
Модель "застрял на неисправности"
В последние несколько десятилетий наиболее распространенной моделью неисправностей, используемой на практике, является модель единичного застревания. В этой модели предполагается, что одна из сигнальных линий в схеме зафиксирована на определенном логическом уровне, независимо от входных сигналов, подаваемых на схему. Таким образом, если схема содержит n сигнальных линий, то потенциально существует 2n возможных застреваний, некоторые из которых могут быть эквивалентны друг другу. Модель застревания является логической моделью неисправностей, поскольку определение неисправности не связано с информацией о задержках. Она также называется моделью постоянной неисправности, поскольку эффект неисправности считается постоянным, в отличие от прерывистых неисправностей, которые возникают (кажущимся) образом случайно, и переходных неисправностей, которые возникают спорадически, возможно, в зависимости от условий эксплуатации (например, температуры, напряжения питания) или от значений данных (высокого или низкого уровня напряжения) на соседних сигнальных линиях. Модель единичного застревания является структурной, поскольку она определяется на основе структурной модели схемы на уровне элементов. Набор тестовых векторов с 100% покрытием застреваний состоит из тестов, предназначенных для обнаружения каждой возможной неисправности застревания в схеме. 100% покрытие застреваний не обязательно гарантирует высокое качество, поскольку часто возникают неисправности других типов (например, короткие замыкания, обрывы, задержки).
Неисправности транзисторов
Эта модель используется для описания неисправностей в логических элементах CMOS. На уровне транзисторов транзистор может оказаться закороченным или разомкнутым. При закорачивании транзистор ведет себя так, как будто он постоянно проводит ток (или находится во включенном состоянии), а при размыкании – как будто он никогда не проводит ток (или находится в выключенном состоянии). Закорачивание приведет к короткому замыканию между VDD и VSS.
Пересекающие разломы
Краткое замыкание между двумя линиями сигнала называется мостовыми неисправностями. Мост к VDD или Vss эквивалентен модели "застрявшего состояния". Традиционно оба сигнала после замыкания моделировались как логическое И или ИЛИ обоих сигналов. Если один драйвер доминирует над другим в ситуации замыкания, доминирующий драйвер навязывает свою логику другому, в таком случае используется модель доминирующей мостовой неисправности. Для более точного отражения реальности CMOS-устройств VLSI используется модель доминирующего И или доминирующего ИЛИ. В последнем случае доминирующий драйвер сохраняет свое значение, а другой драйвер принимает значение И или ИЛИ от себя и доминирующего драйвера.
Комбинированная АТГ
Комбинационный метод ATPG позволяет тестировать отдельные узлы (или триггеры) логической схемы, не принимая во внимание работу схемы в целом. Во время тестирования активируется так называемый режим сканирования, который заставляет все триггеры (FF) соединяться упрощенным образом, фактически обходя их связи, предусмотренные при нормальной работе. Это позволяет использовать относительно простую матрицу тестовых векторов для быстрой проверки всех составляющих триггеров (FF), а также для локализации неисправностей до конкретных триггеров.
Последовательная ATPG
Последовательная схема ATPG ищет последовательность тестовых векторов для обнаружения конкретной неисправности в пространстве всех возможных последовательностей тестовых векторов. Различные стратегии и эвристики были разработаны для поиска более короткой последовательности или ускорения процесса поиска. Однако, согласно опубликованным результатам, ни одна стратегия или эвристика не превосходит другие во всех приложениях или схемах. Это указывает на то, что генератор тестов должен включать в себя всесторонний набор эвристик. Даже простая неисправность типа "застрявший сигнал" требует последовательности векторов для обнаружения в последовательной схеме. Кроме того, из-за наличия элементов памяти, управляемость и наблюдаемость внутренних сигналов в последовательной схеме, как правило, значительно сложнее, чем в комбинационной логической схеме. Эти факторы делают сложность последовательного ATPG намного выше, чем у комбинационного ATPG, где для простого доступа к отдельным узлам добавляется скан-цепь (то есть переключаемая цепь сигналов, используемая только для тестирования). Ввиду высокой сложности последовательного ATPG, он остается сложной задачей для больших, сильно последовательных схем, не использующих схемы обеспечения тестируемости (DFT). Однако эти генераторы тестов, в сочетании с малозатратными методами DFT, такими как частичное сканирование, продемонстрировали определенный успех при тестировании крупных проектов. Для проектов, чувствительных к площади или производительности, решение, основанное на использовании последовательного ATPG и частичного сканирования, предлагает привлекательную альтернативу популярному полному сканированию, которое базируется на комбинационном ATPG.
Нанометровые технологии
Исторически, ATPG была сосредоточена на наборе неисправностей, выведенных из модели неисправностей на уровне элементов схемы. По мере развития тенденций в проектировании к нанометровым технологиям возникают новые проблемы при производстве тестировании. В процессе проверки конструкции инженеры больше не могут игнорировать влияние перекрестных помех и шума питания на надежность и производительность. Современные методы моделирования неисправностей и генерации тестовых векторов уступают место новым моделям и методам, учитывающим временные характеристики при генерации тестов, масштабируемым для больших проектов и способным учитывать экстремальные условия проектирования. Для нанометровых технологий многие текущие проблемы проверки конструкции становятся также проблемами производственного тестирования, поэтому потребуются новые методы моделирования неисправностей и ATPG.
Алгоритмические методы
Испытание очень крупномасштабных интегральных схем с высоким охватом неисправностей является сложной задачей из-за их сложности. Поэтому для решения задач тестирования комбинационных и последовательных схем было разработано множество различных методов ATPG. Ранние алгоритмы генерации тестов, такие как метод булевых разностей и метод буквальных предложений, не были практически реализуемы на компьютере. Алгоритм D был первым практическим алгоритмом генерации тестов с точки зрения требований к памяти. Алгоритм D [предложенный Ротом в 1966 году] ввел D-нотацию, которая продолжает использоваться в большинстве алгоритмов ATPG. Алгоритм D пытается распространить значение застрявшего состояния, обозначаемое D (для SA0) или (для SA1), до первичного выхода. Путь-ориентированное принятие решений (PODEM) является улучшением по сравнению с алгоритмом D. PODEM был разработан в 1981 году Прабху Гоэлем, когда недостатки алгоритма D стали очевидны в связи с появлением новых схемотехнических решений, которые алгоритм D не мог реализовать. Алгоритм FAN (Fan Out Oriented) является улучшением по сравнению с PODEM. Он ограничивает пространство поиска ATPG для сокращения времени вычислений и ускорения обратного отслеживания. Методы, основанные на булевой выполнимости, иногда используются для генерации тестовых векторов. Псевдослучайная генерация тестов – это самый простой метод создания тестов. Он использует генератор псевдослучайных чисел для генерации тестовых векторов и опирается на логическое моделирование для получения хороших результатов и моделирование неисправностей для расчета охвата неисправностей генерируемых векторов. Wavelet Automatic Spectral Pattern Generator (WASP) является улучшением по сравнению со спектральными алгоритмами для последовательного ATPG. Он использует волновые эвристики для сокращения пространства поиска и ускорения компактора. Он был предложен Сурешем Кумаром Деванатаном из Rake Software и Майклом Бушнеллом из Университета Ратгерса. Суреш Кумар Деванатан разработал WASP в рамках своей диссертации в Университете Ратгерса.
Соответствующие конференции
ATPG – это тема, которая освещается на нескольких конференциях в течение года. Основные конференции в США – Международная конференция по тестированию (International Test Conference) и Симпозиум по тестированию интегральных схем (VLSI Test Symposium), а в Европе эта тема рассматривается на DATE и ETS.