Московский государственный университет путей сообщения
Опубликован: 06.09.2012 | Доступ: свободный | Студентов: 1232 / 168 | Оценка: 5.00 / 5.00 | Длительность: 35:22:00
Специальности: Разработчик аппаратуры
Лекция 24:

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

< Лекция 23 || Лекция 24: 123 || Лекция 25 >

24.2 Символьное моделирование

Приведенное выше определение 24.2 обнаруживаемости неисправностей для последовательностных схем дано фактически на функциональном уровне и требует явного моделирования для каждого начального состояния исправной и неисправной схем. Рассмотрим кратную стратегию наблюдения выходных сигналов и символьное моделирование неисправных последовательных схем. Как уже отмечалось, при использовании этой стратегии необходимо сравнить выходные реакции для всевозможных пар состояний (Y,Y_{н}) исправной и неисправной схем. Эта процедура требует значительных вычислительных ресурсов при длинных входных последовательностях для схем, содержащих большое число элементов памяти.

Известно, что троичное моделирование не позволяет точно оценить полноту теста [24.1], поэтому последнее время все чаще используется символьное моделирование логических схем. Символьное моделирование, в отличие от обычно применяемого логического моделирования в троичном алфавите, позволяет получить точные значения сигналов для каждой линии схемы для заданной входной последовательности X(1), X(2),…, X(p) и неопределенного начального состояния схемы. При этом каждому i-ому элементу памяти ставится в соответствие переменная состояния y_{i}. Тогда состояние исправной схемы описывается вектором переменных Y=(y_1,\ldots,y_k), где y_i\in\{0,1\} для i=\overline{1,k}. В процессе символьного моделирования для каждой линии схемы строится булева функция, которая зависит от переменных состояний Y=(y_1,\ldots,y_k).

Для заданной входной последовательности X сначала выполняется символьное моделирование исправной схемы, которое определяет для каждой линии булевы выражения, определяющие зависимость от переменных состояний. Далее для каждой отобранной неисправности (обычно тех, которые не обнаруживаются с использованием троичного моделирования) для каждого временного такта t и j-го выхода определяются символьные выражения выхода z_{j}(r,t), где r-состояние исправной схемы. Для нашего примера из предыдущего раздела на рис. 24.1 представлены результаты символьного моделирования исправной и неисправной схемы (рис. 22.1) для входной последовательности x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1. Здесь, для каждой линии схемы получены булевы выражения в терминах переменных состояний y_1, y_2 исправной и в терминах y_{1н},y_{2н} неисправной схемы.

Итеративная комбинационная схема с данными символьного моделирования

увеличить изображение
Рис. 24.1. Итеративная комбинационная схема с данными символьного моделирования

24.3 Дизъюнктивная форма различающей функции для последовательностных схем

Как уже говорилось выше, элегантным методом решения проблемы построения теста является использование математического аппарата различающих функций, который обобщает понятие различающей функции (24.1), (24.2) для комбинационных схем на схемы с памятью. Согласно [24.1,24.2] определим различающую функцию D_{f,X}:B^k\times B^k\to B в случае применения стратегии кратного наблюдения для каждой неисправности f и входной последовательности X=X(1), X(2),…, X(p) следующим образом:


D^{МОТ}_{f,X}=\bigvee\limits_{t=1}^{p}{\bigvee\limits_{j=1}^{m}
{[z_j(X,Y,t)\oplus z_j^f(X,Y_н,t)]}} ( 24.7)

При этом Y=(y_1,\ldots,y_k) и Y_н=(y_{1н},\ldots,y_{kн}) обозначают переменные состояний, представляющих начальные состояния исправной Y и неисправной Y_{н} схем. Данная различающая функция сравнивает все выходные последовательности исправной и неисправной схем для моментов времени t=\overline{1,p} одновременно.

Моделирование неисправных схем с применением стратегии кратного наблюдения выполняется с помощью символьного моделирования с итеративным вычислением различающих функций D^{МОТ}_{f,X}. С целью выполнения этой процедуры для каждой неисправности вводится вспомогательная (текущая) различающая функция \tilde{D}_{f,X}, которая при инициализации получает нулевое значение. Далее в процессе символьного моделирования к ней последовательно добавляется на каждом шаге дизъюнктивный терм, соответствующий своему моменту времени


\tilde{D}_{f,X}(Y,Y_н)\gets\tilde{D}_{f,X}(Y,Y_н)\vee (\bigvee\limits_{j=1}^{m}{[z_j(Y,t)\oplus z_j^f(Y_н,t)]}).

При достижении в процессе моделирования внешнего выхода j выполняется проверка обнаружимости рассматриваемой неисправности относительно используемой стратегии наблюдения выходных сигналов.

Можно показать [24.1,24.2], что неисправность f является обнаружимой относительно стратегии кратного наблюдения, если и только если {D}_{f,X}=1 для данной входной последовательности X. Равенство {D}_{f,X}=1 говорит о том, что различающая функция содержит все пары состояний исправной и неисправной схемы (все пары состояний различаются последовательностью X). Если \tilde{D}_{f,X}=1, то неисправность отмечается как обнаруженная и исключается из дальнейшего рассмотрения. Следует отметить, что оценка полноты входной тестовой последовательности также может быть выполнена путем сравнения выходных реакций с символьными выражениями соответствующих выходов схемы.

Для нашего примера (входной последовательности x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1 схемы (рис. 22.1) для первого такта имеем


\tilde{D}_{f}={D}_{f} (t=1)=z(t=1)\oplus z_f(t=1)=y_1\oplus y_{1н}= y_1\overline{y_{1н}}\vee\overline{y_{1}}{y_{1н}}

Для второго такта имеем D_f(t=2)=z(t=2)\oplus z_f(t=2)=y_2\oplus 0=y_2, что дает


D_f^{МОТ}=D_f(t=1)\vee D_f(t=2)=y_1\overline{y}_{1н}\vee \overline{y}_1y_{1н}\vee y_2

Для третьего такта получаем D_f(t=3)=z(t=3)\oplus z_f(t=1)=y_1\oplus 0 = y_1,

откуда следует


D_f^{МОТ}=D_f(t=1)\vee D_f(t=2)\vee D_f(t=3)=y_1\overline{y}_{1н}\vee \overline{y}_1y_{1н}\vee y_2\vee y_1=y_{1н}\vee y_2\vee y_1

Наконец для 4-го такта получаем D_f(t=4)=z(t=4)\oplus z_f(t=4)=\overline{y}_2\oplus 0=\overline{y}_2, что ведет к

D_f^{МОТ}=D_f(t=1)\vee D_f(t=2)\vee D_f(t=3)\vee D_f(t=4)=
y_{1н}\vee y_2\vee y_1\vee\overline{y}_2=1

Покажем соответствие полученных выражений узлам обратного различающего дерева рис. 22.3. Возьмем правый узел первого уровня ОРД X=1, которому соответствуют множества неразличимых пар состояний \{CDcd\} \{ABab\} исправной и неисправной схемы. Очевидно, что состояния, содержащиеся в разных \sigma-множествах \{\}, различаются входной последовательностью X=1. Получаем следующие различаемые пары состояний для нашего примера: \{Ca,Cb,Da,Db,Ac,Ad,Bc,Bd\}. Можно показать, что каждой различимой паре состояний исправной и неисправной схемы соответствует терм совершенной дизъюнктивной нормальной формы (СДНФ):


D_f^{МОТ}(t=1)=y_1\overline{y}_{1н}\vee\overline{y}_1y_{1н}=
y_1\overline{y}_2\overline{y}_{1н}\overline{y}_{2н}\vee
y_1\overline{y}_2\overline{y}_{1н}{y}_{2н}\vee
y_1{y}_2\overline{y}_{1н}\overline{y}_{2н}\vee
y_1{y}_2\overline{y}_{1н}{y}_{2н}\vee
\overline{y}_1\overline{y}_2{y}_{1н}\overline{y}_{2н}\vee
\overline{y}_1{y}_2{y}_{1н}\overline{y}_{2н}\vee
\overline{y}_1{y}_2{y}_{1н}{y}_{2н}

Например, первый терм y_1\overline{y}_2\overline{y}_{1н}\overline{y}_{2н} соответствует различимой паре \{Ca\},… последний терм \overline{y}_1y_2y_{1н}y_{2н} - паре \{Bd\}. Аналогично правый узел второго уровня ОРД \{C\}\{Dbb\}\{A\}\{Bbb\} соответствует 
D_f^{МОТ}=y_1\overline{y}_{1н}\vee\overline{y}_1y_{1н}\vee y_2
. Если мы разложим это выражение в СДНФ, то обнаружим соответствие каждой различимой пары терму СДНФ. Таким же образом правому узлу третьего уровня ОРД \{B\}\{A\}\{D\}\{Ccd\}\{ab\} соответствует D_f^{МОТ}(t=3)=y_1\overline{y}_{1н}\vee\overline{y}_1 y_{1н}\veey_2\vee y_1=y_{1н}\vee y_2\vee y_1 и узлу четвертого уровня \{A\}\{C\}\{B\}\{D\}\{cd\}\{ab\} - соответствует D_f^{МОТ}(t=4)=1.

Равенство РФ D_f^{МОТ}=1 говорит о том, что различающая функция содержит все пары состояний исправной и неисправной схемы и поэтому неисправность f_2\equiv 0 схемы рис. 22.1 проверяется входной последовательностью x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1 относительно кратной стратегии наблюдения.

Таким образом, поиск пути на ОРД, соответствующего тестовой последовательностью можно выполнить с помощью символьного моделирования и вычисления различающей функции. Поиск тестовой последовательности X=X(1), X(2),…, X(p) сводится к решению булева уравнения D_f^{МОТ}=1. Фактически дизъюнктивная форма различающей функции позволяет свести задачу построения проверяющей последовательности для заданной неисправности схемы с памятью к проверке тавтологии D_f^{МОТ}=1. Быстродействие современной вычислительной техники наряду с развитой техникой символьных вычислений [24.6] позволяет применять этот подход для реальных последовательностных схем.

Решение уравнения D_f^{МОТ}=1 можно реализовать различными способами, в частности, с помощью генетических алгоритмов (ГА) [24.1]. Если провести аналогию с обратным различающим деревом, то в данном случае генетический алгоритм должен выбрать самый перспективный двоичный набор (вершину нижнего уровня ОРД), который следует добавить к текущей тестовой последовательности. Заметим, что в этом случае потенциальным решением является один входной набор, а не вся тестовая последовательность, что, как правило, имеет место при использовании ГА в структурном построении тестов для последовательностных схем [24.1]. Это позволяет снизить размерность этой (локальной) задачи. Поскольку целью генерации тестовой последовательности в этом случае является D_f=1, то в генетическом алгоритме для оценки потенциальных решений (входных последовательностей) следует использовать фитнесс-функцию, которая определяет близость различающей функции для анализируемой входной последовательности к значению 1 (D_f=1). Заметим, что чем больше пар состояний исправной и неисправной схем различается, тем ближе различающая функция к 1. Поэтому можно взять различающую функцию вида H= P_{d}*k_{1}+ P_{n}* k_{2}, где P_{n}определяется числом вновь различенных пар состояний исправной и неисправной схем, а P_{d} определяется числом пар состояний, различенных на предыдущих входных наборах. Здесь k_{1} и k_{2} - весовые коэффициенты (k_{2} > k_{1}). Заметим, что в этом случае можно использовать стандартные генетические операторы кроссинговера и мутации [24.1].

< Лекция 23 || Лекция 24: 123 || Лекция 25 >
Дмитрий Медведевских
Дмитрий Медведевских

Добрый день  можно поинтересоваться где брать литературу предложенную в курсе ?Большинство книг я не могу найти  в известных источниках