2009
ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА Управление, вычислительная техника и информатика
№ 1(6)
ПРОЕКТИРОВАНИЕ И ДИАГНОСТИКА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
УДК 681.326.7
Е.А. Николаева
ПОСТРОЕНИЕ ПРОВЕРЯЮЩИХ ТЕСТОВ ДЛЯ ОДИНОЧНЫХ И КРАТНЫХ КОНСТАНТНЫХ НЕИСПРАВНОСТЕЙ НА ПОЛЮСАХ ЭЛЕМЕНТОВ СХЕМ, СИНТЕЗИРОВАННЫХ НА БАЗЕ ПЛИС (ТРа4)-ТЕХНОЛОГИЙ ПО СИСТЕМЕ Free ВЯЯ-ГРАФОВ
Устанавливается, что для схем, построенных покрытием системы Free BDD-графов программируемыми логическими блоками (ПЛБ), не каждая одиночная константная неисправность на полюсах ПЛБ обнаружима. Проверяющий тест, обнаруживающий все кратные константные неисправности на полюсах ПЛБ, предлагается строить из проверяющего теста для одиночных константных неисправностей на полюсах ПЛБ (без перечисления кратных неисправностей) путем специального «размножения» его тестовых наборов.
Ключевые слова: ROBDD, Shared ROBDD, Free BDD, комбинационная схема, одиночные константные неисправности, кратные константные неисправности, проверяющий тест.
Известно, что построение тестового набора для неисправности требует большого объема вычислений [1 - 4]. Объем вычислений может быть сокращен, если на этапе проектирования схемы обеспечить ее контролепригодность: существование достаточно простой процедуры построения тестового набора для каждой из рассматриваемых неисправностей, возможно, в условиях расширения класса допустимых неисправностей. В этом отношении перспективным является синтез комбинационных схем по системе BDD-графов.
В частности, схемы, построенные по системе ROBDD-графов из мультиплексоров, оказались контролепригодными для широкого класса неисправностей [5 -8]. В [9] для таких схем был предложен метод синтеза, гарантирующий 100% полноту проверяющего теста для одиночных константных неисправностей на полюсах элементов (мультиплексоров) схемы и неисправностей задержек путей схемы. Контролепригодность рассматриваемых схем обеспечивалась введением дополнительного входа.
В [10] доказано, что для схемы, построенной путём покрытия системы ROBDD-графов программируемыми логическими блоками, для каждой одиночной константной неисправности на полюсах ПЛБ существует обнаруживающий её тестовый набор. Показано, что проверяющий тест для кратных неисправностей на полюсах программируемых логических блоков комбинационной схемы строится расширением проверяющего теста для одиночных неисправностей на полюсах блоков этой схемы.
В данной работе обсуждаются контролепригодные свойства схемы, построенной по системе Free BDD (Freely-ordered Binary Decision Diagram)-трафов покрытием ее программируемыми логическими блоками (ПЛБ). Такой синтез ориентирован на ПЛИС (программируемые логические интегральные схемы) - технологии, называемые в англоязычной литературе FPGA (Field Programmable Gate Ar-гау)-технологиями. Схемы, полученные путём покрытия логическими блоками системы Free BDD-графов, в ряде случаев могут быть проще, чем аналогичные схемы, построенные по системе ROBDD-графов.
Результаты, полученные в [10] для систем ROBDD-графов, частично распространяются на системы Free BDD-графов. В данной работе показано, что не для каждой одиночной константной неисправности на полюсах ПЛБ схемы, построенной по системе Free BDD-графов, существует обнаруживающий её тестовый набор. С учетом этого факта предложен метод построения тестового набора для кратной неисправности, являющийся модификацией метода, приведенного в [10]. Устанавливается, что проверяющий тест для кратных неисправностей на полюсах ПЛБ комбинационной схемы, полученной по системе Free BDD-графов, строится предложенным в работе [10] расширением проверяющего теста для одиночных неисправностей этой схемы на полюсах ПЛБ.
Во втором разделе статьи описывается подход к синтезу комбинационных схем по системе Free BDD-графов. В третьем разделе вводятся базовые модели неисправностей системы графов и предлагаются методы построения для них тестовых наборов. В четвертом разделе устанавливается связь между базовыми неисправностями и одиночными константными неисправностями комбинационной схемы. В пятом разделе предлагается метод синтеза тестового набора для кратной неисправности системы Free BDD-графов, представляемой объединением базовых неисправностей. В шестом разделе приводится алгоритм построения проверяющего теста для кратных неисправностей комбинационной схемы на базе проверяющего теста для ее одиночных неисправностей.
1. Синтез комбинационной схемы покрытием системы Free ВОО-графов программируемыми логическими блоками
BDD-граф это ориентированный ациклический граф, основанный на использовании разложения Шеннона в каждой нетерминальной вершине v:
fv = f =0 + f=1, (1)
fv‘ =0 = fv (x1,..., X = ^..^ Xn ) , fv‘=1 = fv (X — X = V-Xn ) .
Здесь функция f* 0 сопоставляется вершине, в которую заходит левая дуга, исходящая из v, а функция f* = сопоставляется вершине, в которую заходит правая дуга.
Нетерминальная вершина v BDD-графа отмечается индексом i переменной, по которой выполняется разложение функции fv. Функция fv представлена простыми цепями, соединяющими v с 1-концевой вершиной BDD-графа. (Под простыми цепями здесь и далее будем понимать последовательность дуг графа, проходимых в направлении ориентации, не содержащую повторяющихся вершин.) Простая цепь представляет конъюнкцию, составленную из переменных, индексы которых запи-
саны в проходимых простой цепью вершинах. Если из вершины, помеченной индексом i, простая цепь проходит далее по левой дуге, отмечаемой нулем, то переменной с этим индексом приписывается в конъюнкции знак инверсии, если по правой, отмеченной единицей, то знак инверсии у переменной отсутствует. Одновременно вершине v сопоставляется инверсия функции fv, представленная аналогичным образом простыми цепями, соединяющими v с 0-концевой вершиной. Итак, каждой нетерминальной вершине BDD-графа наряду с индексом переменной, по которой выполняется разложение, сопоставляется пара взаимно инверсных булевых функций; терминальным, 1, 0-концевым вершинам, сопоставляются соответственно константы 1, 0.
При построении Free BDD-графа (в отличии от ROBDD-графа) порядок переменных, по которым проводиться разложение, заранее не фиксирован. Free BDD-граф является сокращённым, т. е. он не содержит ни изоморфных подграфов, ни вершин v, левая и правая дуги которых заходят в один и тот же подграф. В каждой нетерминальной вершине переменная разложения выбирается по тому или иному критерию независимо от других нетерминальных вершин.
Любая простая цепь, соединяющая корень BDD-графа с 1-концевой вершиной представляет конъюнкцию ортогональной дизъюнктивной нормальной формы (ОДНФ) для функции f которую задает BDD-граф в целом. ОДНФ - это логическая сумма попарно ортогональных конъюнкций.
Любая простая цепь, соединяющая корень BDD-графа с 0-терминальной вершиной, образует конъюнкцию ОДНФ для инверсии функции f. Разложение Шеннона также может быть выполнено для fv :
J = Xf= + xf=1, (2)
где
—х,- =0 —
fv = fv (x1,..., x, = ^..^ xn ),
Tx = = fv (X1,..., x = 1,..., xn ) .
Пусть F = {/1,..., fm} есть система булевых функций, описывающих поведение комбинационной схемы. Построим Free BDD-граф для каждой булевой функции из F. Исключим изоморфные подграфы из Free BDD-графов, оставив по одному представителю. Совместим 1-концевые вершины различных функций в одну 1-концевую вершину и их 0-концевые вершины в одну 0-концевую вершину. В результате получим граф с m корневыми вершинами и двумя терминальными вершинами. Этот граф представляет систему m булевых функций. Назовем его системой Free BDD-графов.
Удалим из системы Free BDD-графов все дуги, заходящие в 0-концевую вершину, и получим Free BDD-граф, представляющий поведение комбинационной схемы. Назовем его Free BDD-графом схемы. Покроем его ПЛБ, создаваемыми на базе LUT (Look up Table)-технологий. Непременным условием покрытия является сохранение системы ОДНФ, порожденной Free BDD-графом схемы. Это значит, что, выполнив суперпозицию по полученной схеме с учетом запрета на поглощение и склеивание конъюнкций, а также запрета на удаление повторяющихся букв в конъюнкциях и повторяющихся конъюнкций, получим систему ОДНФ, содержащую все конъюнкции, порожденные простыми цепями, соединяющими корни Free BDD-графа схемы с его 1-концевой вершиной, и только их.
Один из возможных способов покрытия заключается в следующем.
1. Просматриваем Free BDD-граф схемы, начиная с наиболее удаленных от его корней нетерминальных вершин и заканчивая корневыми вершинами. Каждой вершине приписываем число переменных, от которых зависит сопоставляемая вершине функция.
2. Пусть к - максимальное число входных переменных (входных полюсов) ПЛБ. Двигаемся от наиболее удаленных от корней нетерминальных вершин. Находим вершины, в которых число переменных не более к, а каждая соседняя с ней и более близкая к корням вершина зависит не менее чем от (к + 1) переменной. Найденным вершинам сопоставляем ПЛБ, которые реализуют функции, соответствующие этим вершинам. Функция ПЛБ представляется в виде ОДНФ, порожденной покрытым фрагментом Free BDD-графа схемы.
3. Выходам ПЛБ сопоставляем внутренние переменные строящейся комбинационной схемы. Обозначим их w1,...,ws. Эти же переменные объявляются концевыми (терминальными) вершинами усеченного Free BDD-графа схемы наряду с его 1-концевой вершиной. Все простые цепи, соединяющие вершины w1,.,ws с 1-концевой вершиной Free BDD-графа схемы и покрытые ПЛБ строящейся схемы, удаляются. Если простая цепь начинается в некоторой нетерминальной вершине усеченного графа и заканчивается в его концевой вершине типа wi, то в соответствующую ей конъюнкцию добавляется переменная wi без знака инверсии.
4. Продолжаем покрытие усеченного Free BDD-графа схемы, выполняя шаги 1 - 3 и получая все более простые усеченные графы, пока множество непокрытых вершин не окажется пустым. В результате получаем комбинационную схему С. Отметим некоторые ее свойства.
а) Выход любого ПЛБ сопоставлен либо нетерминальной вершине, либо одному из корней Free BDD-графа.
б) Входам ПЛБ в общем случае сопоставлены как нетерминальные вершины Free BDD-графа схемы, соответствующие внутренним переменным схемы С, так и входные переменные функций системы, реализуемой Free BDD-графом схемы.
в) Если две или более дуги входят в нетерминальную вершину Free BDD-графа схемы, тогда фрагменты подграфа, корнем которого она является, могут одновременно входить в различные ПЛБ.
Free BDD-граф для системы из одной функции представлен на рис. 1, Free BDD-граф схемы изображен на рис. 2.
Рис 1. Free BDD-граф
Рис 2. Free BDD-граф схемы
Выполним покрытие Free BDD-графа схемы ПЛБ.
Пусть число входных переменных ПЛБ равно 4. Сначала выберем подграф, представленный на рис. 3, a, сопоставив ему ПЛБЬ ПЛБ2 соответствует подграфу, изображенному на рис. 3, b, и т.д.
w3 ) ^ w1
e
w4 j С w2
f
Рис 3. Подграфы, соответствующие ПЛБ1 (a), ПЛБ2 (b), ПЛБ3 (с), ПЛБ4 (d), ПЛБ5 (e), ПЛБ6 f) и ПЛБ7 (g)
1 2 3 4 6
Рис. 4. Схема С
d
a
с
5
2. Построение тестовых наборов для базовых моделей неисправностей системы Free В^^-графов
Сначала рассмотрим традиционные одиночные константные неисправности нетерминальных вершин (полюсов) системы.
Заметим, что любой нетерминальной вершине v системы Free BDD-графа со-
1 s' /'Х =0 /'Х =1 z' rXi —0 z*xi—1
ответствуют две функции: fv — xtfv i + Xifv i и fv — xt fv + Хг fv .
Неисправность константа 1 вершины v означает, что функция fv обращается в константу 1 и fv обращается в константу 0. Неисправность константа 0 означает, что функция fv обращается в константу 0 и fv - в константу 1. Эти неисправности
изменяют функцию f системы F, если j-й корень соединен с вершиной v. А именно: неисправность константа 1 расширяет область единичных значений функции f, а неисправность константа 0 уменьшает область единичных значенийf.
Пусть вершина v соединяется с j-м корнем системы Free BDD-графа.
Будем говорить, что набор а значений входных переменных xb..., xn представляется некоторой простой цепью системы Free BDD-графов, если он обращает в единицу конъюнкцию к, сопоставляемую этой простой цепи.
Неисправность проявляет себя в j-м корне системы Free BDD-графов, если в ее присутствии меняется значение j-й функции системы F.
Утверждение 1. Тестовый набор для неисправности константа 1 в нетерминальной вершине v представляется простой цепью, соединяющей j-й корень системы Free BDD-графов с ее 0-концевой вершиной и проходящей через нетерминальную вершину v. Тестовый набор всегда существует, на нем в присутствии неисправности изменяется значение j-й функции системы F с 0 на 1.
Доказательство следует из способа построения системы Free BDD-графов.
Разобьем простую цепь, представляющую тестовый набор, на два отрезка е и Z. Здесь е - простая цепь, соединяющая j-й корень системы Free BDD-графов с нетерминальной вершиной v, а Z - простая цепь, соединяющая вершину v с 0-конце-вой вершиной.
Утверждение 2. Тестовый набор для неисправности константа 0 в нетерминальной вершине v представляется простой цепью, соединяющей j-й корень системы Free BDD-графов с ее 1-концевой вершиной и проходящей через полюс v . Тестовый набор всегда существует, на нем в присутствии неисправности изменяется значение j-й функции системы F с 1 на 0.
Доказательство. Доказательство следует из способа построения системы Free BDD-графов.
Простая цепь аналогично предыдущему разбивается на отрезки е и Z.
Далее рассмотрим неисправности 01(10) дуг, исходящих из одной и той же нетерминальной вершины v системы Free BDD-графов. Будем называть их в дальнейшем 01(10)-неисправностями нетерминальной вершины v. Иногда уточнение, к какой вершине относится 01(10)-неисправность, будем опускать. Эти неисправности вместе с константными неисправностями нетерминальных вершин системы Free BDD-графов в дальнейшем будем называть базовыми неисправностями системы; дугу, заменяемую в системе Free BDD-графов константой 0(1), будем называть 0(1)-дугой.
Заметим, что левой дуге, исходящей их вершины v, соответствует переменная x , где i - индекс вершины v, а правой дуге соответствует переменная x.
Неисправность 10 означает, что переменная X заменяется константой 1, а переменная xi - константой 0 в выражениях (1), (2). В результате функция fv
обращается в fx=0, а функция fv обращается в fx . Аналогичным образом
неисправность 01 обращает функцию fv в fX=1 и функцию fv в fx .
Во Free BDD-графе возможно существование вершины v, отмеченной индексом i, для которой fx=0 — fx=1. Неисправность 10 (01) в вершине такого типа несущественна, так как при замене соответствующими константами переменных
xt и xi в выражениях (1), (2) значения функций fv и fv не изменится, что следует из выражений (1), (2).
Рассмотрим Free BDD-граф, изображённый на рис. 1. Разложение Шеннона для вершины v1, отмеченной индексом 1, имеет вид
fVl — xf1—'5+xf1—1■ (fVi — — f:;—0+Х1 f:;—1).
Здесь
f— — x2 x3 x4 x6 V x2 x3 x4 V x2 x3 x4 x5 x6 V x2 x3 x4 x5 V x2 x3 x4 V x2 x3 x4 x5 V x3 x4
f*1^1 — —2 x3 x4 x6 V X2 x4 V x2 x3 X4 X5 x6 V x2 x4 x5 V x2 x5.
Функции fx 0 и f— 1 представлены матрицами в коде Грея на рис. 5 и 6 соответ-
ственно. По представлениям функций /
Х1 —О
fx1 1 в коде Грея видно, что
0 = ^ 1 и соответствующие подграфы реализуют одну и ту же булеву функцию, но при этом не изоморфны. Для данного примера 10 (01)-неисправность в вершине у1 является несущественной.
| —4
— —3 - —2 ■л
— Г\ Г\ Ґ
■птп
_| • • □
5 А • • • • а
шшипппаил
Х6 Х5
Х4
Х3
Х2
&
—6 Х5
ппа
паи
Рис. 5. Представление fx 0
Рис. 6. Представление /—1
и
Рассмотрим вершину , , для которой f— 0 ^ f— 1.
* *
Пусть вершина , соединена с j-м корнем системы Free BDD-графов. K—. (K—)
i xi
представляют ОДНФ, конъюнкции которых задаются простыми цепями, соединяющими j-й корень и 1-концевую вершину через вершину , и дугу хг (хг ). В ка-
* *
ждую конъюнкцию из Kx (K—) входит переменная хг (—).
Выберем из K—* (K*) такие ОДНФ K—*(K**), которые соответствуют только
одной простой цепи р, соединяющей j-й корень с вершиной ,.
Пусть KXi (K-) получается из K**(K—-*) удалением переменной хг (—).
Теорема 1. а есть тестовый набор для существенной 01-неисправности нетерминальной вершины ,, причем неисправность проявляется на этом наборе в j-м
корне системы Free BDD-графов, f (а) = 1, если и только если К? (а) — 1 и
Kxi (а) —0.
Доказательство. Если простая цепь е выбрана и К— (а) — 1, то существует
xi
простая цепь из вершины v в 1-концевую вершину системы ROBDD-графов, сопоставляемая одной из конъюнкций множества К— (а), то есть f (а) = 1. В при-
xi
сутствии неисправности имеем: Kx (а) — 0, и Кх (а) превращается в Кх . Некоторые конъюнкции из Кх могут быть не ортогональны конъюнкциям из К— .
Для проявления неисправности на наборе а необходимо выполнение условия Кх (а) — 0 : оно гарантирует смену значения функции f с 1 на 0 в присутствии неисправности. Это условие обеспечивается подходящей простой цепью из вершины v через дугу, сопоставляемую x, в 0-концевую вершину системы ROBDD-графов.
Пусть имеем: К**(а) — 1 и Кх (а) — 0 . Тогда f (а) = 1. В присутствии неисправности дуга, сопоставляемая xi , обращается в 0 и, следовательно, fj (а) = 0, так как К1С, (а) — 0 . Теорема доказана.
Теорема 2. а есть тестовый набор для существенной 10-неисправности нетерминальной вершины v, причем неисправность проявляется на этом наборе в j-м корне системы Free BDD-графов, f (а) = 1, если и только если Кх (а) —1 и
К- (а) —0.
i
Доказательство аналогично доказательству предыдущей теоремы.
* *
Пусть Кх () представляют ОДНФ, конъюнкции которых задаются простыми цепями, соединяющими j-й корень и 0-концевую вершину через вершину v и дугу x (x). Выберем из Кx (K—) такие ОДНФ К^СК;;*), которые соответст-
вуют только одной простой цепи р, соединяющей у-й корень с вершиной V.
Пусть Кх_ (К—) получается из КX* (К**) удалением переменной х] ().
Теорема 3. а есть тестовый набор для существенной 01-неисправности нетерминальной вершины v, причем неисправность проявляется на этом наборе в j-м
корне системы Free BDD-графов, f (а) = 0, если и только если (а) — 1 и К x (а) —0.
Доказательство аналогично доказательству теоремы 1.
Теорема 4. а есть тестовый набор для существенной 10-неисправности нетерминальной вершины v, причем неисправность проявляется на этом наборе в j-м
корне системы Free BDD-графов, f (а) = 0, если и только если Кx (а) — 1 и К- (а) —0.
Доказательство аналогично доказательству теоремы 1.
Теорема 5. Для любой существенной неисправности и простой цепи є, соединяющей j-й корень системы Free BDD-графов с нетерминальной вершиной ,, существует тестовый набор а, обнаруживающий 01(10)-неисправность дуг, исходящих из вершины ,.
Доказательство. Сопоставляемая нетерминальной вершине функция f, существенно зависит от переменной х. Это следует из построения системы ROBDD-графов. Следовательно, существует булев вектор а, такой, что:
1. f— —1(а) —1, f—=0 (а) — О и I или
2. f——1 (а) — 0, fvx‘=0(а) — 1.
Условие 1 выполняется, когда тестовый набор а для 10-неисправности находится по теореме 2, а условие 2 выполняется, когда тестовый набор а находится для 01-неисправности по теореме 1. Аналогично, условие 1 выполняется, когда тестовый набор а для 01-неисправности находится по теореме 3, а условие 2 выполняется, когда тестовый набор а для 10-неисправности находится по теореме 4. Теорема доказана.
Приведём пример построения тестового набора для существенной неисправности 01 дуг, исходящих из вершины 2, сопоставляемой переменной разложения x2 (рис. у).
Множество конъюнкций, удовле-**
творяющих условию K—(а) — 1, представляется в виде Х1Х2 — Х4 , Х1Х2 Х3 Х4 —6 , а множество конъюнкций, удовлетворяющих условию K (а) — 0, представляется в виде x5, x5 x4, x3 x4 x5 х6 . Одна из простых цепей, соединяющих дугу Х2 с 0-концевой вершиной, порождается
конъюнкцией —1Х2 —3 Х4 и отмечена на РИс. 7. Построение тестового набора рис. у жирной линией. Одна из простых для неисправности 01 вершины 2
цепей, соединяющая вершину 5 с 1-кон-
цевой вершиной, на рис.7 обозначена штриховой линией и представляется конъ-юнкцей x5.
Пересечение рассматриваемых двух конъюнкций не пусто и представляется выражением x1X2 — х4 х5 . Любой набор а, обращающий эту конъюнкцию в 1, является тестовым набором для данной неисправности.
З. Построение тестового набора для одиночной неисправности комбинационной схемы
Отметим, что из способа построения комбинационной схемы по системе Free BDD-графов следует, что одиночная константная неисправность 0(1) выходного полюса , ПЛБ соответствует базовой неисправности 0(1) подходящей нетерминальной вершины системы Free BDD-графов.
Одиночная неисправность 0(1) входного полюса v ПЛБ, сопоставляемого внутреннему полюсу комбинационной схемы, также соответствует базовой неисправности 0(1) подходящей нетерминальной вершины системы. В этом случае тестовый набор представляется простой цепью е, соединяющей j-й корень системы Free BDD-графов с нетерминальной вершиной системы, сопоставляемой выходу неисправного ПЛБ, затем с нетерминальной вершиной, сопоставляемой рассматриваемому неисправному входному полюсу v этого ПЛБ, и простой цепью Z, соединяющей полюс v с одной из концевых вершин системы.
Одиночная неисправность 0(1) входного полюса ПЛБ, непосредственно связанного с входом xi комбинационной схемы, представляется базовыми неисправностями 01(10), т. е. неисправностями дуг, исходящих из нетерминальных вершин системы Free BDD-графов, помеченных индексом i. Речь идет о нетерминальных вершинах, покрытых этим ПЛБ.
Может оказаться недостаточным рассматривать только одну вершину, помеченную индексом i и покрытую ПЛБ, как это делается для схем, полученных покрытием системы ROBDD-графов программируемыми логическими блоками. Если построение теста для очередной рассматриваемой вершины невозможно, то не обходимо перейти к следующей вершине, помеченной тем же индексом, если таких вершин больше нет, то данная неисправность несущественна, т.е. она не влияет на функционирование подсхемы, сопоставляемой j-му выходу соответствующего ПЛБ. Итак, не для каждой одиночной неисправности входного полюса ПЛБ существует тестовый набор, ее обнаруживающий.
Тестовый набор для существенной 01(10)-неисправности представляется простой цепью е, соединяющей j-й корень системы Free BDD-графов с нетерминальной вершиной v, простой цепью Z, соединяющей вершину v через 0-дугу с 0 или 1-концевой вершиной системы Free BDD-графов, и простой цепью п, соединяющей вершину, в которую заходит 1-дуга с инверсной концевой вершиной этой системы. Здесь имеется в виду разметка символом 1(0) дуги в присутствии неисправности.
Если в случае неисправности входного полюса ПЛБ, непосредственно соединенного с входом схемы, из соответствующей вершины v Free BDD-графа схемы, покрытой ПЛБ, исходит единственная дуга, то возможны две ситуации.
Неисправность сводится к обращению в константу 1 переменной, сопоставляемой этой дуге. Тогда тестовый набор задается простой цепью е, соединяющей j-й корень системы графов с вершиной v простой цепью Z, состоящей из единственной дуги, соединяющей v с 0-концевой вершиной системы Free BDD-графов, и простой цепью п, начинающейся в вершине, в которую заходит неисправная дуга, и заканчивающейся в 1-концевой вершине. Будем иметь в виду, что в исправном состоянии на j-м корне системы достигается значение 0, а в неисправном - значение 1.
Если неисправность сводится к обращению в константу 0 переменной, сопоставляемой этой дуге, то тестовый набор задается простой цепью е, соединяющей j-й корень с нетерминальной вершиной v, и простой цепью Z, соединяющей v с 1-концевой вершиной системы Free BDD-графов и проходящей через рассматриваемую дугу. Заметим, что в исправном состоянии на j-м корне системы достигается значение 1, а в неисправном - значение 0.
Покажем, что проверяющий тест для всевозможных кратных неисправностей, представленных совокупностью одиночных неисправностей на полюсах ПЛБ комбинационной схемы, можно получить расширением проверяющего теста для
одиночных неисправностей. Длина проверяющего теста для кратных неисправностей есть линейная функция длины проверяющего теста для одиночных неисправностей.
4. Построение тестового набора для кратной неисправности, являющейся объединением базовых моделей неисправностей системы Free В^^-графов
Рассмотрим кратную неисправность ¥кр, составленную из произвольного множества vb..., vs базовых неисправностей системы Free BDD-графов. Составляющие неисправности множества представляются 0(1)- и 01(10)-неисправностями системы.
Базовой 01(10)-неисправности сопоставлена нетерминальная вершина, из которой исходят неисправные дуги. Будем говорить, что эта вершина представляет 01(10)- неисправность в системе Free BDD-графов и называть неисправные дуги 0(1)-дугами в соответствии с их разметкой в присутствии неисправности. Некоторые из базовых 01(10)-неисправностей могут быть несущественными. При рассмотрении базовых 0(1)-неисправностей нетерминальных вершин системы Free BDD-графов будем иметь в виду, что сами вершины являются представителями этих неисправностей. Неисправности и представляющие их вершины в дальнейшем будем отождествлять, используя термин «неисправная вершина», если это удобно.
Пара базовых неисправностей связана отношением подчинения, если представляющие эти неисправности вершины лежат на одной и той же простой цепи, соединяющей некоторый корень системы Free BDD-графов с ее 1(0)-концевой вершиной.
Базовая неисправность, представленная ближайшей к корню вершиной, называется подчиняющей; неисправность, представленная более удаленной вершиной, - подчиненной.
Базовую подчиняющую неисправность vi будем называть доминирующей по отношению к подчиненной базовой неисправности vj, если в присутствии неисправности vi система Free BDD-графов представляет ту же систему булевых функций, что и в присутствии кратной неисправности (vi, vj). Последнее означает, что одиночная и кратная неисправности эквивалентны и, следовательно, множества обнаруживающих их тестовых наборов совпадают. Если доминирующая неисправность vi является несущественной, то кратная неисправность (vi, vj) также несущественна.
Из сказанного следует, что построение тестового набора для существенной кратной неисправности (vi, vj) можно заменить построением тестового набора для неисправности v,. Если доминирующая неисправность vi является несущественной, то множество тестовых наборов для кратной неисправности (vi, vj) пусто.
Вместо подчиненной базовой неисправности vj можно рассматривать подмножество подчиненных базовых неисправностей Vj, введя аналогичное отношение доминирования между vi и Vj.
Рассмотрим базовую 0(1)-неисправность vi из Vкр. Ее проявление в системе Free BDD-графов приводит к совмещению вершины vi с 0(1)-концевой вершиной системы.
Пусть Vi - множество подчиненных vi одиночных неисправностей из Vкр, не содержащее vi. Вершина vi является корневой для подграфа, в пределах которого находятся неисправности из Vi.
Теорема 6. Базовая 0(1)-неисправность vt является доминирующей по отношению к любой базовой неисправности из Vi .
Доказательство. Поскольку неисправность из V, вносит изменение в поддерево с корнем в вершине vi, а рассматриваемое поддерево исчезает в присутствии неисправности v, то утверждение теоремы очевидно. Теорема доказана.
Следствие. Базовая 0(1)-неисправность vi является доминирующей по отношению к кратной неисправности Vi.
Рассмотрим базовую 01(10)-неисправность v,. Ее проявление приводит к отсоединению от vi, путем обрыва 0-дуги, подграфа, корнем которого является вершина, в которую эта дуга заходит, и совмещению вершины vi с вершиной, в которую заходит 1-дуга неисправности v,. Это означает, что при возникновении 01-
неисправности вместо функции fv—x1fvx‘—0 + —1 (fv—xlfx + xj^ ) в
вершине vt реализуется функция f%i —1 (f ' ), при этом для несущественной неисправности имеем fv — fvx—1 (fv — fx У
Аналогичная ситуация имеет место для 10-неисправности.
Из построения системы Free BDD-графов следует, что отсоединяемый за счет рассматриваемой неисправности подграф может остаться связанным с корневыми вершинами системы Free BDD-графов через вершины, отличные от v,. Обозначим
через Vi0 множество неисправностей из Vi, лежащих в отсоединяемом подграфе.
Будем говорить, что подграф подчинен 0-дуге.
Обозначим через V} множество неисправностей из V, подчиненных 1-дуге неисправности vi. Неисправности множества Vi1 лежат в подграфе, корнем которого является вершина, в которую заходит 1-дуга. Множества V,, V® могут пересекаться при наличии общих вершин в соответствующих им подграфах. Заметим, что если V1 пусто, то базовые неисправности из V,0 не подчинены 1-дуге.
Теорема 7. Базовая 01(10)-неисправность v, является доминирующей по отношению к множеству неисправностей Vi0 , если Vi1 пусто.
Доказательство. Так как Vi1 пусто, то в присутствии неисправности из графа
удаляются все вершины, соответствующие неисправностям из Vi0 , значит Vi0 не влияет на поведение неисправной функции. Теорема доказана.
Теорема 8. Кратная неисправность (v,, V1) является доминирующей по отношению к кратной неисправности (vi, Vi1 , Vi0 ).
x 1 x ■ — 1
Доказательство. Функция и ее инверсия, полученные из fx'— (f' ) для 01-
x —0 — xi—0
неисправности (из f i (f ) для 10-неисправности) внесением неисправно-
стей из Vi1 , совпадают с функциями, полученными аналогичным образом для кратной неисправности (V,f, V1), так как неисправности из V,f, не совпадающие с неисправностями из V1, на функцию fx —1 (fx—0) никакого влияния не оказывают. Таким образом, в присутствии обеих неисправностей реализуется одна и та же функция и соответствующая ей инверсия. Теорема доказана.
Из теорем 7, 8 заключаем, что неисправности множества V® можно исключить из рассмотрения при анализе влияния подчиненных неисправностей на 01(10)-неисправность vi.
Напомним, что тестовый набор, обнаруживающий базовую существенную 01(10)-неисправность, представляется простой цепью е, соединяющей корень системы Free BDD-графов с вершиной v, простой цепью Z (основной), соединяющей 0-дугу с 1(0)-концевой вершиной системы Free BDD-графов, и простой цепью п (дополнительной), соединяющей вершину, в которую заходит 1-дуга, с инверсной концевой вершиной. Дополнительная простая цепь порождает конъюнкцию, ортогональную каждой конъюнкции, представленной простой цепью, соединяющей вершину, в которую заходит 1-дуга, с 1(0)-концевой вершиной системы Free BDD-графов.
Будем говорить, что неисправность vj разрушает тестовый набор а для существенной неисправности v,, если тестовый набор для v, перестает быть таковым, когда к v, добавляется неисправность vj.
Для несущественной подчиняющей неисправности построение тестового набора невозможно, однако в паре с существенной подчиненной неисправностью кратная неисправность может оказаться существенной.
Теорема 9. Базовая, подчиненная 0(1)-неисправность или подчиненная существенная 01(10)-неисправность нетерминальной вершины vj из V1 может быть об-наружима в присутствии несущественной базовой, подчиняющей 01(10)-неис-правности vi .
Доказательство. В рассматриваемом случае, за счёт 01(10)-неисправности v, происходит совмещение вершины v, и вершины, в которую заходит 1-дуга. Это значит, что наличие существенной неисправности из Vi1 может изменить некоторые функции (сопоставляемые этим функциям корни системы соединены с вершиной v,) системы Free BDD-графов. Теорема доказана.
Теорема 10. Базовая подчиненная 0(1)-неисправность нетерминальной вершины vi из V1 может разрушить тестовый набор а для существенной базовой, подчиняющей 01(10)-неисправности v,.
Доказательство. Пусть тестовый набор а, обнаруживающий существенную 01(10)-неисправность, обращает в единицу основную простую цепь Z, соединяющую 0-дугу с 1-концевой вершиной, и дополнительную простую цепь п, соединяющую вершину, в которую заходит 1-дуга, с 0-концевой вершиной. Наличие в простой цепи, начинающейся в вершине, в которую заходит 1-дуга, и заканчивающейся в 1-концевой вершине, базовой 1-неисправности может нарушить условие ортогональности конъюнкций, сопоставляемых неисправному пути (за счет исчезновения некоторых букв в сопоставляемой этому пути конъюнкции) и пути п. Теорема доказана.
Теорема 11. Базовая, существенная, подчиненная 01(10)-неисправность vj из Vi1 может разрушить тестовый набор для существенной базовой, подчиняющей 01(10)-неисправности v,.
Доказательство. Доказательство аналогично предыдущему с той лишь разницей, что в конъюнкции, сопоставляемой неисправному пути, может исчезнуть только одна буква. Теорема доказана.
Теорема 12. Тестовый набор а, построенный для базовой, подчиненной, 0(1)-или существенной 01(10)-неисправности vi, может быть разрушен другой базовой, подчиняющей неисправностью vi из Укр, если представляющая последнюю неисправность вершина принадлежит простой цепи е, соединяющей v, с j-м корнем системы Free BDD-графов, и эта простая цепь участвует в представлении тестового набора а.
Доказательство. Пусть в присутствии неисправности vi значение функции fj меняется на наборе а с 1 на 0, и vi есть базовая 1-неисправность, представляемая вершиной простой цепи е (простая цепь участвует в представлении тестового набора), тогда последняя неисправность разрушает тестовый набор а. Теорема доказана.
Вернемся к заданному множеству кратных неисправностей ¥кр. Если в этом множестве содержится базовая 0(1)-неисправность vs, не подчиненная никакой другой неисправности этого множества на некоторой простой цепи е, соединяющей vs с одним из корней системы Free BDD-графов, то тестовый набор а, обнаруживающий эту неисправность и представленный, в том числе, простой цепью е, является тестовым набором для неисправности Укр.
Если не существует базовой 0(1)-неисправности с такими свойствами, то выбираем базовую 01(10)-неисправность v,, не подчиненную никакой другой неисправности на некоторой простой цепи е, соединяющей vi с одним из корней системы Free BDD-графов. Для нее строим Gvi граф следующим образом.
Построение Gvi графа:
1. Исключаем 0-дугу, исходящую из v, вместе со всеми подчиненными ей вершинами и дугами, не подчиненными одновременно 1-дуге, исходящей из v,. Объявляем v, корнем подграфа, выделяемого из системы Free BDD-графов.
2. В полученном подграфе рассматриваем ближайшие к v, вершины, представляющие базовые 01(10)-неисправности из V. Исключаем в каждой из них 0-дугу вместе с подчиненными ей дугами и вершинами, не подчиненными одновременно подграфам с корнями, в которые заходят 1-дуги рассматриваемого подмножества неисправностей. Будем говорить, что вершины этих неисправностей образуют первый уровень близости к vi. Далее аналогичным образом поступаем с вершинами второго, третьего и т. д. уровней близости, представляющими базовые 01(10)-неисправности из Vi, пока не исчерпаем все из них. В результате построим граф Gvi.
Теорема 13. Граф Gvi связен и содержит 0,1-концевые вершины.
Доказательство. Утверждение теоремы следует из того факта, что в очередном связном подграфе, с корнем в вершине v, и 0,1-концевыми вершинами, при рассмотрении очередной вершины, представляющей 01(10)-неисправность из Vi, с целью построения Gvi, сохраняется одна из двух дуг вместе с подграфом, соединяющим эту дугу с 0,1-концевыми вершинами. Теорема доказана.
Отметим, что граф Gvi определяется только парой vi, Vi и не зависит от выбранной простой цепи е.
Алгоритм построения тестового набора с использованием Gvi графа:
1. В графе Gvi находим вершину vs, представляющую базовую 0(1)-неисправ-ность из У,, если она существует, и простую цепь 5, соединяющую эту вершину с vi, в пределах графа Gvi. Отметим, что эта простая цепь может содержать вершины, сопоставляемые базовым 01(10)-неисправностям из V,. Их наличие приводит к исключению некоторых букв из конъюнкции, сопоставляемой простой цепи 5 в присутствии неисправности ¥кр.
2. Находим простую цепь Z, соединяющую vs с 1(0)-концевой вершиной. Если построение Z по Gvi невозможно, цепь строиться по системе Free BDD-графов. Эта цепь также может содержать вершины, сопоставляемые базовым 01(10)-неисправностям, их наличие приводит к исключению некоторых букв из конъюнкции, сопоставляемой простой цепи Z в присутствии неисправности V^.
3. Вектор а, представляемый цепями 5, є, Z, является тестовым набором для неисправности V^.
4. Если Vi не содержит базовых 0(1)-неисправностей в графе Gvi, то находим в нем ближайшую к 0(1)-концевой вершине базовую 01(10)-неисправность vs, для которой в подграфе с корнем в vs не содержится неисправностей из V,.
5. Для нее отыскиваем простую цепь 5, соединяющую vs с уг в дереве Gvi. Заметим, что эта простая цепь может содержать вершины, сопоставляемые базовым 01(10)-неисправностям из Vi. Их наличие приводит к исключению некоторых букв из конъюнкции, сопоставляемой простой цепи 5 в присутствии неисправности V^.
6. Далее находим по системе Free BDD-графов основную простую цепь Z, соединяющую 0-дугу, исходящую из vs, с 1(0)-концевой вершиной. Дополнительная простая цепь п, соединяющая вершину, в которую заходит 1-дуга, исходящая из vs, с инверсной концевой вершиной, содержится в Gvi. Если выбранная неисправность несущественна, т.е. построение тестового набора невозможно, то рассматривается следующая за vs ближайшая к 0(1)-концевой вершине базовая 01(10)-неисправность. Дополнительная простая цепь п для таких неисправностей проходит через 1-дугу несущественной подчинённой неисправности. Цепь п не содержит вершин, сопоставляемых базовым существенным неисправностям из Vi. В результате либо будет найдет тестовый набор, обнаруживающий кратную неисправность, либо кратная неисправность оказывается несущественной.
7. Вектор а, представляемый цепями 5, є, Z, П, является тестовым набором для неисправности V^.
Рассмотрим пример (рис. В).
rn
vA)
ґ-L \ M (4) /
C2J V \ /1/7
\ \(ЛЯ\\
Ш
Рис В. Неисправный Free BDD-граф
Рис 9. Граф Gv4
Здесь темные вершины 4 и 5 представляют 10- и 1-неисправности соответственно. 10-неисправность у4 не подчинена ни одной неисправности вдоль простой
цепи, обозначенной жирной линией. 1-неисправность у5 принадлежит V . Эта не-
исправность может разрушить тестовый набор для 10-неисправности v4. Следовательно, нужно строить тестовый набор для 1-неисправности v4, используя граф Gv4 (рис. 9). Простая цепь Z (x5х6) этого графа, отмеченная штриховыми линиями, вместе с простой цепью е (x1 x2x3) Free BDD-графа (рис. 8), отмеченной жирной линией, и простой цепью 5, соединяющей вершины 4 и 5 графа Gv , представляют тестовые наборы для рассматриваемой кратной неисправности, соответствующая конъюнкция имеет вид x1 x2x3x4x5x6. В частности, булев вектор, обращающий в 1 все вышеперечисленные цепи, имеет вид
Xj x2 x3 x4 x5 x6 0 1 1 0 0 1.
Заметим, что любая рассматриваемая кратная константная неисправность на полюсах ПЛБ комбинационной схемы представляется соответствующей кратной неисправностью Укр системы Free BDD-графов. Следовательно, тестовый набор для ¥кр является тестовым набором для кратной константной неисправности этой комбинационной схемы.
5. Построение проверяющего теста для кратных неисправностей комбинационной схемы
Кратная неисправность на полюсах комбинационной схемы представляется объединением соответствующих базовых неисправностей системы Free BDD-графов, сопоставляемых одиночным неисправностям на этих полюсах. Среди базовых неисправностей могут оказаться несущественные неисправности
Выбрав произвольную кратную неисправность Укр, мы можем не найти для нее тестового набора среди построенных независимо друг от друга тестовых наборов для составляющих ее одиночных базовых, существенных, неисправностей. Это связано с тем, что для обнаружения кратной неисправности требуется строить не любой тестовый набор для подходящей одиночной базовой неисправности, составляющей кратную, а набор, представленный, в том числе, специальной простой цепью, заходящей в неисправную вершину этой базовой неисправности. Если рассматривать тестовые наборы для подходящей одиночной базовой неисправности, порожденные всевозможными простыми цепями, соединяющими неисправную вершину с одной и той же корневой вершиной, то среди тестовых наборов окажется и нужный нам для рассматриваемой кратной неисправности.
Из сказанного следует, что произвольный проверяющий тест для одиночных константных неисправностей ПЛБ схемы может не быть проверяющим тестом для кратных неисправностей этой схемы. Однако произвольный проверяющий тест можно расширить до проверяющего теста для кратных неисправностей схемы. Для этого нужно рассмотреть все сопоставляемые константным неисправностям на полюсах ПЛБ базовые неисправности системы Free BDD-графов и их неисправные вершины. Для каждой из вершин необходимо выполнить следующие процедуры.
1. Найти все простые цепи типа е, соединяющие выбранную неисправную вершину v, с j-м корнем системы Free BDD-графов, причем в случае, если рассматриваемая 0(1)-неисправность сопоставляется входному полюсу этого ПЛБ, то эти простые цепи одновременно проходят через полюс, соответствующий выходу неисправного ПЛБ.
2. Найти множество конъюнкций K, представляемое этими цепями (из построения системы Free BDD-графов следует, что конъюнкции множества попарно ортогональны).
3.Выполнить шаги 1, 2 для всех корней системы Free BDD-графов. Найти минимальное по мощности множество K. Полученное множество обозначим как K*. Пусть q - его мощность. Построить тестовые наборы (их число равно q) для неисправности vj следующим образом.
а) Добавить к каждой конъюнкции из K* конъюнкции, порожденные простыми цепями Z, П в случае базовой 01(10)-неисправности v,■ и простой цепью Z в случае базовой 0(1)-неисправности. Получим q конъюнкций kb..., kq .
б) Найти наборы а1,., aq от переменных xb..., хи, обращающие в единицу каждую из конъюнкций kb..., kq соответственно. Эти наборы являются тестовыми. Именно они включаются в проверяющий тест, обнаруживающий все кратные неисправности комбинационной схемы.
Выполнив шаги 1 - 3 для всех порожденных комбинационной схемой и ее программируемыми логическими блоками базовых неисправностей, получим проверяющий тест для кратных неисправностей комбинационной схемы.
В заключение рассмотрим пример (рис. 10).
Рис. 10. Неисправный Free BDD-граф
Пусть в вершине 4 имеет место одиночная константная базовая 0-неисправность. Она сопоставляется константной неисправности на выходе ПЛБ5 построенной выше комбинационной схемы C (см. рис. 4). Существуют две простые цепи, соединяющие эту вершину с корнем графа (рис. 10). Им соответствуют конъюнкции x1 x2 X5 и x1 X2 .
Простой цепи Z для данной неисправности сопоставлена конъюнкция из одной переменной x4 . Примем во внимание цепи, соединяющие вершину 4 с корнем. В результате получим две конъюнкции, представляющие тестовые наборы: x1 x2 x4 X5 и x1 x4X2. Выбрав по одному тестовому набору для каждой конъюнкции, включаем их в проверяющий тест для кратных неисправностей некоторой схемы. (Выбираемый тестовый набор обращает в единицу соответствующую конъюнкцию).
Заключение
Установлена связь между базовыми неисправностями системы Free BDD-графов и одиночными константными неисправностями на полюсах ПЛБ комбинационной схемы, полученной покрытием ПЛБ соответствующего графа. Предложен метод построения тестового набора для кратной неисправности, представляемой множеством базовых неисправностей системы Free BDD-графов. Показано, что проверяющий тест для кратных неисправностей на полюсах программируемых логических блоков комбинационной схемы строится расширением проверяющего теста для одиночных неисправностей на полюсах блоков этой схемы. Каждый тестовый набор для одиночной неисправности заменяется множеством мощности q тестовых наборов для этой неисправности. Здесь q - число простых цепей от неисправной вершины до некоторого выбранного корня системы Free BDD-графов. Алгоритм построения проверяющего теста для кратных неисправно -стей сводится к построению тестового набора для каждой одиночной неисправности и «настройке» его на соответствующие корни системы Free BDD-графов.
ЛИТЕРАТУРА
1. Armstrong D.B. On finding a nearly minimal set of fault detection tests for combinational logic nets // IEEE Trans. Electr. Comp., EC. 1966. V. 15. Ыо. 1. P. 312 - 321.
2. Roth G.P., Boricios W.G., Shneider P. R. Programmed algorithm to compute tests to detect and distinguish between failures in logic circuits // IEEE Trans. Electr. Comp., EC. 1967. V. 16. P. 567 - 580.
3. Матросова А.Ю. Алгоритмические методы синтеза тестов. Томск, 1990. 206 с.
4. Ubar R. Test generation for digital circuits using alternative graphs // Proc. Tallinn Technical University. 1976. Na 409. P. 75 - 81.
5. Ashar P., Devadas S., and Keutzer K. Gate-delay-fault testability properties of multiplexor-based networks // Int. Test Conf. 1991. P. 887 - 896.
6. Ashar P., Devadas S., and Keutzer K. Testability properties of multilevel logic networks derived from binary decision diagrams. Advanced research in VLSI // US Santa Cruz. 1991. P. 33 - 54.
7. Ashar P., Devadas S.,and Keutzer K. Path-delay-fault testability properties of multiplexor-based networks // INTEGRATION, the VLSI Jour. 1993. V. 15 (1). P. 1 - 23.
8. Becker B. Synthesis for testbility: Binary decision diagrams // Symp. Theor. Aspects Comp. Sci. V. 577 of LNCS. Springer Verlag, 1992. P. 501 - 512.
9. Drechsler R., Shi J, Fey G. Synthesis of fully testable circuits from BDDs // IEEE Trans. CAD. V. 23 (3). P. 440 - 443.
10. Матросова А.Ю., Луковникова Е.С. Построение проверяющих тестов для одиночных и кратных неисправностей на полюсах элементов схем, синтезированных на базе ПЛИС (FPGA)-технологий // Вестник ТГУ. Приложение. 2007. № 23. C. 229 - 241.
Статья представлена кафедрой информационных технологий в исследовании дискретных структур радиофизического факультета Томского государственного университета. Поступила в редакцию 9 января 2009 г.