ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
2014 Управление, вычислительная техника и информатика № 2 (27)
ПРОЕКТИРОВАНИЕ И ДИАГНОСТИКА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
УДК 004.312
А.Ю. Матросова, С.А. Останин, А.В. Бухаров, И.Е. Кириенко
ПОИСК ВСЕХ ТЕСТОВЫХ НАБОРОВ ДЛЯ НЕИСПРАВНОСТИ ЛОГИЧЕСКОЙ СХЕМЫ И ПРЕДСТАВЛЕНИЕ ИХ КОЕББ-ГРАФОМ
Работа выполнена при финансовой поддержке РНФ в рамках научного проекта (№ 14-19-00218).
Рассматриваются комбинационная схема и константная неисправность на полюсе одного из ее вентилей. Предлагается алгоритм построения множества всех тестовых наборов для заданной неисправности, ориентированный на компактное представление этого множества в виде ROBDD-графа. Алгоритм основан на методе достраивания конъюнкций, предназначенном для построения одного (любого) тестового набора для заданной неисправности комбинационной схемы. Его расширение на построение всех тестовых наборов, в том числе и комбинационных эквивалентов схем с памятью, обеспечивается применением операций над ROBDD-графами.
Ключевые слова: одиночные константные неисправности; тестовые наборы; ROBDD-графы.
Построение проверяющих тестов для комбинационных схем в классе одиночных константных неисправностей сводится к нахождению одного тестового набора для неисправности рассматриваемого класса. Последняя проблема широко исследовалась в России и за рубежом, были разработаны различные методы ее решения [1]. Нахождение всех тестовых наборов для неисправности из заданного класса может потребоваться, например, при поиске проверяющего теста минимальной длины. Решение обеих задач традиционными методами, т.е. поиск всех тестовых наборов и построение проверяющего теста минимальной длины, связано с большими вычислительными затратами и потребностью хранить огромные объемы информации. Поэтому на практике ограничиваются поисками нескольких или одного тестового набора для заданной неисправности и построением минимизированных проверяющих тестов, достаточно близких к минимальным.
В приложениях, связанных с тестированием неисправностей задержек путей схемы [2, 3], требуется находить все тестовые наборы, порождаемые конкретной конъюнкцией ДНФ, описывающей поведение схемы.
Известно, что поведение подсхемы в условиях включения ее в схему может быть описано частичной булевой функцией [4, 5]. Этот факт используется для минимизации схемы в целом. Множества единичных и нулевых наборов частичной функции подсхемы могут, на наш взгляд, быть представлены с помощью всех тестовых наборов для соответствующих константных неисправностей.
Один из подходов к синтезу частично программируемых логических схем высокой производительности [6] основан на описании поведения подсхемы, включенной в заданную схему, в виде реализации частичной функции. Реализаций может быть множество. Точное знание частичной функции позволяет найти более качественную в том или ином смысле реализацию и определить места включения в схему из вентилей программируемых блоков с целью маскирования возможных неисправностей. Речь идет о неисправностях, обнаруживаемых на заключительных этапах проектирования схем. Для коррекции схемы необходимо вернуться на ранние этапы проектирования, что существенно увеличивает стоимость проектирования схемы. Присутствующие в схеме резервные программируемые блоки позволяют маскировать обнаруженную неисправность и тем самым избежать возвращения к
ранним этапам проектирования. Исходя из вышесказанного, важно уметь находить множество всех тестовых наборов для заданной неисправности и компактно его представлять.
В данной работе предлагается находить множество всех тестовых наборов для константной неисправности на полюсе логического элемента на основе разработанного нами ранее метода достраивания конъюнкций. Используется представление схем и подсхем в виде ROBDD-графов. Построение множества всех тестовых наборов выполняется путем перемножения ROBDD-графов подсхем заданной схемы. Как известно, графовое представление булевых функций является более компактным по сравнению с аналитическими способами задания функций в виде ДНФ или КНФ, а операции над ROBDD-графами обладают полиномиальной сложностью.
В 1-м разделе работы обсуждается метод достраивания конъюнкций, что необходимо для понимания предлагаемого нами алгоритма построения всех тестовых наборов для заданной неисправности в комбинационной схеме. Во 2-м разделе предлагается алгоритм построения множества всех тестовых наборов, приводится пример, его иллюстрирующий, и обсуждается распространение алгоритма на комбинационный эквивалент схемы с памятью в условиях описания поведения последовательностной схемы системой частичных булевых функций.
1. Метод достраивания конъюнкций для построения одного (любого) тестового набора
В работе [1] нами был предложен метод достраивания конъюнкций, в котором выявлены возможности сокращения перебора при поиске одного (любого) тестового набора для одиночной константной неисправности полюса логического элемента схемы. Предполагается, хотя это и не обязательно, что схема построена из вентилей OR, NOR, AND, NAND, NOR, EXOR.
Заданы одна выходная комбинационная схема и неисправный полюс v. Обозначим через ф(Х), ф’(Х) булевы функции, реализуемые схемой в исправном и неисправном состояниях, гдеХ = {xb.. ,х„} -множество входных переменных схемы. Отыскание теста для данной неисправности сведем к отысканию корня булева уравнения
По заданной схеме С (рис. 1) и заданному неисправному полюсу V выделим подсхему (рис. 2), реализующую функцию с[Ху), при условии, что переменная V рассматривается в качестве входной наряду с переменными х1,...,х„. Выделим также подсхему (рис. 3), выходом которой является неисправный полюс V, а входами - переменные хь.. ,,х„. Эта подсхема реализует функцию ДХ).
D (ф) D (ф'') v D (ф) D (ф'') = l.
А
Рис. l. Комбинационная схема С
Рис. 2. Подсхема, реализующая функцию c(X,v)
Х\ Х2 Хз
Рис. 3. Подсхема, реализующая функцию ДХ)
Для схемы на рис. 2 функция c)(X,v) в виде ДНФ представляется выражением XIV V х1У V , а
функция АХ) - выражением х1 х2 V х3.
Обозначим через о тип неисправности на полюсе V, о е {0,1}.
Из построения функций ^(Х^) и АХ) следует, что
ф(Х) = д(Х, АХ)), фЧХ = $Х, о).
Обозначим через В(д) ДНФ функции ^(Х^). Представим эту ДНФ в виде К V К" V К ";вднф К - конъюнкции, не содержащие литер V, V; в ДНФ К включаются конъюнкции, содержащие литеру V; в ДНФ К - конъюнкции, содержащие литеру V. Если о = 0 (1), то К (К) обращается в ноль, а К (К) обращается в К (К ), причем ДНФ К (К ) получается из ДНФ К (К) вычеркиванием литеры V (V). Тогда для о = 0(1) В^) = К V К (К VКу ).
Пусть ДНФ К (К ) получается из К'’ (К) подстановкой вместо литеры V (V) функции Д (Х) (ДХ)), представленной в виде ДНФ. Обозначим через в набор значений переменных хь..., х„.
Теорема 1. в - тест для неисправности о = 0(1) и ф(в) = 1, если и только если
к'" (в) = 1 (К (в) = 1),
К (в) = 0,
К ' (в) = 0 (К' (в) = 0).
Доказательство этой теоремы приведено в работе [1].
Пусть ф(Х), ф'(Х), д(Х,у) - инверсии функций ф(Х), фУ(Х), ^(Х,'). Обозначим через В(д)
ДНФ функции д(Х,V).
Представим эту ДНФ в виде К V К V К .
В ДНФ К включаются конъюнкции, не содержащие литер V, V; в ДНФ К - конъюнкции, содержащие литеру V; в ДНФ К включаются конъюнкции, содержащие литеру V. Если о = 0(1), то К (К) обращается в ноль, а К (К) обращается в К (К ), причем К (К ) получается из К (К) вычеркиванием литеры V (V). Тогда для о = 0(1) В(ф1') = К VК (К VК ).
Пусть ДНФ К (К ) получается из К (К) подстановкой вместо литеры V (V) функции
Д(Х) (ДХ)), представленной в виде ДНФ. Тогда В(ф) = КVК VК .
Теорема 2. в - тест для неисправности о = 0(1) и ф(в) = 0, если и только если
К" (в) = 1 (г" (в) = 1),
К (в) = 0,
К"'(в) = 0 ( К (в) = 0).
Доказательство аналогично доказательству теоремы 1.
Алгоритм достраивания конъюнкций для о = 0(1)
1. Строим ДНФ D(g).
2. Получаем ДНФ Kv (Kv ).
3. Выбираем очередную конъюнкцию k из Kv (Kv ). Приписываем к ней буквы таким образом, чтобы полученная конъюнкция k* была ортогональна всем конъюнкциям из K v Kv (K v Kv ). Если k* построить не удается, возвращаемся к п. 3 алгоритма, с тем чтобы выбрать новую конъюнкцию из Kv (Kv ). Построив k*, переходим к п. 5 алгоритма. Если все конъюнкции из Kv (Kv ) просмотрены, переходим к п. 4 алгоритма.
4. Возвращаемся к п. 3 алгоритма, рассматривая вместо ДНФ D(q) ДНФ D(q), а вместо ДНФ K,
Kv , Kv , Kv , Kv , соответственно ДНФ K, K , K_v , K , K_v . Если все конъюнкции из Kv (Kv ) просмотрены, а тест не найден, значит, теста для рассматриваемой неисправности не существует.
5. Достраиваем конъюнкцию k* произвольным образом до конъюнкции ранга п. Полученная конъюнкция представляет тестовый набор р.
Достраивание конъюнкции k до k* сводится к отысканию одного корня булева уравнения D = 0. Левая часть уравнения получается из не ортогональных для k конъюнкций, принадлежащих ДНФ
K v Kv (K v Kv) или ДНФ K v K (K v K ), причем в этих конъюнкциях вычеркнуты литеры, используемые в k. При отыскании тестового набора описываемым здесь методом приходится достраивать очередную конъюнкцию k до k*, пока k* не будет найдена.
Рассмотрим пример.
D(q) = x1v v x1v v x4v , о = 0, Kv = x1v v x4v, Kv = x1v , Kv = x1 .
D(f) = x1x2 v x3, Kv = x1x2 v x1x3 v x3x4, k = k* = x1x2, P = 1 100.
Метод достраивания конъюнкций требует получения ДНФ функций D(g), Df). Пользуясь этими ДНФ и их инверсиями, можно найти тестовый набор для данной неисправности, не зная ДНФ D(y) исправной функции.
2. Метод достраивания конъюнкций для построения всех тестовых наборов
Воспользуемся идеями, которые лежат в основе алгоритма построения тестового набора для заданной неисправности, с тем чтобы найти все ее тестовые наборы и компактно их представить.
Сначала опишем процедуру выделения из исходной одной выходной схемы С подсхемы, реа-
лизующей функцию c(X,v), для которой заданный неисправный полюс является входным. Для этого выбрасываем из схемы элемент е, выход которого является полюсом v, и все связанные только с ним элементы схемы, а именно элементы, выходы которых связаны только с входами элемента е. Они образуют 1-й ярус. Пусть уже построено i ярусов. Тогда в (/+1)-й ярус включаются элементы, такие что выходы каждого элемента соединены только с входами элементов i-го и / или любых из предшествующих ярусов. Найденные таким образом элементы убираем из исходной схемы и получаем требуемую подсхему с входным полюсом v. Если неисправный полюс является входным для элемента е схемы, тогда рассматриваем связанный с ним выход предшествующего элемента g. Если элемент g не является точкой ветвления, то удаляем этот элемент вместе со связанными только с ним элементами схемы описанным выше способом. Если элемент g является точкой ветвления, то обрываем линию связи его с элементом е. Вход элемента е объявляем входом v схемы, реализующей функцию ^(X,v).
Как известно, BDD (Binary Decision Diagram) - это ориентированный граф без циклов. Его построение основано на разложении Шеннона, используемого в каждой текущей вершине v строящегося BDD-графа:
Здесь f - функция, реализуемая в полюсе v. Пунктирная дуга (0-дуга), исходящая из v, заходит в дочернюю вершину, в которой реализуется функция fX=0. Сплошная дуга (1-дуга) заходит в вершину, в которой реализуется функция fx‘ = . BDD называется упорядоченным графом (Ordered BDD), если порядок разложения по переменным фиксирован для функции в целом и не зависит от конкретной вершины, к которой применяется разложение. BDD называется сокращенным графом (Reduced BDD), если он не содержит ни изоморфных подграфов, ни таких внутренних полюсов v, для которых выполняется условие f*‘ 0 = fX = . Сокращенный и упорядоченный BDD (ROBDD) является каноническим представлением булевой функции относительно выбранного порядка разложения по переменным. Любой путь, связывающий корень BDD с 1-концевой вершиной, представляет конъюнкцию, а все такие пути - ортогональную ДНФ (ОДНФ) некоторой функции 5, представляемой ROBDD. ОДНФ есть дизъюнкция попарно ортогональных конъюнкций. Конъюнкции ортогональны, если в одной из них некоторая переменная присутствует со знаком инверсии, а в другой - без инверсии.
Обозначим через R ROBDD-граф, представляющий функцию c;(X,v). Будем иметь в виду, что конъюнкции, сопоставляемые путям, идущим от корня этого графа через 1-дугу корня и заканчивающиеся в 1-концевой вершине, представляют ОДНФ K. Конъюнкции, сопоставляемые путям, идущим от корня графа Rq через 0-дугу корня и заканчивающиеся в 1-концевой вершине, представляют ОДНФ Kv . ОДНФ, соответствующая Rq, представляется в виде q(X,v) = Kv v Kv, т.е. в ОДНФ отсутствуют конъюнкции, не содержащие литер v, v . ОДНФ Kv представляется отдельным ROBDD-графом Rv , корнем которого является вершина, в которую заходит 1-дуга графа Rq. ОДНФ Kv представляется отдельным ROBDD-графом Rv , корнем которого является вершина, в которую заходит 0-дуга графа Rq.
Обозначим через Rf ROBDD-граф, представляющий функцию f Будем иметь в виду, что конъюнкции, сопоставляемые путям, идущим от корня этого графа и заканчивающиеся в 1-концевой вершине, представляют ОДНФ функции f. Конъюнкции, сопоставляемые путям, идущим от корня этого графа и заканчивающиеся в 0-концевой вершине, представляют ОДНФ функции f .
Сначала предлагается вместо достраивания конъюнкции k из Kv (о = 0) до k*, как это делается в приведенном выше алгоритме, достраивать конъюнкцию k из Kv до всевозможных k', обеспечивая для каждой k' ортогональность всем конъюнкциям ДНФ Kv . Достраивание выполняется для каждой конъюнкции из Kv . Обозначим через R граф, представляющий инверсию ДНФ Kv . Он получается из Rv переименованием концевых вершин. Результат достраивания представляется графом R', получаемым перемножением графов Rv и R , т.е. R' = Rv R .
Получение всевозможных k*, задающих тестовые наборы для неисправности о = 0 при условии ф(Х) = 1, далее обеспечивается перемножением всех полученных из Kv конъюнкций k', представленных ROBDD R', и графа Rf, задающего функцию f: Rt1 = RfR' .
Алгоритм достраивания конъюнкций для построения всех тестовых наборов
1. Строим подсхему, реализующую функцию c(X,v), в которой полюс v является ее входом.
2. Строим ROBDD Rq для этой подсхемы, выбирая полюс v в качестве первого элемента в упорядоченном списке разложения по переменным. Представленный граф задает функцию c(X,v) и ее инверсию.
3. Строим ROBDD-графы Rf, Rv , Rv .
4. Рассматриваем неисправность на полюсе v: о = 0.
5. Получаем граф R^ = Rv R Rf (конъюнкции k из Kv достраиваются до конъюнкций k*), представляющий своими путями от корня к 1-концевой вершине все тестовые наборы, на которых
исправная схема принимает значение 1, а неисправная - 0 в присутствии неисправности о = 0 на полюсе v.
6. Меняем местами концевые вершины графа Я?. Получаем граф Я. Выполняем п. 5, рассматривая вместо ДНФ К , К 7 ДНФ К , К . Поменяв местами концевые вершины графа Я7 , получаем граф Яу , а затем ЯОВББ Я*0 = Я Я7 Яу, представляющий своими путями от корня к 1-концевой вершине все тестовые наборы, на которых исправная схема принимает значение 0, а неисправная — 1 в присутствии неисправности о = 0 на полюсе V.
7. Объединяем Я*0 и Я*1 графы, получаем граф Я0 = Я*0 V Я*1, представляющий своими путями от корня к 1-концевой вершине все тестовые наборы для неисправности о = 0 на полюсе V.
8. Рассматриваем неисправность о = 1 на полюсе V.
9. Строим ЯОВББ-графы Я у (меняя местами концевые вершины графа Яу), Я7 , Я7 .
10. Получаем граф Я*1 = Я7 Я* Я у (конъюнкции к из К7 достраиваются до конъюнкций к*), представляющий своими путями от корня к 1-концевой вершине все тестовые наборы, на которых исправная схема принимает значение 1, а неисправная - 0 в присутствии неисправности о = 1 на полюсе 7.
11. Меняем местами концевые вершины графа Я. Получаем граф Я?. Выполняем п. 10, рассматривая вместо ДНФ К , К ДНФ К , К . Поменяв местами концевые вершины графа Я7 , получаем граф Я , а затем ЯОВББ Я*0 = Я7 Я7 Я у, представляющий своими путями от корня к 1-
концевой вершине все тестовые наборы, на которых исправная схема принимает значение 0, а неисправная - 1 в присутствии неисправности о = 1 на полюсе 7.
12. Объединяем графы Я*0 , Я*1 , получаем граф Я1 = Я*0 VЯ*1, представляющий своими путями от корня к 1-концевой вершине все тестовые наборы для неисправности о = 1 на полюсе 7.
Рассмотрим пример. ДНФ О(с) представлена выражением
XV V XV V XV .
Соответствующий ей граф (рис. 4) построен с использованием следующего порядка разложения по переменным: 7, хь х2, х3, х4. ЯОВББ Яу (рис. 5) и все последующие графы строятся для того же порядка разложения по переменным:
О(у) = х1х2 V хз.
Рис. 4. КОВББ Я^ для Щс)
Рис. 5. ЯОВББ Яу для Б(/)
Пусть о = 0. Выделяем графы Я'' , Я'' из Я. Граф Я' получается из Я'' переименованием вершин. Граф Я^ = Я' Я' Яг представлен в виде ЯОВББ на рис. 6.
Меняем местами концевые вершины графа Я?, получаем граф Я?.
Граф Я‘0 = Я'Я'Яу представлен на рис. 7. ЯОВББ Я0 представлен рис. 8.
Предложенный метод может быть распространен на многовыходные комбинационные схемы. Если рассматриваемый неисправный полюс соединен с несколькими выходами схемы, то для каждого из выходов строится свой граф R° (R1), а затем находится ROBDD-граф, представляющий их объединение.
Построение множества всех тестовых наборов в схемах с памятью
Пусть комбинационная схема является комбинационной составляющей схемы с памятью (последовательностной схемы). Задание на синтез такой схемы, как правило, представляется системой частичных булевых функций. Каждая из функций ф задается множеством единичных и множеством нулевых наборов М'(ф), М°(ф). Эти наборы задают рабочую область функционирования последовательностной схемы. Поведение схемы вне рабочей области интереса не представляет. Поэтому множество тестовых наборов для заданной неисправности комбинационной составляющей последовательностной схемы следует ограничить рабочей областью функционирования схемы с памятью.
Зададим множества М'(ф), М°(ф) ROBDD-графами R^, R° соответственно. Тогда Rt1 , Rt0 представляются в виде Rt1 = rR Rv Rf , R‘° = R°RvRv Rf для неисправности о = 0. Аналогичным образом находятся множества тестовых наборов для неисправности о = 1.
Заключение
Предложен алгоритм нахождения всех тестовых наборов для константной неисправности полюса логического элемента комбинационной схемы или комбинационного эквивалента последовательностной схемы. Алгоритм позволяет представлять множество всех тестовых наборов для неисправного полюса в виде ROBDD-графа и сводится к перемножению ROBDD-графов, соответствующих подсхемам заданной схемы.
ЛИТЕРАТУРА
1. Матросова А.Ю. Метод обнаружения неисправности в синхронном устройстве // Автоматика и телемеханика. 1977. № 12.
С. 129-137.
2. Matrosova A.Yu., Melnikov A.V., Mukhamedov R.V., Ostanin S.A., Singh V. Selection of the flip-flops for partial enhanced scan
techniques // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2012. № 2(19). С. 112-120.
3. Matrosova A.Yu., Ostanin S.A., Melnikov A.V., Singh V. Observability Calculation of State Variable Oriented to Robust PDFs and
LOC or LOS Techniques // Proc. of IEEE East-West Design&Test Symposium (EWDTS 2012). Ukrain, 2012. P. 155-160.
4. Muroga S., Kambayashi Y., Lai H.C., Culliney J.N. The transduction method-design of logic networks based on permissible
functions // IEEE Trans. on Computers. 1989. V. 38, No. 10. P. 1404-1424.
5. Yamashita S., Sawada H., Nagoya A. SPFD: A new method to express functional permissibilities // IEEE Trans. On CAD. 2000.
V. 19, No. 8. P. 840-849.
6. Yamashita S., Yoshida H., Fujita M. Increasing yield using partially-programmable circuits // Proc. SASIMI. 2010. P. 237-242.
Матросова Анжела Юрьевна, д-р техн. наук, профессор. E-mail: [email protected] Останин Сергей Александрович, канд. техн. наук, доцент. E-mail: [email protected] Бухаров Александр Вениаминович. E-mail: [email protected] Кириенко Ирина Евгеньевна. E-mail: [email protected]
Томский государственный университет Поступила в редакцию 20 января 2014 г.
Matrosova Anzhela Y., Ostanin Sergei A., Bucharov Alexander V., Kirienko Irina E. (Tomsk State University, Tomsk, Russian Federation).
Generating all test patterns for a given stuck-at fault of a logical circuit and its ROBDD implementation.
Keywords: stuck-at faults; test patterns; ROBDD.
Test generation for stuck-at faults at the gate poles of a combinational circuit is reduced to finding one test pattern for each stuck-at fault. This problem is intensively investigated in Russia and abroad. Some effective methods for its solving have been developed. If we would like to get a minimal test for such faults, we need to find all test patterns for each fault and then to cover all faults with minimal subset of these test patterns. Unfortunately, this approach is very time consuming. Moreover, the number of test patterns for one fault may be very large that is why in practice, a test engineer finds any test pattern for each fault and minimize the test length using obtained subset of test patterns.
The problem of finding all test patterns for the given fault is used in many applications. It is known that the subcircuit behavior (a frame of a given circuit C) may be described with a partially specified Boolean function. This fact is used for minimizing the overall circuit as a whole and except for changing subcircuits consisting of gates with the proper CLBs during design of partially-programmable circuits and can be used for minimizing programmable arrays? Partially specified functions of subcircuits may be represented by all test patterns for corresponding stuck-at faults of the circuit. Thus, it is very important to represent all test patterns in a compact way.
This paper is devoted to solving the problem of finding all test patterns for a given stuck-at fault and compact presentation of such test patterns. The method that has been suggested by our scientific group, for finding one (any) test pattern, is modified in this paper. The modification is based on the following. We consider a stuck-at pole as the input of a subcircuit which output coincides with the output of the given circuit C. For that subcircuit the ROBDD R5 is built and the first variable of the Shannon decomposition during the ROBDD construction is the variable corresponding to the stuck-at pole. The order of other variables may be arbitrary.
From this ROBDD R5 we select ROBDDs Rv , Rv which roots are high and low nodes of the ROBDD R5 root. The subcircuit of C which output is the same stuck-at pole and inputs are inputs of the circuit C is represented as ROBDD Rf. The order of variables is the same for all constructed ROBDDs. The ROBDD representing all test patterns for the given stuck-at fault is derived by multiplying and summarizing some of above mentioned ROBDDs.
First, we briefly describe a method for finding one test pattern for a given stuck-at fault based on solving the proper Boolean equations and the representation of subcircuits as the SoPs (sum of products). Then a proposed algorithm for deriving all test patterns for a given stuck-at fault is described. The method can be extended to combinational equivalent of a sequential circuit. The example illustrating the algorithm is given.
REFERENCES
1. Matrosova A.Yu. A fault-detection method for a synchronous device. Avtomatika i telemekhanika - Automation and Remote Con-
trol, 1977, no. 12, pp.129-137. (In Russian).
2. Matrosova A.Yu., Melnikov A.V., Mukhamedov R.V., Ostanin S.A., Singh V. Selection of the flip-flops for partial enhanced scan
techniques. Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitel'naya tekhnika i informatika - Tomsk State University Journal of Control and Computer Science, 2012, no. 2(19), pp. 112-120. (In Russian).
3. Matrosova A.Yu., Ostanin S.A., Melnikov A.V., Singh V. Observability Calculation of State Variable Oriented to Robust PDFs
and LOC or LOS Techniques. Proc. of IEEE East-West Design&Test Symposium (EWDTS 2012). Ukrain, 2012, pp. 155-160.
4. Muroga S., Kambayashi Y., Lai H.C., Culliney J.N. The transduction method-design of logic networks based on permissible func-
tions. IEEE Trans. on Computers, 1989. Vol. 38, no. 10, pp. 1404-1424. DOI: 10.1109/12.35836
5. Yamashita S., Sawada H., Nagoya A. SPFD: A new method to express functional permissibilities. IEEE Trans. On CAD, 2000.
Vol. 19, No. 8. P. 840-849. DOI: 10.1109/43.856972
6. Yamashita S., Yoshida H., Fujita M. Increasing yield using partially-programmable circuits. Proc. SASIMI, 2010, pp. 237-242.