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

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

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

Фаза1 имеет низкие вычислительные затраты, не ориентирована на конкретную неисправность)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Непроверямые

 

 

 

 

 

 

Тестовый

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

 

 

 

 

 

 

набор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фаза2 ориентирована на конкретную неисправность

Рис.6.18 Структура системы генерации тестов

Псевдокод укрупненного алгоритма генерации тестов первого этапа представлен на рис.6.19.

Первая фаза(схема)

{

While(полнота или время не достигнуты)

{

Генерация теста(t);

Моделирование неисправностей(t);

p=число вновь проверяемых неисправностей(t);

if(p приемлемо) then включение t в тест;

}

}

Рис.6.19 Первая фаза генерации тестов

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

261

непроверенных неисправностей, тесты для которых далее генерируются во

второй фазе.

На рис.6.20 представлен псевдокод второй фазы генерации теста.

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

Вторая фаза(схема, множество неисправностей)

{

while(есть необработанные неисправности)

{

выбор новой неисправности f;

генерация теста t для f;

if(тест для f построен) then

{

включение t в тест;

моделирование неисправностей на наборе t;

исключение неисправностей, проверяемых t;

}

}

}

Рис.6.20 Вторая фаза генерации теста

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

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

найти и исключить из дальнейшей обработки избыточные неисправности.

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

расположенные как можно ближе к внешним входам схемы. Это

262

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

6.13 Сжатие тестов

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

Часто выполняется моделирование неисправностей входных наборов построенного теста в порядке, обратном их генерации. То есть тесты,

построенные во второй фазе, моделируются первыми, а затем обрабатываются тесты, полученные в первой фазе. При этом контролируется полнота тестов. Когда полнота достигает 100% (или заданной величины), оставшиеся входные наборы из первой фазы исключаются из теста. Таким образом, обычно удается сократить тестовую последовательность. Обуславливается это тем, входные наборы,

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

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

(определенных) значений для любых внешних входов. Два совместимых входных тестових набора ti и tj могут быть объединены в один tij = ti t j

путем выполнения операции пересечения. При этом множество проверяемых набором tij неисправностей является объединением множеств неисправностей, проверяемых по отдельности наборами ti и tj. Таким

263

образом, наборы ti и tj в тесте могут быть заменены tij. Этот метод можно использовать итеративно для сокращения теста. Такой процесс называется статическим сокращением тестов. В общем случае результат статического сокращения тестов зависит от порядка, в котором обрабатываются входные наборы. Например, для теста t1=01u, t2=0u1, t3=0u0, t4=u01 в том случае, если мы объединим t1 и t2, мы получим множество t12=011, t3=0u0, t4=u01, которое далее невозможно сократить. Если же мы сначала объединим t1 и t3 , то далее возможно также объединение t2 и t4, что дает более короткий тест: t13=010, t24=001. Оптимальное сжатие этим методом требует больших вычислительных ресурсов, так как фактически сводится к перебору различных вариантов решения. Таким образом, статическое сжатие выполняется на этапе постпроцессорной обработки.

Динамическое сжатие(тестова последовательность)

{

while(перспективно)

{

выбор вторичной неисправности g;

доопределение теста t для проверки g;

}

}

Рис.6.21 Динамическое сжатие теста

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

вычисления процента числа входов с неопределенными значениями. Если текущий тестовый набор t перспективен для сжатия, то выбирается

264

вторичная неисправность и значения входов доопределяются таким образом, чтобы она проверилась на t. Наиболее важным при этом является метод выбора вторичной неисправности [44]. Эксперименты показали, что динамическое сжатие позволяет получить тесты меньшей длины.

265

7. ПОСТРОЕНИЕ ТЕСТОВ ДЛЯ УСТРОЙСТВ С ПАМЯТЬЮ

Одной из самых сложных проблем при создании систем автоматизированного проектирования и диагностики дискретных устройств является задача разработки алгоритмов моделирования и генерации проверяющих тестов ДУ с памятью. Это объясняется дополнительными трудностями, возникающими из-за неопределенности начального состояния ДУ с памятью и возможных состязаний сигналов. В

силу этих обстоятельств методы построения проверяющих тестов и моделирования неисправных ДУ с памятью разработаны значительно хуже. Кроме того, применение методов контролепригодного проектирования, позволяющих свести диагностику ДУ с памятью к диагностике комбинационных ДУ не всегда возможно и эффективно [1,44].

Поэтому в настоящий момент данная задача является по-прежнему актуальной.

Существующие подходы к тестированию устройств с памятью можно классифицировать на две группы: методы, основанные на теории экспериментов с конечными автоматами (КА), и структурные методы построения тестов. Методы из первой группы в качестве модели ДУ с памятью используют конечный автомат. В основе построения проверяющего эксперимента или теста лежит построение диагностической последовательности (ДП) [93]. В случае, когда ДП не может быть построена, применяются модифицированные проверяющие эксперименты

[94], основанные на использовании уникальной последовательности.

Также при построении проверяющих экспериментов применяются синхронизирующая и установочная последовательности [95]. К

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

266

исходной логической схемы, экспоненциальный рост сложности

табличного представления автомата 2n 2n = 22n (n количество

элементарных ячеек памяти триггеров или линий обратных связей, 2n -

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

Структурные методы генерации проверяющих тестов в качестве модели ДУ используют логическую схему или его укрупненное структурное описание. ДУ на логическом уровне, как правило,

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

Как было сказано ранее (глава 1), ДУ без памяти представляются комбинационными логическими схемами, ДУ с памятью последовательностными логическими схемами [1,39,44]. В большинстве структурных методов для ДУ с памятью процесс построения проверяющего теста заключается в получении входной последовательности, различающей исправное и неисправное ДУ, с

помощью применения разнообразных многозначных моделей и алгоритмов активизации критических путей, а также некоторых других подходов [1]. В этом случае сложность построения тестов для ДУ с памятью определяется числом линий обратных связей n, значения сигналов на которых определяет текущее состояние ДУ с памятью.

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

случае автоматного подхода сложность построения теста определяется числом состояний конечного автомата, которое может достигать числа 2n .

267

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

Существует так называемая проблема «взрыва состояний» - начиная с некоторого значения n, число состояний КА резко возрастает (происходит

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

сложность структурных алгоритмов. Однако в силу некоторых особенностей структурных методов получаемые тесты обладают недостаточно высокой полнотой по сравнению с автоматными методами.

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

7.1 Структурный подход

Известные структурные методы построения тестов для цифровых устройств с памятью являются обобщением рассмотренных в главе 6

методов для комбинационных схем на последовательностные. Наиболее распространённый на практике подход к построению тестов для последовательностных схем основан на преобразовании их в так называемый комбинационный эквивалент (КЭ).

7.1.1 Итеративные комбинационные схемы

В комбинационном эквиваленте, получаемом путём условного обрыва обратных связей, вектор Y = ( y1, y2 ,..., yn ) представляет так

называемые псевдовходы,

~

~

~

~

- псевдовыходы

а вектор Y

= ( y1

, y2

,..., yn )

(Рис.7.1) [1,44].

 

 

 

 

 

268

 

X

 

Комбинационная

 

Z

 

 

 

X

 

 

Комбинационная

Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

~

 

 

 

 

логическая схема

 

 

 

 

 

 

логическая схема

 

 

Y

 

 

Y

 

 

 

Y

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б) Комбинационный эквивалент

 

 

 

 

Триггеры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

последовательностной логической

 

 

 

 

F/F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

схемы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Синхроимпульс

CLOCK

а) Последовательностная логическая схема

Рис. 7.1 Преобразование последовательностной логической схемы в комбинационный логический эквивалент

Если рассматривается поведение последовательностной схемы в течение t тактов, то t комбинационных эквивалентов соединяются последовательно в итеративную комбинационную схему (ИКС), как показано на Рис.7.2. Здесь произвольная j-я итерация I j итеративной

комбинационной схемы соответствует состоянию исходной последовательностной схемы на j-м такте времени. При этом компоненты векторов X j , Z j соответствуют линиям первичных входов и выходов

~

соответственно, Y j , Yj - псевдовходам и псевдовыходам соответственно на

~

j-м такте. Также очевидно, что Yj , Yj - это линии, определяющие состояние последовательностного ДУ в начале и в конце j-го такта соответственно.

Рис.7.2 Структура комбинационной итеративной схемы из t КЭ

269

Далее при генерации тестов можно применять один из методов,

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

рис.7.4.

X1

 

 

X1

 

 

 

&

Z

 

&

Z

 

 

 

 

 

 

 

 

~

Y

 

 

&

 

Y

 

&

 

 

 

 

 

 

 

X2

 

 

V1

X2

 

 

V1

 

 

 

 

 

 

Рис.7.3 Триггер

Рис.7.4 Комбинационный эквивалент

 

 

 

 

 

триггера

Рассмотрим построение

теста, который проверяет неисправность

V 1 на нижнем плече триггера на основе методов с использованием

шестизначного

алфавита T6,

рассмотренных

в разделе 6. Процесс

построения

теста

начинается

 

с

внесения

значения

V1=D',

соответствующего неисправности const 1,

в итеративной схеме из одного

комбинационного эквивалента, как это показано на рис.7.5.

 

 

 

 

x11=1

 

 

 

 

 

 

 

 

 

 

&

 

D

z1=D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1 =D

 

 

 

 

 

y1=1

 

 

 

 

 

 

 

 

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x12=1

 

V1=D’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.7.5 Построение тестовой последовательности – 1 КЭ

270