Вход |  Регистрация
 
 
Время электроники Воскресенье, 8 декабря
 
 


Это интересно!

Ранее

Методика достижения запланированного качества и надежности. Предупреждающие действия

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

Путешествие по предприятию НПФ «Доломант»

Этот материал задумывался как фоторепортаж о предприятии, которое стояло у истоков контрактного производства в России, а сегодня осуществляет производственную деятельность в «дорогом» регионе — городе Мос­к­ве, имеет собственный дизайн-центр и выпускает продукцию специального назначения. В итоге получилось развернутое интервью, показывающее современное российское производство «как оно есть», этапы его развития, внутренние технологии, проблемы и способы их решения. Материал будет, несомненно, интересен всем, кто занимается организацией производства, или только собирается это делать. Во время путешествия по предприятию нашими респондентами были: зам. Генерального директора по коммерческим вопросам Вадим Лысов, зам. Генерального директора по развитию Андрей Кузнецов, начальник монтажного цеха Валерий Киреев, руководитель участка тестирования и испытаний Андрей Веселов, начальник участка механической обработки Денис Логинов, руководитель выделенного проекта (цех спецкабелей и сборки РЭА) Виктор Подрезов.

Технологии создания чистых зон в микроэлектронике

Реклама

По вопросам размещения рекламы обращайтесь в отдел рекламы

Реклама наших партнеров

 

15 сентября

Генерация тестов диагностики неисправностей перехода между логическими состояниями с применением средств генерации тестов для константных неисправностей

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



Введение

Диагностика неисправностей представляет собой процесс обнаружения возможных неисправностей в микросхеме с высокой степенью интеграции (БИС), который играет важную роль в совершенствовании производственных процессов изготовления БИС, процессов их проектирования и, наконец, в обеспечении высокого процента выхода исправных БИС. В идеальном случае диагностика неисправностей БИС ориентируется на нахождение только одной из целевых неисправностей, так что обнаружение нескольких одновременно существующих неисправностей является, как правило, более сложной задачей. Результат процесса диагностики зависит как от набора диагностических тест-векторов, так и от структуры алгоритма диагностирования. Идеальные диагностические тест-векторы приводят к получению различных выходных реакций для отдельных целевых неисправностей и позволяют привести к указанию на одну из одиночных целевых неисправностей в неисправной БИС, если, конечно, в тестируемой цепи присутствует только одиночная неисправность. Даже если можно получить такие тест-векторы, с помощью которых становятся обнаружимыми те или иные пары одновременно существующих неисправностей, результирующей целевой неисправностью для любых алгоритмов генерации тест-векторов, основанных на модели одиночных константных неисправностей, всегда будет только одна неисправность из этой пары. Понятие обнаружимой пары неисправностей подразумевает получение различных выходных реакций в двух соответствующих неисправных схемах (точное формальное определение будет дано далее в статье). В самом деле, могут существовать пары неисправностей, отдельные неисправности в которых невозможно различить никакими тест-векторами. Распознавание таких неразличимых (или взаимно-маскируемых) пар неисправностей является еще одной важной задачей генерации диагностических тестов.
В современных высокоскоростных БИС временне неисправности, проявляющиеся в виде задержек (delay fault), представляют собой проблему, неизменно возникающую при тестировании и диагностике неисправностей. Существуют несколько моделей описания таких типов неисправностей, основные из которых — это неисправности типа «задержка распространения» (ЗР, path delay fault) и неисправности перехода между логическими состояниями (ПЛС, transition fault). Модель ЗР предполагает наличие таких временнЫх неисправностей, которые приводят к избыточным задержкам распространения сигнала в неисправной схеме. Основной проблемой при наличии ЗР является, как правило, огромное количество путей распространения сигнала. Следует также отметить еще одну трудность, связанную с диагностикой неисправностей такого типа. Даже в том случае, когда при генерации теста для обнаружения неисправности типа ЗР можно указать на ту или иную целевую цепь, в ней всегда найдутся физические вентили, которые также следует принимать во внимание. Поскольку неисправности ПЛС всегда связаны с наличием тех или иных неисправных вентилей, они хорошо подходят для диагностики неисправностей, связанных с задержкой сигналов.
В работах [4, 12] предложено несколько методов разработки диагностических тестов для обнаружения константных неисправностей. Метод, предложенный в [6], основан на принципе ветвей и границ (branch-and-bound). В [11] описывается метод, который хорошо работает в случае большого числа пар неисправностей. Эффективные способы идентификации неразличимых пар неисправностей описаны в [1, 7, 13]. В [2] описывается метод, использующий в чистом виде средства генерации тестов для константных неисправностей, в котором, путем добавления некоторых логических элементов, задача сводится к разработке одного единственного теста для обнаружения константной неисправности. Поскольку логическая часть добавляется только на время генерации тест-векторов, такой подход существенно отличается от общепринятых методов тестопригодного проектирования (ТПП, или DFT).
В некоторых работах описан ряд методов, применяемых для разработки диагностических тестов обнаружения неисправностей ЗР. В [5], например, описан подход к генерации диагностических тест-векторов, предназначенных для обнаружения неисправностей, вызванных задержками в вентилях. В [3] предложен метод обнаружения различных типов неисправностей, включающих короткие замыкания, обрывы и неисправности ПЛС, где задача решается путем логического перебора. В статье [3] приведены результаты только для логических схем типа ISCAS’85, при этом вариант приложения двух последовательных векторов к сканируемым цепям вообще не рассматривался. Как известно, тесты, основанные на так называемой NР-полноте, также являются вполне эффективным диагностическим средством. Однако количество тест-векторов, генерируемых таким образом, обычно слишком велико, и получаемые тесты не позволяют идентифицировать неразличимые неисправности.
В предлагаемой статье рассматривается алгоритм генерации диагностических тест-векторов, предназначенных для обнаружения неисправностей типа ПЛС, в котором используются средства генерации тест-векторов для обнаружения константных неисправностей. Чтобы сделать это возможным, в статье предлагается добавление некоторой логической подсхемы и изменение условий различения пары неисправностей ПЛС на условия обнаружения константных неисправностей. Модификация схемы выполняется в процессе генерации тестов, что заметно отличает предлагаемый подход от общепринятых методов ТПП. В настоящее время высокопроизводительные коммерческие системы генерации тестов (ATPG) широко и с успехом используются в промышленности и лабораториях. Использование средств генерации тестов для обнаружения константных неисправностей в рамках таких ATPG имеет определенные преимущества по сравнению с применением систем, не опирающихся на модель константных неисправностей. Преимущества тест-векторов, получаемых при помощи предлагаемого в данной статье алгоритма, заключаются в том, что целевые пары неисправностей уже не будут квалифицированы как неразличимые, поскольку предлагаемый алгоритм принимает во внимание все возможные условия для различения таких пар неисправностей.
В экспериментах, описанных в данной статье, использовался метод последовательной подачи тест-векторов, так называемый «запуск по захвату» (launch on capture, LOC), представляющий собой стандартный промышленный алгоритм подачи тест-векторов для тестирования сканируемых схем.
Статья организована следующим образом. В разделе 2 приведены определения и новая терминология, а также описаны некоторые специфические условия, связанные с получением диагностических тест-векторов. Предлагаемый алгоритм генерации тестов является предметом рассмотрения в разделе 3. В разделе 4 приведены экспериментальные результаты для некой промышленной схемы и ряда тестовых схем. Раздел 5 содержит заключительные выводы.

Предварительные допущения и условия

В данной статье предполагается наличие такой диагностической среды, в которой все основные выходы и сканируемые триггеры наблюдаемы при прогоне любого из тест-векторов. Для различения двух неисправностей в такой среде введем следующие определения:
Определение. Предположим, что f1 и f2  — это две неисправности, обнаруженные в процессе диагностирования. Если после подачи тест-векторов v1 −v2 удовлетворяется хотя бы одно из следующих условий, то неисправности f1 и f2 называются различимыми посредством тест-векторов v1−v2.
D1: Обнаружена неисправность f1, а неисправность f2 не обнаружена.
D2: Обнаружена неисправность f2, а неисправность f1 не обнаружена.
D3: Обнаружены обе неисправности f1 и f2, однако существует по крайней мере один выход или один физический триггер, в цепи которого обнаружен хотя бы один признак неисправности.
Для обнаружения неисправности типа ПЛС необходимо подать два последовательных тест-вектора. Рассмотрим неисправность ПЛС f на линии k. Состояния двух последовательных тест-векторов v1−v2 , предназначенных для обнаружения f, выглядят следующим образом:
Состояние первого вектора: вектор v1 устанавливает «0» («1») на линии k, если f проявляется как неверный переход с «лог.0» на «лог.1» (или переход с «лог.1» на «лог.0»), указывающий на неисправность типа ПЛС.
Состояние второго вектора: вектор v2 может обнаружить константный «0» («1») на линии k, если f проявляется как переход с «лог.0» на «лог.1» (или переход с «лог.1» на «лог.0»).
Чтобы удовлетворить условиям D1 или D2, необходимо сгенерировать такой тест-вектор, который наверняка не различает одну из неисправностей в целевой паре неисправностей. Условия для такого «неразличения» неисправности типа ПЛС даны ниже. Если пара тест-векторов v1−v2 удовлетворяет одному из следующих условий, неисправность f будет неразличимой для векторов v1−v2, где f проявляется как w→ /w (w Є {0,1}) , т.е. неисправность типа ПЛС в линии k.
U1: Значение /w установлено на линии k тест-вектором v1 (1-й такт).
U2: Значение w установлено на линии k тест-вектором v2 (2-й такт).
U3: Константная неисправность w на линии k не обнаружена с помощью тест-вектора v2 (2-й такт).
Очевидно, что U2 представляет собой необходимое условие для существования U3, поэтому его можно не брать в расчет. Однако поскольку реализовать генерацию тестов для U2 проще, чем для U3, предложенный метод учитывает все три условия.
Для оценки эффективности сгенерированных тест-векторов используется величина диагностического разрешения, которую будем определять в соответствии с формулой:

 

(1)

Здесь Nпар, Nразлич и Nнеразлич означают cоответственно количество целевых пар неисправностей, количество различимых пар неисправностей и количество пар неисправностей, идентифицированных как неразличимые. Целью генерации диагностических тестов является достижение 100% диагностического разрешения.

Модификация схемы

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

 

 

Рис. 1. Пример модификации схемы: а) сканируемая схема б) Двухтактная схема


Условия, описанные в разделе 2, поясним ниже на следующем примере. На рисунке 2 показан пример исходной схемы, где x1, y1 и x2, y2 — соответствующие триггеры. На рисунке 3 показана модифицированная двухтактная версия этой же схемы.

 

Рис. 2. Пример исходной сканируемой схемы

 

Рис. 3. Двухтактная версия исходной сканируемой схемы

Рассмотрим неисправность типа ПЛС в виде перехода с «лог.0» на «лог.1» на s2 (выход вентиля g2). Условием для обнаружения такой неисправности является установка «0» в первом такте и обнаружение константного «0» на s2 во втором такте. Условия «необнаружения» такой неисправности (U1, U2 и U3, описанные в разделе 2) заключаются в следующем. При наличии условия U1 на s2 на первом такте устанавливается значение «1». Например, тест-вектор, в котором x2 = 0, в первом такте неисправность не обнаруживает. При наличии условия U2 на s2 на втором такте устанавливается значение «0». К примеру, вектор, в котором x1 = 0 на первом такте, и вектор, в котором x4 = 1 на втором такте, не обнаруживают неисправность, поскольку они устанавливают «0» на s2 на втором такте. При наличии условия U3 константная неисправность «0» на s2 не обнаруживается. Например, вектор, в котором значение x3 = 0, x4 = 0, x5 = 1 на втором такте приводит к установке постоянного «0» на s2, но не обнаруживает его, таким образом вектор не обнаруживает неисправность ПЛС.
Для генерации тест-векторов, способных различить пару неисправностей, используются как двухтактные, так и четырехтактные версии исходной сканируемой схемы. На рисунке 4 приведена четырехтактная версии исходной схемы, в которой модули C1, C2, C3 и С4 являются копиями комбинаторной части исходной схемы. C1−C2 и C3−C4 представляют собой соответствующие аппликации режима LOC, и в каждую из них добавлена некая логическая часть для обеспечения условий обнаружения (или необнаружения) неисправности типа ПЛС. Условия обнаружения пары неисправностей типа ПЛС изменены на условия обнаружения константной неисправности. C1 и C2 содержат условия обнаружения одной неисправности ПЛС, а C3 и C4 — условия для необнаружения другой неисправности ПЛС, что позволяет сгенерированным тест-векторам различать неисправности типа ПЛС.

 

Рис. 4. Пример четырехтактной версии исходной схемы

Алгоритм генерации тестов

Общие положения

Предлагаемый алгоритм генерации диагностического теста состоит из трех этапов, которые мы рассмотрим последовательно.
Исходные данные: Fp — набор целевых пар неисправностей;
Этап 1: Генерация тест-векторов, удовлетворяющих условию D1 или D2 с U1;
Этап 2: Генерация тест-векторов, удовлетворяющих условию D1 или D2 с U2;
Этап 3: Генерация тест-векторов, удовлетворяющих условию D1 или D2 с U3, или D3;
На каждом из этапов генерации теста те пары неисправностей, для которых успешно сгенерирована пара тест-векторов, удаляются из набора Fp и не повторяются на следующих этапах. Если на протяжении всех этапов для пары неисправностей не было сгенерировано ни одного тест-вектора, то эта пара идентифицируется как неразличимая. Такое заключение делается исходя из того, что все условия для различения пар неисправностей, описаны в условиях D1, D2 и D3.
В последующих главах описывается каждый из этапов упомянутого алгоритма. В качестве примера использована пара неисправностей f1 и f2. Мы будем полагать, что f1 и f2 проявляются в виде w1→/w1 и w2→ /w2 (w1, w2 Є {0,1}) переходов в линиях k1 и k2 соответственно.

Генерация тест-векторов на этапе 1

На этом этапе происходит генерация тест-векторов, которые для заданной пары неисправностей одну из них могут обнаружить, а вторую — не могут. В качестве условия для невозможности обнаружения неисправности рассмотрим условие U1. Условия, позволяющие обнаружение неисправности f1 и необнаружение f2, описаны ниже.
P1-1: значение w1 установлено на линии k1 с помощью вектора v1 (1-й такт).
P1-2: постоянное значение w1 на линии k1 обнаружено с помощью вектора v2 (2-й такт).
P1-3: значение /w2 устанавлено на линии k2 с помощью вектора v1 (1-й такт).
P1-1 и P1-2 являются условиями обнаружения неисправности f1, а P1-3 — условием невозможности обнаружения неисправности f2. Те тест-векторы, которые удовлетворяют вышеуказанным условиям, безусловно могут обнаружить неисправность f1, но не f2. Для генерации таких тест-векторов используется двухтактная версия исходной схемы, в которую добавлены некоторые дополнительные элементы логики, при этом константная неисправность назначается целевой. Например, когда w1 = 0 и w2 = 0, добавляется один вентиль ИЛИ и один инвертор (обозначены жирными линиями на рисунке 5). Линия k1 на втором такте рассекается, и в разрыв вставляется дополнительный вентиль ИЛИ. На входы вентиля ИЛИ поданы k1 и инверсия k2 на первом такте, а также вход k1 на втором такте. На втором такте происходит генерация тест-векторов, предназначенных для обнаружения постоянного «0» на k1 (линия помечена на рисунке крестиком). Если тест-векторы успешно сгенерированы, то они удовлетворяют трем вышеописанным условиям, и потому могут различить неисправности f1 и f2.

 

Рис. 5. Пример преобразований схемы на этапе


По завершении генерации тест-векторов для обнаружения неисправностей f1 и f2 они меняются ролями и весь процесс повторяется снова. Для других случаев w1 и w2 цепь преобразуется аналогичным образом.
Объясним изменения, вносимые в схему в процессе генерации тестов, на примере схемы, приведенной на рисунке 2. Предположим, что неисправности f1 и f2 проявляются в виде перехода с «лог.0» на «лог.1» на линиях s1 и s2, соответственно. Схема, приведенная на рисунке 6, используется для генерации тест-векторов, жирные линии на рисунке использованы для того, чтобы различить f1 и f2. В процессе генерации теста на втором такте в качестве целевой назначается неисправность типа «константный 0» на s1. В этом случае тест-векторы для обнаружения целевой константной неисправности можно сгенерировать без труда. Тест-вектор, содержащий набор x1 = 1, x2 = 0 и x3 = 1 на первом такте, и тест-вектор, содержащий набор x3 = 0, x4 = 1. могут обнаружить эту неисправность, как показано на рисунке 6. Поскольку тест-векторы, удовлетворяют условию D1 с U1, они могут обнаружить неисправность f1, но не f2, и, таким образом, различают пару неисправностей f1 и f2.

 

Рис. 6. Пример генерации тест-векторов на этапе 1

Генерация тест-векторов на этапе 2

На втором этапе, так же как и на первом, выполняется генерация тест-векторов, предназначенных для обнаружения одной из неисправностей и необнаружения другой. Для этого необходимо, чтобы выполнялось условие U2. Условия обнаружения неисправности f1 и необнаружения неисправности f2 описаны ниже.
P2-1: значение w1 установлено на линии k1 после подачи вектора v1 (1-й такт).
P2-2: постоянное значение w1 на линии k1 обнаруживается при подаче вектора v2 (2-й такт).
P2-3: значение w2 установлено на линии k2 после подачи вектора v2 (2-й такт).
P2-1 и P2-2 представляют собой условия обнаружения неисправности f1, а P2-3 — условие необнаружения неисправности f2. На этом этапе используется четырехтактная версия исходной схемы. Такая версия схемы применяется здесь вместо двухтактной для того, чтобы избежать появления обратных связей, которые могут образоваться в двухтактной версии после добавления определенных логических элементов. Рассмотрим пример, когда w1 = 1 и w2 = 0. В этом случае в схему добавляется один вентиль И, как показано на рисунке 7.

 

Рис. 7. Пример преобразований схемы на этапе 2

Линия k1 на втором такте разрывается и в разрыв вставляется дополнительный вентиль И. Этот вентиль имеет на входе сигнал k1 на первом такте, и k1 и инверсный сигнал k2 — на втором такте. Константная неисправность типа «1» на линии k1 на втором такте является целевой при генерации диагностического теста и помечена на рисунке крестиком. По завершении генерации тест-векторов они удовлетворяют трем описанным выше условиям и обуславливают различение пары неисправностей f1 и f2.
По завершении генерации тест-векторов для обнаружения неисправностей f1 и f2 они меняются ролями и весь процесс повторяется снова. Очевидно, что четырехтактная версия исходной схемы, приведенная на рисунке 7, слишком громоздка, поэтому модуль C3 можно удалить. На рисунке 8 показана усеченная схема без модуля C3.

 

Рис. 8. Усеченная схема на этапе 2


Используя схему рисунка 2 в качестве примера, объясним преобразования, выполняемые в схеме, и процесс генерации тест-векторов. Предположим, что неисправности f1 и f2 проявляются в виде перехода с «лог.1» на «лог.0» на линиях s1 и s2 соответственно. Для генерации тест-вектора используется схема, приведенная на рисунке 9. Целью генерации теста являются установка «1» на s1 и s2 на первом и втором тактах соответственно, и обнаружение неисправности типа «константная 1» на s1 на втором такте (на рисунке они показаны жирными линиями). Целевой неисправностью при генерации назначается «константная 1» на s2 (помечена крестиком). Тест-вектор с набором x3 = 0 и x5= 1 на первом такте и вектор с набором x3 = 1 и x4 = 1 на втором такте могут обнаружить целевую константную неисправность и, таким образом, различить неисправности f1 и f2.

 

Рис. 9. Пример генерации тест-вектора на этапе 2

Генерация тест-векторов на этапе 3

На первом и втором этапах те тест-векторы, которые удовлетворяют условиям D3 и U3, не генерируются. Для того, чтобы обнаружить неисправность f1 и не обнаружить f2 при соблюдении условия U3, тест-вектор должен удовлетворять перечисленным ниже условиям.
P3a-1: значение w1 установлено на линии k1 посредством вектора v1 (1-й такт).
P3a-2: константная неисправность «постоянный w1» на линии k1 обнаруживается вектором v2 (2-й такт).
P3a-3: константная неисправность «постоянный w2» на линии k2 не распознаётся вектором v2 (2-й такт).
P3a-1 и P3a-2 являются условиями обнаружения неисправности f1, а P3a-3 является условием необнаружения неисправности f2. Чтобы различить f1 и f2 при соблюдении условия D3, необходимо сгенерировать такие тест-векторы, которые удовлетворяли бы следующим условиям:
P3b-1: значение w1 установлено на линии k1 посредством вектора v1 (1-й такт).
P3b-2: неисправность типа «постоянный w1» на линии k1 стимулируется посредством вектора v2 (2-й такт).
P3b-3: значение w2 установлено на линии k2 посредством вектора v1 (1-й такт).
P3b-4: неисправность типа «постоянный w2» на линии k2 стимулируется посредством вектора v2 (2-й такт).
P3b-5: существует по крайней мере один основной выход или триггер, по которому распространяется проявление хотя бы одной неисправности при приложении вектора v2 (2-й такт).
P3b-1 и P3b-2 являются условиями, стимулирующими проявление неисправности f1, а P3b-3 и P3b-4 — стимулируют проявление неисправности f2. P3b-5 является условием, при котором только одно проявление неисправности распространяется к основному выходу или на некоторый триггер.
На этом этапе используется четырехтактная версия исходной схемы, в которой к основным выходам и триггерам добавлены вентили «исключающее ИЛИ» (XOR), как показано на рисунке 10. Входы каждого вентиля соединены с основными выходами и соответствующими триггерами модулей C2 и C4. В модулях C1 и C2 содержатся условия для обнаружения неисправности f1, а в модулях C3 и С4 — для обнаружения f2.

 

Рис. 10. Пример схемы с вентилями «исключающее ИЛИ» на выходе


В таблице 1 приведены значения на выходе вентиля «исключающее ИЛИ» для двух различных входных сигналов x1 и x2. Значения D и /D означают стандартные логические символы (старый добрый D-алгоритм), обозначающие способ проявления неисправности в процессе генерации тест-векторов для обнаружения константных неисправностей. Если на соответствующие основные выходы модулей C2 и C4 распространяются D или /D, то на выходе вентиля «исключающее ИЛИ» появляется «исправное» значение «0» или «1». Поэтому проявление D или /D на выходе вентиля «исключающее ИЛИ» означает, что D или /D распространяются только по одному основному выходу или одному триггеру в одном из модулей C2 или C4. В этом случае удовлетворяются условия D3 или U3.Таблица 1. Значения на выходах вентиля «исключающее ИЛИ»

Таблица 1. Значения на выходах вентиля «исключающее ИЛИ»

х1

0

1

D

¯

D

х2

D

¯

D

D

¯

D

D

¯

D

D

¯

D

Выход

D

¯

D

¯

D

D

0

1

1

0


Рассмотрим пример, в котором w1=0 и w2=0. В этом случае в цепь добавляются вентили, выделенные на рисунке 11 жирными линиями. Линии k1 и k2 на втором такте рассекаются и в разрыв вставляется вентиль И. Этот вентиль получает на входах инверсию сигнала k1 и сигнал k2 на первом такте, а на втором такте — сигналы k1 и k2. Целевой неисправностью при генерации тест-вектора назначается «константный 0» на выходе вентиля И.

 

Рис. 11. Пример преобразований схемы на этапе

Тест-векторы, обнаруживающие ту или иную константную неисправность, также обнаруживают неисправности перехода f1 и f2. Если тест-векторы, обнаруживающие целевую константную неисправность, успешно сгенерированы, то они удовлетворяют следующим условиям:
– значение «0» установлено на линии k1 посредством вектора v1 (1-й такт);
– значение «1» установлено на линии k1 посредством вектора v2 (2-й такт);
– значение «0» установлено на линии k2 посредством вектора v1 (1-й такт);
– значение «1» установлено на линии k2 посредством вектора v2 (2-й такт);
– существует по крайней мере один основной выход или триггер, по которому распространяется D или /D на выход одного из модулей C2 или C4.
Если тест-векторы успешно сгенерированы, это означает, что:
– ни один из признаков неисправности в модулях C2 и C4 не распространяется на выходы или триггеры.
– проявления неисправностей в модулях C2 и C4 распространяются на входы соответствующего вентиля «исключающее ИЛИ» и исчезают.
В таких ситуациях неисправности f1 и f2 , разумеется, неразличимы.
Заметим, что на данном этапе нет необходимости в обмене ролями между f1 и f2. Это объясняется тем, что в схеме на рисунке 11 учтена возможность взаимообмена между f1 и f2 в зависимости от условий P3a-1, Р3а-2 и P3a-3. Два набора условий (P3b-1 + P3b-2, и P3b-3 + P3b-4) также симметрично сформулированы по отношению к неисправностям f1 и f2. Схему на рисунке 11 можно сократить, убрав избыточную комбинационную часть C3, как показано на рисунке 12. Условие установки «0» на линии k2 содержится в модуле C1.

 

Рис. 12. Усеченная схема, используемая на третьем этапе

Результаты экспериментов

В экспериментах использовались ИС, разработанные организацией STARC (Semiconductor Technology Academic Research Center), основные параметры которых (число входов PI, выходов PO, триггеров FF и вентилей) приведены в таблице 2. Таблица 2. Основные параметры ИС STARC

Таблица 2. Основные параметры ИС STARC

Число входов
исходной ИС

Число выходов
исходной ИС

Число триггеров

Число вентилей

8

32

492

8355

Программа генерации тест-векторов для обнаружения константных неисправностей, которая использовалась в эксперименте, описана в [10]. Было также сделано допущение, что все сигналы на входах исходной ИС не изменяются между первым и вторым тактами (аналогично допущениям в работе [9]).
На рисунке 13 представлена последовательность действий во время первого эксперимента. В нем использовались три различных коммерческих диагностических средства (назовем их для определенности инструментами A, B и C) для получения списка предполагаемых неисправностей, которые остаются неразличимыми при использовании указанных выше инструментов. По результатам предварительной диагностики был составлен список пар неисправностей таким образом, чтобы в него вошли все возможные пары предполагаемых неразличимых неисправностей.

 

Рис. 13. Последовательность выполнения шагов эксперимента

Эти пары неисправностей были приняты в качестве целевых в предложенном алгоритме генерации диагностического теста. Было получено 15 подобных случаев по результатам использования инструмента A, 25 случаев — по результатам использования инструмента В, и 7 случаев — по результатам использования инструмента С.
В таблицах 3, 4 и 5 содержатся результаты генерации диагностических тестов с использованием списков неисправностей, сгенерированных инструментами A, B и C соответственно. В этих таблицах в колонках слева направо приведены следующие данные: идентификационный номер каждого теста, количество целевых пар неисправностей, количество пар, различимых данным инструментом, количество пар, неразличимых данным инструментом, количество сгенерированных пар тест-векторов. В самой нижней строке показано среднее значение каждого показателя.

Таблица 3. Результаты диагностики ИС STARC, полученные с помощью инструмента А

Номер теста

Число целевых пн (пар неисправностей)

Число различимых пн

Число неразличимых пн

Число тест-векторов

1

1

1

0

1

2

3

3

0

3

3

15

15

0

8

4

1

1

0

1

5

1

1

0

1

6

1

1

0

1

7

15

15

0

10

8

1

0

1

0

9

1

1

0

1

10

1

1

0

1

11

1

1

0

1

12

3

2

1

2

13

3

3

0

2

14

1

1

0

1

15

6

6

0

3

Среднее значение

3,60

3,47

0,13

2,40

Таблица 4. Результаты диагностики схемы STARC, полученные с помощью инструмента В

Номер теста

Число целевых пн (пар неисправностей)

Число различимых пн

Число неразличимых пн

Число тест-векторов

1

21

21

0

10

2

253

253

0

143

3

1

1

0

1

4

1

1

0

1

5

6

4

2

2

6

21

21

0

10

7

21

21

0

10

8

595

595

0

229

9

325

325

0

183

10

378

378

0

213

11

435

435

0

232

12

1

1

0

1

13

1

1

0

1

14

120

119

1

63

15

1

1

0

1

16

3

3

0

3

17

325

325

0

164

18

6

4

2

2

19

6

4

2

2

20

6

4

2

2

21

6

6

0

4

22

1

0

1

0

23

66

65

1

39

24

3

3

0

2

25

6

6

0

4

Среднее значение

104,32

103,88

0,44

52,88

 

Таблица 5. Результаты диагностики схемы STARC, полученные с помощью инструмента C

Номер теста

Число целевых пн (пар неисправностей)

Число различимых пн

Число неразличимых пн

Число тест-векторов

1

1

1

0

1

2

1

1

0

1

3

3

3

0

3

4

1

1

0

1

5

1

1

0

1

6

1

0

1

0

7

3

2

1

2

Среднее значение

1,57

1,29

0,29

1,29

 

Экспериментальные результаты показывают, что предлагаемый в данной статье алгоритм позволил получить тест-векторы, способные различить такие пары неисправностей, различить которые оказалось не под силу коммерческим инструментам, и которые были этими инструментами идентифицированы как неразличимые. Диагностическое разрешение этого алгоритма действительно равно 100%.
Ниже приведены результаты экспериментов для схем набора ISCAS. На рисунке 14 представлена последовательность экспериментов. Вначале были произвольно выбраны N неисправностей типа ПЛС, затем запускались тест-векторы, сгенерированные для обнаружения таких неисправностей, используя метод, аналогичный предложенному в [8]. Для целей эксперимента число N было установлено равным 1000. Среди пар, состоящих из выбранных неисправностей, были выделены такие пары неисправностей, которые оказались неразличимыми для приложенных тест-векторов. Эти пары неисправностей были назначены целевыми при генерации диагностических тестов
В таблице 6 приведены результаты экспериментов. В колонках слева направо приведены следующие данные: номер ИС, количество целевых пар неисправностей, количество пар, различимых с помощью алгоритма, количество неразличимых пар, идентифицированных с помощью алгоритма, количество пар тест-векторов в начале эксперимента, количество пар тест-векторов, сгенерированных с помощью алгоритма, и время работы центрального процессора (ЦП) в секундах.

Таблица 6. Сравнительные данные для набора ИС ISCAS’89

Схема

Число пар неисправностей

Число сгенерированных тест-векторов

Центральный
процессор

целевых

различимых

неразличимых

Начальных

сгенерированных

s1488

6464

878

5586

183

53

693

s1494

4875

484

4391

172

35

544

S5378

7152

928

6224

389

552

2916

S9234

8010

861

7149

783

542

3094

S13207

5366

700

4666

924

463

4997

S15850

15059

348

14711

870

214

18014

S35932

9874

140

9734

211

48

30045

S38417

281

171

110

1616

163

891

S38584

14197

1316

12881

2120

583

174649

Экспериментальные результаты показали, что все неразличимые ранее пары неисправностей были идентифицированы, и что для каждой целевой пары неисправностей были сгенерированы соответствующие тест-векторы, за исключением неразличимых пар. С помощью данного алгоритма для каждого типа ИС была достигнута 100%-е диагностическое разрешение.
По поводу значительного времени ЦП можно заметить, что данный алгоритм не оптимизирован по затратам процессорного времени. Значительное время обработки обусловлено большими затратами времени при идентификации неразличимых неисправностей. Этот показатель может быть сокращен в будущем за счет введения некоторых методов, предложенных для выявления избыточных неисправностей.

 

Рис. 14. Последовательность экспериментов для ИС ISCAS’89

Заключение

В статье предложен алгоритм генерации диагностических тестов для обнаружения неисправностей типа ПЛС. Алгоритм позволяет генерировать тест-векторы, при помощи которых можно различить заданные пары неисправностей, а также идентифицировать неразличимые ранее пары неисправностей. Для запуска тест-векторов использовался метод последовательной подачи тест-векторов, так называемый «запуск по захвату» (LOC). Предложенный алгоритм заменяет условия для распознавания пары неисправностей на условия обнаружения константных неисправностей и использует средства генерации тест-векторов, предназначенные для обнаружения константных неисправностей. Такой подход выглядит более экономичным, чем реализация каких-то новых алгоритмов, не опирающихся на давно и хорошо известные средства генерации тест-векторов для обнаружения константных неисправностей, поскольку такие быстрые и эффективные инструменты широко распространены во многих лабораториях и в промышленности.
В экспериментах использовалась ИС, разработанная организацией STARC, а также данные о парах неисправностей, полученные при помощи известных коммерческих средств ATPG. Результаты экспериментов показали, что при помощи предложенного алгоритма можно успешно генерировать тест-векторы, различающие пары таких неисправностей, которые неразличимы при помощи других инструментов и идентифицируются ими как неразличимые. В результате в каждом случае было достигнуто 100%-е диагностическое разрешение.
Кроме того, в статье приведены результаты экспериментов для набора ИС ISCAS. В этих экспериментах тест-векторы, предназначенные для обнаружения неисправностей типа ПЛС, были вначале использованы для выделения целевых пар неисправностей. Предложенный алгоритм генерации тест-векторов успешно различил все пары неисправностей, за исключением тех, которые идентифицировал как неразличимые. Для каждой цепи было достигнуто 100%-е диагностическое разрешение.
В данном исследовании не рассматривался количественный аспект генерации тест-векторов. Продолжение работы будет посвящено исследованию минимизации количества тест-векторов. Кроме того, планируется разработка такого алгоритма генерации тест-векторов, который будет учитывать распространение проявлений неисправностей таким образом, чтобы точно диагностировать наличие небольших задержек сигналов.

Литература

1. M. Amyeen, W. Fuchs, I. Pomeranz, and V. Boppana, “Implication and Evaluation Techniques for Proving Fault Equivalence,” in Proc. VLSI Test Symp., pp. 201—207, 1999.
2. D. H. Baik, Y. C. Kim, K. K. Saluja, and V. D. Agrawal, “Exclusive Test and its Applications to Fault Diagnosis,” Proc. Int. Conf. on VLSI Design, pp. 143—148, January 2003.
3. N. K. Bhatti and R. D. Blanton, “Diagnostic Test Generation for Arbitrary Faults,” in Proc. Int. Test Conf., 2006.
4. P. Camurati, D. Medina, P. Prinetto, and M. S. Reorda, “A diagnostic test pattern generation algorithm,” in Proc. Int. Test Conf., pp. 52—58, 1990.
5. P. Girard, C. kandrault, S. Pravossoudovitch, and B. Rodriguez, “A diagnostic atpg for delay faults based on genetic algorithms,” in Proc. Int. Test Conf., pp. 286—293, 1996.
6. T. Gruning, U. Mahlstedt, and H. Koopmeiners, “DIATEST:A Fast Diagnostic Test Pattern Generator for Combnational Circuits,” in Dig. Int. Conf. on Computer-Aided Design, pp. 194—197, 1991.
7. I. Hartanto, V. Boppana, andW. Fuchs, “Diagnostic fault equivalence identification using redundancy information and structural analysis,” in Proc. Int. Test Conf., pp. 294—302, 1996.
8. Y. Higami, K. K. Saluja, H. Takahashi, S. Kobayashi, and Y. Takamatsu, “Increasing Defect Coverage by Generating Test Vectors for Stuck-open Faults,” in Proc. Asian Test Symp., pp. 97—102, 2008.
9. S. Kajihara, S. Morishima, A. Takuma, X. Wen, T. Maeda, S. Hamada, and Y. Sato, “A Framework of High-Quality Transition Fault ATPG for Scan Circuits,” in Proc. Int. Test Conf., Paper 2.1, 2006.
10. S. Kajihara, I. Pomeranz, K. Kinoshita, and S. M. Reddy, “Cost Effective Generation of Minimal Test Sets for Stuck-at Faults in Combinational kogic Circuits,” IEEE Trans. on Computer-Aided Design, vol. 14, pp. 1496—1504, 1995.
11. I. Pomeranz and S. M. Reddy, “Diagnostic Test Generation Based on subsets of Faults,” in Proc. European Test Symposium,
pp. 151—158, 2007.
12. J. Savir and J. P. Roth, “Testing for, and Distinguishing between Failures,” in Proc. Int. Symp. on Fault-Tolerant Comp., pp. 165—172, 1982.
13. X. Yu, M. E. Amyeen, S. Venkataraman, R. Guo, and I. Pomeranz, “Concurrent Execution of Diagnostic Fault Simulation and Equivalence  Identification During Diagnostic Test Generation,” in Proc. VLSI Test Symp.,
pp. 351—356, 2003.

Перевод c английского:
Галит Городецкая (JTAG.TECT)

 

 

 



Вы можете скачать эту статью в формате pdf здесь.
Оцените материал:

Автор: Йошинобу Хигами (Yoshinobu Higami), Йосуке Куросе (Yosuke Kurose), Сатоши Оно (Satoshi Ohno), Хиронори Ямаока (Hironori Yamaoka), Хироши Такахаши (Hiroshi Takahashi), Йошихиро Шимицу (Yoshihiro Shimizu), Такаши Айкио (Takashi Aikyo), Юзо Такамацу (Yuzo Takamatsu); Высшая школа науки и техники, университет Эхимэ, Япония; Академический исследовательский центр полупроводниковых технологий, Япония



Комментарии

0 / 0
0 / 0

Прокомментировать





 

Горячие темы

 
 




Rambler's Top100
Руководителям  |  Разработчикам  |  Производителям  |  Снабженцам
© 2007 - 2019 Издательский дом Электроника
Использование любых бесплатных материалов разрешено, при условии наличия ссылки на сайт «Время электроники».
Создание сайтаFractalla Design | Сделано на CMS DJEM ®
Контакты