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

А.Ю. Матросова, А.Г. Плешков, А.С. Алемасов

ПОСТРОЕНИЕ ТЕСТОВ ДЛЯ КОНСТАНТНЫХ НЕИСПРАВНОСТЕЙ ПРОИЗВОЛЬНЫХ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ КОМБИНАЦИОННЫХ СХЕМ НА ОСНОВЕ ГРАФИЧЕСКОГО ПРЕДСТАВЛЕНИЯ ФУНКЦИЙ ЭЛЕМЕНТОВ

Работа выполнена при финансовой поддержке гранта министерства образования РФ: грант 2003, ЕО 2-2.0-30.

Предложен алгоритм синтеза тестовых наборов для константных неисправностей произвольных логических элементов комбинационных схем. Алгоритм основан на использовании свойств ортогональных дизъюнктивных нормальных форм (ОДНФ) функций, реализуемых схемой. Графическое представление схемы композицией альтернативных графов ее элементов, названных впоследствии SSBDD-графами (Structurally Synthesized Binary Decision Diagram), наряду с информацией о структуре схемы задают ОДНФ функций этой схемы. Это позволяет, с одной стороны, использовать композицию графов при построении тестов для различных неисправностей в структуре схемы, а с другой - сокращать перебор при поиске тестов за счет графического представления ОДНФ булевых функций. Введен FSSBDD-граф (Full Structurally Synthesized Binary Decision Diagram), задающий в компактной форме ОДНФ схемы в целом. Алгоритм синтеза тестовых наборов сводится к поиску подходящих путей в FSSBDD-графе. Созданы программные реализации алгоритма. Одна из них ориентирована на построение FSSBDD-графа и последующий его анализ. Другая - на обход подмножеств путей этого графа без его явного построения за счет использования SSBDD-графов элементов схемы и информации о связях между ними. Приводятся результаты испытания программ.

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

Следует, однако, иметь в виду, что аналитическое представление булевых функций зачастую ориентировано на такие формулы, которые в явном виде несут информацию о свойствах функции: ее единичных наборах (ДРФ), нулевых наборах (КHФ), однородности но переменным (произвольные формулы над множеством {—, л, v } булевых функций, в которых инверсии опущены со скобок на переменные и т.д. Графическое представление логических схем такой информации в явном виде не содержит.

ROBDD-графы (Reduced Ordered Binary Decision Diagram), предложены R.E. Bryant в 1986 г. [1]. Они, в отличии от традиционных графических представлений логических схем своими путями (простыми цепями), соединяющими корень графа с 1(0)-концевой вершиной, представляют единичные (нулевые) наборы булевой функции, однако не содержат информации о структуре схемы, реализующей эту функцию.

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

[2]. Альтернативные графы в последующих работах P.P. Уба-ра и его коллег были названы SSBDD-графами (Structurally Synthesized BDD). Успешное их применение в задачах диагностики объясняется, с одной стороны, тем, что они являются носителями информации как о структуре схемы, реализующей

систему булевых функций, так и о единичных и нулевых наборах этих функций, а с другой - обычно более компактны, чем ROBDD тех же функций [3].

Построение SSBDD-графа выполняется от выхода схемы путем совмещения специальных BDD-графов ее элементов

[3] и заканчивая первыми встретившимися точками ветвления схемы, так что каждой точке ветвления сопоставляется столько переменных, сколько ветвей из нее исходит. Эти неременные отличаются друг от друга индексами, приписанными символу переменной, отмечающему точку ветвления, а, возможно, и знаками инверсии. ^вденным точкам ветвления сопоставляются корни других SSBDD-графов и т.д. В результате одновыходная комбинационная схема задается системой SSBDD-графов. Сложность системы SSBDD-графов (число ее вершин) линейно зависит от числа элементов схемы [3].

В [4] предлагается вместо системы SSBDD-графов использовать один FSSBDD-граф (Full SSBDD), который строится аналогично SSBDD-графам но структуре схемы при движении от ее выхода к входам. Каждая переменная точки ветвления заменяется специальным BDD-графом элемента схемы, выход которого сопоставляется этой ветви или BDD-графам инверсного элемента. FSSBDD-граф в общем случае получается значительно сложнее системы SSBDD-графов, и используется главным образом для объяснения метода синтеза тестов, поскольку ближе к традиционным BDD-графам. Оба рассматриваемые графические представления содержит в себе «упакованные» ортогональные дизъюнктивные нормальные формы (ОДОФ) функций всевозможных подсхем схемы, для которой они построены. Они различаются способами «упаковки» этих ОДДФ.

В данной работе обсуждается алгоритм построения тестов для одиночных константных неисправностей комбинационной схемы [4], ориентированный на достраивание конъюнкций [5] и использование ортогональных дизъюнктивных нормальных форм (ОДДФ) [6]. Алгоритм адоптируется на схемы из произвольных логических элементов. Приводятся результаты испытания программ для схем из произвольных логических элементов.

1. FSSBDD-ГРАФЫ И ОРТОГОНАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ НОРМАЛЬНЫЕ ФОРМЫ

1.1. Построение FSSBDD-графов

Будем иметь в виду, что построение КОБББ-графов [1] основано на использовании известного разложения булевой функции по одной переменной (разложение К. Шеннона):

F (x1 >...> Xn ) = XTF (x1 >...> Xi-1 > a i > X+1V..> Xn ) V

—ai

Xi F

(x1,...,

i+1 ? F (x1>

обычно называются коэффициентами разложения, a,=1. 210

Это разложение применяется многократно сначала к самой функции, а потом к ее коэффициентам разложения с целью построения КОВББ-графа. При представлении этого разложения фрагментом ЮВББ-графа вершине фрагмента сопоставляется переменная х. Исходящая из нее дуга, помеченная 1 (1-дуга), соответствует фиксированию переменной хI функции Е константой 1 (результат фиксирования сопоставляется вершине, в которую эта дуга заходит), а дуга, помеченная 0 (0-дуга), - константой 0 (результат фиксирования сопоставляется вершине, в которую эта дуга заходит). Если на очередном шаге разложения при фиксировании перемен-

x

n

ной функция обращается в константу 1(0), то вершина, в которую заходит дуга, соответствующая функции, объявляется 1(0)-концевой вершиной. В ЯОБББ-графе все 1-кон-цевые вершины объединяются в одну 1-концевую вершину графа, также как и все 0-концевые вершины [1]. Вершина графа, отмеченная первой по порядку переменной разложения, называется корнем графа. В [1] введены операции, позволяющие сократить число вершин в графе. Построение ЮБББ-графа связано с выбранным заранее для графа в целом порядком разложения по переменным. При выбранном порядке разложения построенный граф оказывается единственным для функции, что позволяет использовать ЯОБББ-графы для верификации дискретных схем. Договоримся в дальнейшем любой граф, полученный с использованием разложения Шеннона и совмещением 1(0)-концевых вершин, называть просто БББ-графом, если другие особенности его построения нас не интересуют.

При построении 88БББ-графов [3] применяется многократное разложение по переменной элементарных функций алгебры логики произвольного числа переменных: И, ИЛИ, НЕ И, НЕ ИЛИ, НЕ с целью построения БББ-графа для каждой из элементарных функций. Причем, наряду с обычным представлением разложения Шеннона фрагментом БББ-графа, предложено использовать модификацию этого представления, в которой вершине сопоставляется переменная Хі. В этом случае 1-дуга соответствует фиксированию

переменной хі функции Е константой 0, а 0-дуга - константой 1 (это следует из формулы (1)).

К булевым функциям И, ИЛИ применяется обычное представление разложения Шеннона, а к булевым функциям НЕ И, НЕ ИЛИ, НЕ - разложение с использованием в качестве меток вершин инверсных переменных, что соответствует опусканию инверсии с функции на входные переменные и замене функции на двойственную: л заменяется на V, V заменяется на л. В результате каждый элемент комбинационной схемы представлен в системе 88БББ-графов либо элементом И, либо элементом ИЛИ, а инвертор - инверсией переменной, сопоставляемой его входу.

И = х1 х2...хп И = х1 V х1 х2 V ... V х1...хи-1 хп

Рис. 2. Элементарный БББ-граф для НЕ ИЛИ. И = х1 Х2...Хп И = х1 Vх1 х2 V... Vх1...хп-1 хп

Рис. 3. Элементарный БББ-граф для ИЛИ.

И = х1 VХ1 х2 V...VХ1...Хп-1 хп И = Х1 Х2...Хп

Рис. 4. Элементарный БББ-граф для НЕ И.

И = Х1 VХ1Х2 V...VХ1...Хп-1 Хп И = Х1 Х2...Хп

і

1

0

о

Рис. 5. Элементарный ВББ-граф для НЕ. к = х1 к = х1

На рис.1-5 приведены примеры ВББ-графов для элементарных булевых функций. В дальнейшем будем называть эти графы элементарными ВББ-графами.

Дизъюнктивная нормальная форма называется ортогональной (ОДНФ), если ее конъюнкции попарно ортогональны.

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

Каждая ОДНФ элементарной функции представляется 1-путями (простыми цепями), соединяющими корневую вершину (корень) соответствующего элементарного ВББ-графа с 1-концевой вершиной, ОДНФ инверсии

элементарной функции представляется 0-путями, соединяющими эту же корневую вершину с 0-концевой вершиной. Всякому пути, проходимому в направлении ориентации дуг из корня некоторого элементарного БББ-графа в его 1(0)-концевую вершину сопоставляется конъюнкция переменных, отмечающих вершины этого пути. Если дуга помечена константой 1, то входящая в конъюнкцию переменная имеет знак инверсии, совпадающий с меткой вершины, из которой дуга исходит, иначе эта переменная имеет противоположный знак инверсии.

На рис. 1-5 приведены ОДНФ элементарных булевых функций.

88БВБ-граф строится путем совмещения элементарных БББ-графов элементов схемы вплоть до точек ветвления схемы; точкам ветвления сопоставляются новые 88БББ-графы и т.д., пока не построим 88БББ-графы, зависящие только от входных переменных. Заметим, что элемент, выход которого является точкой ветвления, в дальнейшем может использоваться как в прямой, так и инверсной форме.

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

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

Начнем с построения элементарного БББ-графа для элемента, корень которого сопоставляется выходу схемы, а затем последовательно заменим внутренние переменные схемы элементарными БББ-графами. Пусть часть Р88БВБ-графа уже построена и представляет собой граф, в котором выделен корень и 1(0)-кон-цевые вершины. В любую вершину графа (кроме корневой) в общем случае может заходить несколько дуг. Из любой неконцевой вершины исходит ровно две дуги: одна помечена символом 1, другая - символом 0. Каждой ветви точки ветвления, как и в системе 88БББ-графов, сопоставим внутренние переменные, отличающиеся друг от друга индексом, указывающим на номер ветви, а возможно, и знаком инверсии. Внутренние переменные с индексами и знаками инверсии отмечают вершины строящегося Р88БББ-графа.

Если в уже построенном подграфе нет вершин, помеченных внутренними переменными, процедура построения закончена, и Р88БВБ-граф получен.

Иначе выбираем очередную вершину, помеченную внутренней переменной. Из нее исходит 1-дуга, заходящая в вершину построенного графа (обозначим вершину е1), и 0-дуга, заходящая в другую вершину построенного графа (обозначим вершину е0). В рассматриваемую вершину, помеченную внутренней переменной, в общем случае может заходить несколько дуг. Строим элементарный БББ-граф для элемента схемы, выход которого сопоставлен этой внутренней переменной.

Корень этого элементарного БББ-графа замещает вершину, отмеченную рассматриваемой внутренней переменной, возможно, с индексом и знаком инверсии. Все входящие в замещаемую вершину дуги теперь входят в корневую вершину замещающего элементарного БББ-

графа. Совмещаем 1-концевую вершину элементарного БББ-графа с е1, а его 0-концевую вершину - с е0. При этом метка 1(0)-концевой вершины элементарного БББ-графа исключается, метка вершины е1(е0) сохраняется.

Такая подстановка выполняется до тех пор, пока все вершины, помеченные внутренними переменными, не будут исчерпаны. В результате получим Р88БББ-граф схемы.

Рис. 6. Комбинационная схема

Рис. 7. Процесс получения FSSBDD-графа

На рис. 6 приведена комбинационная схема, а на рис. 7 представлены этапы получения для этой схемы FSSBDD-графа. При каждом замещении вершины, отмеченной внутренней переменной, возможно, с индексом и знаком инверсии, этой переменной сопоставляется номер вершины в строящемся FSSBDD-графе, являющейся корнем подставляемого элементарного BDD-графа, и номера вершин строящегося Р88БDD-графа, совмещаемые с 1(0)-концевыми вершинами этого BDD-графа. Последние номера снабжены индексами, указывающими на тип концевых вершин. Если 1(0)-концевая вершина подставляемого BDD-графа совпадает с 1(0)-концевой вершиной FSSBDD-графа (это одна и та же вершина для строящихся FSSBDD-графов и окончательного FSSBDD-графа), то номер вершины Р88БDD-графа не указывается. Соответствующий список номеров приведен на рис. 7.

1.2. Получение ОДНФ для комбинационной схемы и ее подсхем

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

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

В ROБDD-графе любой простой цепи, соединяющей корень графа с его 1(0)-концевой вершиной, сопоставляется элементарная конъюнкция. Аналогичная конъюнкция в Р88БDD-графе может быть неэлементарной.

Обозначим через Д(/) дизъюнкцию попарно ортогональных, не обязательно элементарных, конъюнкций одновыходной комбинационной схемы, полученную в результате подстановки вместо внутренних переменных (например, при движении от выхода схемы к ее входам) ОДНФ элементов И, ИЛИ, НЕ И, НЕ ИЛИ, НЕ (они приведены на рис. 1-5) от входных переменных элементов и последующего раскрытия скобок. Выбрасывание пустых конъюнкций, повторяющихся букв в непустых конъюнкциях, поглощения и склеивания конъюнкций не допускаются. Такая подстановка гарантирует попарную ортогональность конъюнкций, не обязательно элементарных.

Аналогичным образом может быть получена Д (/) для инверсной схемы, в ней элемент, выход которого является выходом схемы, заменен инверсным элементом. В [4] доказано, что множество 1(0)-путей Р88БDD-графа представляет Д (/) Д (/) .

Каждому 1(0)-пути Р88БDD-графа сопоставляется конъюнкция входных переменных. Если в конъюнкции встречаются взаимно инверсные переменные, то такой путь будем называть противоречивым, то есть противоречивый путь представляет пустую конъюнкцию. Любую непустую конъюнкцию можно привести к элементарной, исключив повторение одинаковых букв. Это значит, что

из Д (/) Д (/) можно получить (ОДНФ) функции (ОДНФ инверсии функции), исключив пустые конъюнкции и повторяющиеся буквы в непустых конъюнкциях с целью превращения последних в элементарные конъюнкции. Обозначим ОДНФ через Д (/) Д (/) .

FSSBDD-граф содержит также ОДНФ и ее инверсию для любой подсхемы, выход которой сопоставляется выходу некоторого элемента схемы, а входы -входным переменным рассматриваемой схемы [4].

Выясним, как найти ОДНФ (ее инверсию) для подсхемы.

Подсхеме (будем называть ее v-подсхемой) в общем случае может быть сопоставлено в Р88БDD-графе несколько подграфов, корни которых сопоставлены символу одной и той же внутренней переменной V, возможно, с различными индексами и знаками инверсии. Обозначим символом Н функцию, реализуемую v-подсхемой, а через Н - инверсию этой функции. Каждый из подграфов задается номером вершины Р88БDD-графа, сопоставленной переменной V и являющейся корнем выделяемого подграфа, и номерами вершин Р88БDD-графа, сопоставленными 1,0-концевым вершинам этого подграфа. Непротиворечивые пути (простые цепи), соединяющие корень выделяемого подграфа с его 1(0)-концевой вершиной,

представляют функцию Н(Н) в виде ОДНФ. Номера вершин, сопоставляемых корню подграфа и его 1,0-кон-цевым вершинам были найдены при подстановке элементарного БDD-графа вместо вершины, отмеченной переменной V с соответствующим индексом и знаком инверсии. При дальнейших подстановках с целью замены других внутренних переменных элементарного БDD-графа эти вершины стали корнем и 1,0-концевыми вершинами

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

На рис. 7, например, подсхеме, выходом которой является выход элемента 6 комбинационной схемы, представленной на рис. 6, сопоставляется два подграфа. Корнем одного из подграфов является вершина 3 Р88БББ-графа, 1-концевая вершина подграфа совпадает с 1-концевой вершиной Р88БББ-графа, а 0-кон-цевая вершина подграфа есть вершина 2 Р88БББ-графа. Пути, ведущие из 3 в 1-концевую вершину Р88БББ-графа, представляют функцию Н, реализуе-

мую у-подсхемой, в виде дизъюнкции соответствующих путям конъюнкций: а V асё, а пути из вершины 3

в вершину 2 - инверсию этой функции: ас V асй . Корнем другого подграфа является вершина 2 Р88БББ-графа, его 1-концевая вершина есть вершина 4 Р88БББ-графа, а его 0-концевая вершина совпадает с

0-концевой вершиной Р88БББ-графа. Будем иметь ввиду, что у-подграфы, сопоставляемые внутренней переменной, возможно, с разными индексами, но одним и тем же знаком инверсии, изоморфны.

2. ПОСТРОЕНИЕ ТЕСТОВ ДЛЯ ОДИНОЧНЫХ КОНСТАНТНЫХ НЕИСПРАВНОСТЕЙ ПОЛЮСОВ ЭЛЕМЕНТОВ КОМБИНАЦИОННОЙ СХЕМЫ

В работе [6] предложен метод построения тестов для одиночных константных неисправностей полюсов элементов комбинационной схемы, основанный на использовании ОДНФ, описывающих поведение фрагментов схемы.

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

Для этого построим [6] ОДНФ для подсхемы, выходом которой является выход схемы, а входами - полюс, сопоставляемый выходу рассматриваемого элемента и обозначенный переменной V, и входы схемы. Обозначим ее Д0 (О). Разделим конъюнкции ОДНФ на три подмножества [6], задав ее в виде Д0(0) = К V Ку V К^ (2).

Здесь ОДНФ К представляет конъюнкции, не содержащие переменной V, ОДНФ К у представляет конъюнкции, содержащие переменную V, ОДНФ К представляет конъюнкции, содержащие переменную V. Эти ОДНФ попарно ортогональны между собой.

Обозначим через К* ОДНФ, полученную из Ку вычеркиванием переменной V. Аналогичным образом получим ОДНФ К *. Пусть Д0(Н) есть ОДНФ функции, реализуемые подсхемой, выход которой сопоставлен переменной V, (подсхеме сопоставляется v-подграф в FSSBDD-графе [4] ), а Д0(Н) - ОДНФ инверсии

этой функции. Напомним, что рассматриваемые ОДНФ зависят от входных переменных схемы. В [6] доказано, что набор значений входных переменных является тестовым для константной неисправности 0, если и только если он обращает в единицу выражение К * & Д 0(Н) и в нуль выражение К * .

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

Приведенные ниже теоремы относятся к фрагментам упомянутых в них ОДНФ, связанных с одним и тем же v-подграфом [4].

Теорема 1. Конъюнкция из К* представляется двумя непротиворечивыми отрезками пути FSSBDD-графа. Первый из них начинается в корне графа и заканчивается в корневой вершине рассматриваемого у-под-графа, сопоставляемой переменной у( V), а второй на-

начинается в 1(0)-концевой вершине этого у-подграфа и заканчивается в 1-концевой вершине FSSBDD-графа.

Доказательство. Из построения FSSBDD у-графа следует, что рассматриваемая конъюнкция получается вычеркиванием переменной у из конъюнкции, представляемой непустым 1-путем этого графа, проходящим через полюс, помеченный переменной у( V ) и сопоставляемый рассматриваемому у-подграфу, а, возможно, и через полюсы, помеченные той же переменной и сопоставляемые подчиненным у-подграфам. Выделим в нем два отрезка: первый - из корня до первой вершины, помеченной переменной у(V ), пропускаем 1(0)-дугу этой вершины, что соответствует вычеркиванию переменной у, и рассматриваем второй отрезок - из вершины, в которую эта дуга заходит, до 1-кон-цевой вершины FSSBDD у-графа. Если во втором отрезке встречаются корневые вершины подчиненных у-под-графов, соответствующие им дуги также пропускаем. Первый отрезок начинается в корне FSSBDD-графа и заканчивается в вершине, сопоставляемой переменной у( V) рассматриваемого у-подграфа. Второй начинается в 1(0)-кон-цевой вершине этого подграфа и заканчивается в 1-кон-цевой вершине FSSBDD-графа. Теорема доказана.

Теорема 2. Конъюнкция из Д0(Н) представляется непустым 1(0)-путем V -подграфа (из корня подграфа, сопоставляемого в FSSBDD-графе переменной V ( V), в 1(0)-концевую вершину этого подграфа).

Доказательство. Утверждение теоремы следует из способа построения -подграфов. Итак, конъюнкция

ОДНФ, представленная выражением К * & Д0(Н), задается непротиворечивыми отрезками путей FSSBDD-графа, порожденными одним и тем же -подграфом рассматриваемого фрагмента. С этим же подграфом связан непротиворечивый отрезок, обеспечивающий

обращение в нуль выражения К * . Теорема доказана.

Теорема 3. Отрезок FSSBDD-графа, соединяющий 0(1)-концевую вершину рассматриваемого V -подграфа, сопоставляемого в FSSBDD-графе переменной у( V), с

0-концевой вершиной FSSBDD-графа, представляет конъюнкцию, ортогональную ОДНФ К *.

Доказательство. Фрагмент ОДНФ К * представляется путями из 0(1)-концевой вершины рассматриваемого подграфа, сопоставляемого в FSSBDD-графе переменной у( V), в 1-концевую вершину FSSBDD-графа. Каждый непустой путь из 0(1)-концевой вершины подграфа в 0-концевую вершину FSSBDD-графа представ-

ляет конъюнкцию, ортогональную всем конъюнкциям этого фрагмента. Теорема доказана.

Непротиворечивые отрезки, определяемые теоремами

1-3, вместе представляют конъюнкцию. Обращающий ее в единицу набор является тестовым набором для рассматриваемой неисправности. Исправная схема на этом наборе принимает значение один, а неисправная - нуль. Поиск таких непротиворечивых отрезков связан с перебором, однако, перебор удается сократить, во-первых, за счет рассмотрения условий существования теста для фрагментов формул, а во-вторых, за счет замены перебора формул [6] перебором путей в графе. Для нахождения тестовых наборов, обращающих исправную схему в нуль, а неисправную в единицу, необходимо рассмотреть ОДНФ для инверсной схемы и переформулировать теоремы 1-3.

Представим Д0(0) в виде Д0(0) = К V К\ V К7(3). Здесь ОДНФ К , К 'у, К 7, К 'I, К '* аналогичны ОДНФ К , К у , К 7, К *, К* . Следовательно, для нахождения тестового набора необходимо обратить в единицу выражение Ку & Д0(Н) и в нуль выражение К7.

Теорема 4. Конъюнкция из К у представляется двумя непротиворечивыми отрезками из Р88БВБ-графа. Первый из них начинается в корне графа и заканчивается в корневой вершине рассматриваемого у-под-графа, сопоставляемого переменной у( у), а второй начинается в 1(0)-концевой вершине этого подграфа и заканчивается в 0-концевой вершине Р88БББ-графа.

Доказательство аналогично доказательству теоремы 1.

Теорема 5. Конъюнкция из Д 0(Н) представляется непустым 0(1)-путем у-подграфа (из корня подграфа, сопоставляемого переменной у ( V ) в Р88БББ-графе, в его 0(1)-концевую вершину).

Доказательство аналогично доказательству теоремы 2.

Теорема 6. Отрезок Р88БББ-графа, соединяющий 0(1)-концевую вершину рассматриваемого у-подграфа, сопоставляемую в Р88БББ-графе переменной у( V ), с

1-концевой вершиной Р88БББ-графа, представляет конъюнкцию, ортогональную ОДНФ К -.

Доказательство аналогично доказательству теоремы 2.

3. АЛГОРИТМ ПОСТРОЕНИЯ ТЕСТОВОГО НАБОРА ДЛЯ НЕИСПРАВНОСТИ КОНСТАНТА 0 НА ПОЛЮСЕ V, СОПОСТАВЛЯЕМОМ ВЫХОДУ ЭЛЕМЕНТА СХЕМЫ

Алгоритм приводится в предположении, что Р88БDD-граф построен.

1. Перебираем ближайшие к корню Р88БDD-графа у-подграфы, не обращая внимания на индексы и знаки инверсии переменной у.

2. Перебираем пути, определяемые выбранным у-подграфом, с тем чтобы найти непротиворечивые отрезки в соответствии с теоремами 1-3. Непротиворечивые отрезки представляют тестовые наборы для рассматриваемой неисправности. Если непротиворечивые отрезки найти не удается, ищем непротиворечивые отрезки в соответствии с теоремами 4-6 для того же у-подграфа.

3. Если все у-подграфы просмотрены, а тестового набора найти не удалось, то его для рассматриваемой неисправности не существует.

Для неисправности константа 0 на входном полюсе элемента схемы определяем индекс переменной у (номер

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

Поиск всех совокупностей непротиворечивых отрезков обеспечивает нахождение всех тестовых наборов для рассматриваемой неисправности и представление их в виде ОДНФ.

Для неисправности константа 1 поступаем аналогично предыдущему, обращая в единицу выражение К *& Д 0(Н)(К |*& Д 0(Н)) и в нуль выражение

к *( к ;*).

При построении теста для другой константной неисправности необходимо в Р88БББ-графе выбрать соответствующие неисправному полюсу у-подграфы, а затем воспользоваться описанным выше алгоритмом.

4. РЕАЛИЗАЦИЯ АЛГОРИТМА

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

Первая программа представляет каждый элемент как схему из двухвходовых вентилей, а затем строит FSSBDD-граф, в котором каждый вентиль подсхемы заменяется соответствующим BDD-графом. Рассматриваются неисправности на полюсах вентилей и строится тестовый набор для неисправности согласно изложенному выше алгоритму.

Результаты испытаний программы на бенч-марке 9єутт1 приведены в таблице. К сожалению, для бенчмарки С432, С499, С880, С1355 не удалось построить FSSBDD-граф из-за его большой размерности.

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

элемент задан ДНФ х7 х8 х24 V х6 х26 V х6 х10 х11. Тогда соответствующий ему граф имеет вид, представленный на рис. 8.

Рис. 8. ВББВВ-граф

Вторая программа позволяет выполнить сокращенный обход необходимых путей (простых цепей) FSSBDD-графа без построения этого графа, используя систему SSBDD-графов, соответствующих элементам схемы. Пусть строятся отрезки непротиворечивых путей с целью нахождения тестового набора. При заходе в вершину, соответствующую некоторому элементу схемы, выясняется, проходился ли SSBDD-граф этого элемента при построении тестового набора. Если да, то в строящихся отрезках содержится путь из корня SSBDD-графа в одну из его концевых вершин. Последнее означает, что булевой функции, реализуемой элементом уже приписано значение. Тогда нет необходимости заходить в SSBDD-граф рассматриваемого элемента. Достаточно из вершины, сопоставляемой элементу, пойти по соответствующей дуге, определяемой значением функции и типом инверсии вершины. Если вершина отмечена переменной без инверсии, то в случае единичного (нулевого) значения функции движемся по 1(0)-дуге, исходящей из этой вершины. В случае инверсной переменной - по 0(1)-дуге.

Если вершина, соответствующая элементу схемы, встречается впервые, то поиск пути продолжается внутри

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

При построении FSSBDD-графа в явном виде мы имеем возможность воспользоваться результатом обхода только V -подграфа, для которого ищется тестовый набор. Прохождение одних и тех же подграфов других элементов схемы не учитывается, поскольку это требует значительных дополнительных ресурсов памяти. Следствием этого факта является рост перебора при поиске тестового набора по FSSBDD-графу.

Программа 1, составленая Плешковым А.Г., реализует алгоритм построения тестовых наборов для константных неисправностей, используя систему SSBDD-графов. Результаты испытаний представлены в табл. и получены на ПЭВМ с 1700 МГ ц версией процессора АШопХР и 256Мб памяти.

Программа 2 составлена Алимасовым А. С., и реализует алгоритм построения тестовых наборов для константных неисправностей по FSSBDD-графу. Результаты испытаний представлены в табл. 1 и получены на ПЭВМ с 150 МГц версией процессора Репйит 1 и 64Мб памяти.

Имя файла Количество элементов в схеме Количес тво входов Количе- ство выходов Количество обнаруженных обнаружимых неисправностей Количество обнаруженных необнаружимых неисправностей Максимальное время поиска теста для необнаружи-мой неисправности Общее время построе- ния тестов

9symml (lif/9symml) (пр-ма 2) 319 9 1 1142 0 - 185,5

9symml (lif/9symml) (пр-ма 1) 57 9 1 бб2 0 - 2,0б2

С432 (С432. iscas) (пр-ма 1) 579 200 7 759 23 б523,7б5 1319б2,1 25

С499 (С499. iscas) (пр-ма 1) S59 41 32 24 0 - 27SS0

С880 (С880. iscas) (пр-ма 1) 1202 б0 2б 3230 0 - 2275,828

С1355 (С1355. iscas) (пр-ма 1) 1б87 41 32 42 0 - 4б439,б09

4. ЗАКЛЮЧЕНИЕ

Предложен и реализован метод синтеза тестовых мы. Метод основан на использовании ОДНФ функций,

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

стантных неисправностей произвольных элементов схе- представленными композицией SSBDD-графов.

ЛИТЕРАТУРА

1. BryantR.E. Graph-based algorithms for boolean function manipulation // IEEE transactions on computers. August 1986. Vol. C-35, N° 8, P. 677-691,

2. Плакк М.П., Убар Р.Р. Построение тестов цифровых схем при помощи модели альтернативных графов // Автоматика и телемеханика. 1980. № 5. С. 152-163.

3. Jutman A., Raik J., Ubar R. SSBDDs: Advantageous model and efficient algorithms for digital circuit modeling, simulation & test // Proc. of boolean problems, 5th international workshop edited by B.Steinbach. Freiberg university of mining and technology institute of computer science. September 19-20, 2002. Freiberg(Sachsen). P. 157-165.

4. Матросова А.Ю., Плешков А.Г., Убар Р.Р. Построение тестов для неисправностей комбинационных схем на основе анализа ортогональных дизъюнктивных нормальных форм, представляемых альтернативными графами // Автоматика и телемеханика (в печати). 2004.

5. МатросоваА.Ю. Алгоритмические методы синтеза тестов. Томск: Изд-во Том. ун-та, 1990. 206 с.

6. Евтушенко Н.В., Матросова А.Ю. О вероятностном подходе к вычислению оценок управляемости и наблюдаемости узла дискретного устройства // Автоматика и телемеханика. 1993. № 11. С. 152-160.

Статья представлена кафедрой программирования факультета прикладной математики и кибернетики Томского государственного университета, поступила в научную редакцию «Кибернетика» 15 апреля 2004 г.