Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Скобцовы Моделирование и тестирование

.pdf
Скачиваний:
97
Добавлен:
03.03.2016
Размер:
3.61 Mб
Скачать

рис.5.19 результат моделирования в алфавите D5 приведен на том же рисунке. Очевидно, линии схемы, получившие значения F0 и F1, являются кандидатами на включение их в пути, проверяемые данной парой наборов на неисправности типа задержка сигнала. Чтобы точно определить прове-

ряемые пути, необходимо найти пути в схеме, начинающиеся на внешних входах и заканчивающиеся на внешних выходах, все линии которых имеют значения F0 или F1 и удовлетворяющие указанным выше условиям.

 

 

Таким образом, пара < X1, X 2 > является неустойчивым тестом для

пути P = (xi1, xi2 ,..., xik ,..., xil ,) (здесь xi1 -

внешний вход, а

xil - внешний

выход схемы) если

при моделировании в алфавите D5

xik = F0 или

x

ik

= F1 для i k l и

 

dxik

|

X = X

= 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dxik 1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отметим, что

проверка

условия

 

dxik

|

= 1

для основных

 

 

 

 

 

 

 

 

 

 

 

 

 

dxik 1

X = X2

 

 

 

 

 

 

 

 

 

 

 

 

вентилей выполняется достаточно просто: для вентилей типа ИЛИ, НЕ-И

входы, не принадлежащие пути P, должны быть равны 1; для вентилей типа ИЛИ, НЕ-ИЛИ – 0. Например, для пути P4 = (x3, x7 , x9 , x11,)

рассматриваемого примера, пара < X1, X 2 > является неустойчивым тестом, так как выполняются вышеприведенные условия. Проверка устойчивости теста также достаточно проста и заключается в следующем.

Можно показать, что для вентилей типа И, НЕ-И при распространении переднего фронта (xik=F1) остальные входы, не принадлежащие пути,

должны иметь значения 1 или F1. Для заднего фронта (xik=F0) остальные входы должны быть равны только 1. Аналогично для вентилей типа ИЛИ,

НЕ-ИЛИ при переднем фронте остальные входы должны иметь значения 0,

а при заднем значения 0 или F0. Например, для пути P1 = (x3, x7 , x9 , x10 )

эти условия, как видно на рис.5.19, выполняются. Достаточность этих условий вытекает из следующих рассуждений. Рассмотрим вентили Gk

201

типа И, НЕ-И. Если на некоторый вход xik приходит изменение сигнала, то из условия

dGk |X =X 2 =1

dX ik

следует, что остальные входы должны иметь значения 1={11} или F1={11 u01}. Если это изменение образует передний фронт xik=F1, то остальные входы вентиля могут принимать любое из значений (1 или F1), так как задержка переднего фронта F1 на этих входах не может компенсировать задержку переднего фронта на входе xik и будет проявляться на выходе вентиля Gk. B случае заднего фронта на входе хik =F0, а остальные входы должны быть равны 1, так как задержка переднего фронта F1 на любом другом входе может привести к компенсации задержки заднего фронта на входе xik. Аналогично можно показать достаточность соответствующих условий и для вентилей типа ИЛИ, НЕ-ИЛИ.

Таким образом, моделирование пары наборов <X1,X2> в алфавите D5

с последующей проверкой достаточных условий позволяет выявить неисправности типа задержка распространения сигналов по путям схемы,

проверяемые данной парой. Более того, функции f 0 , f D' , f D , f 1

позволяют проводить параллельно моделирование множества пар наборов,

что существенно повышает эффективность метода. В этом случае мы имеем аналог метода PPSF для неисправностей типа задержка распространения сигналов. Из всего вышесказанного следует, что универсальная модель функций f 0 , f D' , f D , f 1 , введенная в разделе 3,

позволяет эффективно решать и этот класс задач, весьма важный для современных ДУ.

В заключение отметим, что используемая в некоторых работах

[74,76] шестизначная логика для моделирования рассмотренных не-

исправностей, функционирование в которой вентиля И представлено в

202

табл.5.6, может быть получена из универсальной 16-значной логики следующим образом.

Таблица 5.6

И

0

D

F0

1

D`

F1

 

 

 

 

 

 

 

0

0

0

0

0

0

0

 

 

 

 

 

 

 

D

0

F0

F0

D

F0

F0

 

 

 

 

 

 

 

F0

0

F0

F0

F0

F0

F0

 

 

 

 

 

 

 

1

0

D

F0

1

D`

F1

 

 

 

 

 

 

 

D`

0

F0

F0

D`

D`

D`

 

 

 

 

 

 

 

F1

0

F0

F0

F0

D

F1

 

 

 

 

 

 

 

Ее алфавит D6 образует подмножество B16 : 0 = {00},1 = {11},

F0 = {00 10}, F1 = {11 01}, D = {10}, D' = {01} Но для моделирования в

алфавите D6 согласно табл.5.6 необходимо скорректировать функции f 0 ,

f D' , f D ,

f 1 . Так для вентиля И в функции

f 0

надо добавить один терм

a DbD . Аналогично для вентиля ИЛИ в функции

f 1 необходимо добавить

терм a D'bD' . Таким образом скорректированные функции имеют вид:

1) для

вентиля

И

f 0 = a0 b0 aDbD' aDbD' aDbD ,

f D' = aD'b1 a1bD aD'bD' , f D = aDb1 a1bD aDbD , f 1 = a1b1

2) для

вентиля

ИЛИ

f 0 = a0b0 ,

f D' = aD'b0 a0bD' aD'bD' ,

f D = aDb0 a0bD aDbD ,

f 1 = a1 b1 aD'bD aDbD' aD'bD' .

B [74] показано, что данная логика позволяет моделировать неисправности типа задержка распространения сигналов. Это выполняется путем приписывания входам с передним (задним) фронтом значений D’ (D)

и моделирования в алфавите D6. Пути от внешних входов до внешних выходов схемы, состоящие из линий со значениями D или D' устойчиво

203

проверяются данной парой наборов. Здесь расширение алфавита дает возможность обойтись без проверки дополнительных условий. Отметим,

что скорректированные функции f 0 , f D' , f D , f 1 также дают

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

Вопросы построения проверяющих тестов для этих неисправностей будут рассмотрены в следующей главе.

5.7 Метод обратного просматривания

Рассмотренные методы моделирования неисправностей требуют значительных вычислительных ресурсов. В приближенных методах оценка полноты теста основана на неявном анализе неисправностей по результатам моделирования только исправной схемы. Такой анализ

требует существенно меньше вычислительных ресурсов. В [77,78]

предложен метод моделирования неисправностей, в котором оценка

полноты теста выполняется за два прохода.

При первом проходе выполняется моделирование исправной схемы в направлении от входов к выходам и находятся значения сигналов для всех линий исправной схемы. На этом этапе также иногда используется параллельный метод моделирования неисправностей для ветвей разветвлений (контрольных точек согласно разделу 4.5). При втором проходе, выполняемом в обратном направлении от выходов схемы к ее

входам, определяются

проверяемые

данным тестовым

набором

неисправности. Достигается это путем прослеживания путей

выход

вход, активизированных

в схеме

входным набором. Определение

активизированных путей в комбинационной схеме без разветвлений является простой процедурой, результат которой представлен на рис.5.20.

204

x1=0

 

 

x10

 

 

 

 

 

 

 

 

 

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2=0

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3=1

 

 

 

 

 

&

x15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x11

 

 

1

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

x4=0*

 

 

 

 

 

 

 

 

x17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

x5=0

 

 

 

 

 

 

 

 

 

 

 

 

1*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

x12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x6=0

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

x16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x7=0

 

 

 

 

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

x13

 

 

 

0

 

 

 

 

 

x8=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x9=0 1 x14

Рис.5.20 Обратное просматривание

Здесь сначала производится моделирование исправной схемы, в

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

1. Далее выполняется обратная фаза от внешнего выхода схемы по

направлению к внешним входам. При этом расставляется

символ

*,

показывающий

проверяемость

констант

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

на

соответствующих

линиях схемы.

В результате

процедуры

активизированные пути отмечаются символом *. Очевидно, на данном тестовом наборе проверяются константные неисправности, имеющие противоположное значение на активизированных линиях. Для данного примера проверяются неисправности: х41, х110, х100, х150, х170. При определении активизированных путей часто используется техника критических кубов, которая представлена далее в разделе 6.2.

При выполнении обратного прохода узлы разветвления требуют специальной обработки, что показано на рис.5.21. Основная проблема заключается в расстановке * на узле разветвления, если хотя бы одна из его ветвей имеет *. Например, возникает проблема ставить или не

205

ставить * на узле х2 если ветвь x21=1*. Следует отметить, что константная неисправность на линии х21 не эквивалентна константной неисправности

х12 (узел разветвления). Прямая проверка показывает, что х20 не проверяется из-за так называемого явления компенсации влияния

неисправности по нижнему пути в схеме (х2, х12, х5, х6). Если же подать на вход x3=0, то неисправность x2 0 становится проверяемой. Обработка узлов разветвления может выполняться различными способами.

 

x1=1*

 

 

 

x4

 

 

 

 

 

&

 

 

 

 

 

 

 

 

 

x21=1

*

 

 

1*

 

 

x6

 

 

 

x12

 

 

 

1

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

*

 

 

x3=1

 

&

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

Рис.5.21 Обратное просматривание в схеме с разветвлением

Один из способов решения этой проблемы определение четности инверсий сходящихся разветвлений на этапе препроцессорной обработки

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

Самым надежным способом расстановки * на узлах разветвлений является моделирование на первом этапе наряду с исправной схемой неисправных узлов разветвлений. Полученные данные о проверяемости константных неисправностей узлов разветвления, используются в обратном проходе при расстановке *. Следует отметить, что после прохождения узлов разветвления * расставляются обычным образом до

206

следующего узла. Этот метод моделирования является точным, но требует больших вычислительных ресурсов, чем первый подход.

5.8 Результаты программ моделирования неисправных схем

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

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

различные в исправной и неисправной схемах. Однако, непроверяемые неисправности можно разбить на три группы. Среди них могут быть нетестируемые неисправности вследствие избыточности схемы. То есть для этих неисправностей не может быть построены тестовые последовательности. Кроме этого могут быть так называемые условно проверяемые неисправности, в которых, например, для исправной схемы выход имеет определенное значение (0 или 1), а для неисправной неопределенное значение u. Это может быть, например, вследствие состязания или осцилляции сигналов в схеме при данной неисправности.

5.8.1 Полнота теста

Эффективность тестовой последовательности определяется, прежде всего, полнотой. Для определения полноты теста и условной полноты теста используются соответственно формулы:

P = m 100% , где m - число проверяемых неисправностей;

 

N

P

=

m + mu

100% , где mu - число условно проверяемых

 

u

 

N

 

 

неисправностей, N общее число неисправностей схемы.

207

Очевидно, для более точной оценки следовало бы вместо N

использовать Nt число тестируемых неисправностей. Здесь Nt=N-Nr, где

Nr число нетестируемых (избыточных) неисправностей. К сожалению, Nr

не всегда просто определить. Если до моделирования производилось сокращение списка неисправностей, то, очевидно, каждая из моделируемых неисправностей представляет класс эквивалентных неисправностей и это желательно учитывать при определении полноты теста. Отметим, что поскольку модели неисправностей представляют не все физические дефекты, то тест даже с полнотой P=100% может проверять не все физические дефекты. Кроме полноты теста P важнейшей информацией является список непроверяемых данным тестом неисправностей. Этот список может быть использован, например, для улучшения тестовой последовательности в методах генерации тестов и т.п.

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

5.8.2 Словарь неисправностей

Словарь неисправностей ассоциирует с каждой неисправностью множество тестовых наборов, которые однозначно идентифицируют эту неисправность. В табл. 5.7 показан пример словаря неисправностей для

схемы с одним выходом. Здесь элемент матрицы a jk = 1 в том случае,

если k-ая неисправность проверяется j-ым тестовым набором (на j-ом

наборе реакции исправной схемы и схемы с Fk различны). Например,

если диагностируемая схема выдает неправильную выходную

реакцию только на 4-ом наборе, то она содержит неисправность F7.

Если же схема выдает неправильные выходные реакции на 3-ем и 4-ом

наборах,

то

в ней могут присутствовать неисправности F5 или

F6. Для

их

различения необходима дополнительная информация.

208

Таблица 5.7

Тестовый

 

 

Неисправность

 

 

 

 

 

 

 

 

 

 

 

 

набор

F1

F2

 

F3

F4

F5

 

F6

F7

1

1

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

1

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

1

 

1

 

1

1

 

 

 

 

 

 

 

 

 

 

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

указать место неисправности в схеме). Следует отметить, что диагностирование существенно зависит от используемого оборудования. В

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

что физический дефект, который не моделируется, например,

константными неисправностями, не может быть локализован с помощью тестов и диагностических словарей, ориентированных на константные

неисправности.

209

6. ПОСТРОЕНИЕ ПРОВЕРЯЮЩИХ ТЕСТОВ ДЛЯ КОМБИНАЦИОННЫХ ЛОГИЧЕСКИХ СХЕМ

Генерация проверяющих тестов даже для комбинационных схем цифровых систем является сложной как в математическом, так и в техническом плане проблемой. Ее важнейшими аспектами являются:

1)стоимость генерации тестов;

2)качество генерируемых тестов;

3)стоимость тестирования схемы с помощью построенных вход-

выходных последовательностей.

В теоретическом аспекте показано [79], что генерация тестов относится к классу NP-полных проблем (т.е. переборного типа), для которых не существует алгоритмов решения полиномиальной сложности.

В практическом аспекте сложность ее решения зависит от применяемого алгоритма генерации теста. Эффективность разрабатываемых алгоритмов принято проверять на схемах из различных международных каталогов

(benchmarks): ISCAS85 [80], ISCAS89 [45], ITC99 [81] и др.

Псевдослучайные методы генерации тестов имеют низкую сложность алгоритма, но дают длинные тестовые последовательности и невысокую полноту. Детерминированные методы генерации дают тесты лучшего качества, но имеют большую сложность. Качество построенных тестов определяется, как правило, с помощью программ моделирования неисправных схем, в которых реализуются методы, рассмотренные в предыдущем разделе. Непосредственно процесс тестирования производится на специальном оборудовании тестерах, которые обеспечивают подачу входных тестовых воздействий на схемы, съем выходных сигналов и их сравнение с эталонными значениями.

Важнейшими характеристиками тестеров являются тактовая частота и объем памяти для хранения тестовых воздействий.

Прежде всего, следует различать функциональные и структурные тесты. Алгоритмы построения функциональных тестов генерируют полное

210