УДК 681.325:519.713
ДЕДУКТИВНЫЙ МЕТОД КУБИЧЕСКОГО МОДЕЛИРОВАНИЯ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ УСТРОЙСТВ
ХАХАНОВ В.И., ШКИЛЬ А.С., ХАНЬКО В.В.
Предлагается метод дедуктивного моделирования константных логических неисправностей для цифровых устройств (ЦУ), где функциональные элементы представлены в виде кубических покрытий. Впервые получено аналитическое выражение формального анализа покрытия на тест-векторе для транспортирования входных списков неисправностей на выход примитива. Метод инвариантен по отношению к формам представления цифровых схем, задающим способы описания вентилей, функциональных элементов, алгоритмов. Известные дедуктивные формулы анализа вентильных схем являются частным случаем полученного выражения.
1. Введение
Усложнение программного и аппаратного обеспечения компьютерных систем увеличивает количество отказов и неисправностей, вызывающих значительные материальные и моральные убытки. Даже аддитивное наращивание в компьютере программных продуктов (аппаратуры) приводит к конфликтным ситуациям, сбоям, отказам, что объясняется отсутствием верификации системной работоспособности и совместимости установленных компонентов. Существующая тенденция ограничения инвестиций на сервисное диагностическое обслуживание компьютерных систем на стадиях проектирования, производства и эксплуатациии нуждается в корректировке [ 1]. Она касается необходимости разработки и сопровождения тестопригодного программно-аппаратного обеспечения компьютера на функциональном, алгоритмическом и системном уровнях. Для этого нужно решать задачи проектирования тестов, алгоритмов контроля и поискадефектов, системной верификации совместимости компонентов. Решение упомянутых задач требует дальнейшего развития и совершенствования методов и средств моделирования исправного поведения и неисправностей компьютерной структуры на функциональном, алгоритмическом и системном уровнях. Что касается моделирования неисправностей, в настоящее время необходимы новые технологии определения валидности (качества) тестов проверки дефектов компонентов компьютерной системы. Такие технологии должны отвечать требованиям быстродействия, унификации, простоте программной реализации. Этим объясняется актуальность предлагаемой новой технологии моделирования неисправностей ЦУ компьютерных систем.
Общей концепцией модели аппаратурного изделия (объекта) можно считать конечный абстрактный автомат первого рода, определяемый аналитическим выражением
W = <X, Y, Z, f, g,>,
где X, Y, Z — множества входных, выходных ивнутренних состояний автомата; f, g — характерис-
тические функции переходов и выходов, определяющие импликативные отношения в следующем виде: Z(t) = f[X(t), Z(t-1)]; Y(t) = g[X(t), Z(t-1)].
Модель — структура компонентов и/или процедур, с определенной степенью адекватности представляющая объект или процесс [2].
Дефект F = {Fp, Fn, Fo} — каждое отдельное несоответствие цифрового изделия требованиям нормативной документации [3,4]. Повреждение (Fp)— вид дефекта, определяемый событием, заключающимся в нарушении исправного состояния при сохранении работоспособного. Несущественный дефект (Fn)— событие, которое заключается в нарушении работоспособного состояния при сохранении правильного функционирования. Отказ (Fo) — событие, заключающееся в нарушении правильного функционирования. Рейтинг дефектов по деструктивным возможностям определяется соотношением (Fp< Fn <Fo).
Техническое состояние объекта — совокупность исправного и множества наперед заданных неисправных состояний: S = {Sj, Sn, = {Sr, Sf, Snf, Sp}}. Исправным (Sj) называется состояние объекта, при котором он соответствует всем требованиям нормативно-технической документации. Неисправным (Sn) называется состояние объекта при наличии в нем дефекта. Работоспособным (Sr) называется состояние объекта, при котором он может выполнять свои функции при наличии повреждения. Состояние объекта, при котором он может выполнять свои функции при наличии несущественного дефекта, называется состоянием правильного функционирования (Sf). Состояние неправильного функционирования (Snf) определяется объектом, имеющим отказ. Если объект имеет катастрофические отказы (Fk) или морально устарел на данный момент времени, его техническое состояние определяется как предельное (Sp), не подлежащее техническому обслуживанию. Неисправное техническое состояние при наличии дефекта, устранение которого восстановит состояния правильного функционирования, работоспособного или исправного, называется непредельным Sni> = {Sr,
Sf> Snf}.
Тест—вход-выходная последовательность, предназначенная для установления соответствия состояния изделия заданным техническим состояниям:
E =|| EXjj, EYjr ||, i=1,n; j=1,m; r=m+1,k; n— длина теста; m, k — число входов, линий в объекте.
Дефект Fr обнаруживается тестом E, если его присутствие искажает хотя бы одно выходное слово фактической реакции объекта RYjj по отношению к
его исправному состоянию:
zlij (EYij О RYjj Fr) = 0- (1)
Тип дефекта определяет вид технического состояния [3] изделия, которое может быть: исправным — неисправным, работоспособным — неработоспособным, правильного — неправильного функционирования. Далее не рассматриваются первые две пары состояний, поскольку они определяются дефектами, несущественными для правильного выполнения алгоритма функционирования, называемыми повреждениями. Неисправность часто отождествляется с понятием дефекта.
РИ, 1999, № 1
77
Методы моделирования неисправностей [2, 5-9], как универсальные средства для решения задач генерации тестов, определения их качества, контроля и поиска дефектов, более сложные в реализации по отношению к алгоритмам анализа исправного поведения, которые являются частными случаями первых. Поэтому решение проблемы моделирования дефектов предполагает существование алгоритмов анализа исправного поведения. Сущность моделирования неисправностей состоит в определении влияния одного или нескольких дефектов на состояние линий объекта при подаче тестовых последовательностей. На сегодня известны десятки типов неисправностей, сгруппированных в классы [5]. Здесь и далее рассматриваются логические одиночные константные неисправности (ОКН), если не оговорено иное. Другими логическими неисправностями могут быть короткие замыкания контактов, их перепуты-вание, изменения функций элементов.
Большинство практически реализуемых методов использует для анализа неисправностей синхронные модели исправного поведения. На этом основаны алгоритмы одиночного [2], параллельного [5], дедуктивного [5,9], совместного [6] моделирования.
Одиночное моделирование неисправностей. В его основу положена идея внесения одной ОКН эквипотенциальной линии в схему в целях анализа ее проявления на внешних выходах объекта при подаче тестовых последовательностей. При машинной реализации данный метод требует сравнительно больших затрат времени и ориентирован на обработку любых схем нерегистрового уровня.
Параллельное моделирование неисправностей. Используются машинные команды параллельной обработки слов (регистров): логическое сложение, умножение, инверсия, исключающее ИЛИ. Моделирование является компилятивным, поскольку поведение примитивов описывается процедурами на уровне алгоритмических языков или ассемблеров. Одновременно выполняется анализ P неисправностей на одном входном наборе (P — разрядность машинного слова, доступного для параллельной обработки). Недостатком метода является ориентация на конкретную ЭВМ, сложность проектирования моделей и проблемных программ. Быстродействие метода в P раз выше одиночного моделирования.
2. Дедуктивное моделирование неисправностей На входном наборе одновременно обрабатываются все ОКН схемы, выделяя при этом подмножество проверяемых. Анализ примитивного элемента (ПЭ) сводится к выполнению операций над списками неисправностей с помощью аналитических выражений, уникальных для каждого примитива. Сложность получения аналитических преобразователей затрудняет широкое использование метода. Модель элемента (рис. 1) для выполнения дедуктивного алгоритма имеет k входов и один выход, которым соответствуют значения двоичных сигналов Y1, Y2, ..., Yj, ..., Yk, Yj.
Y1__1_
Y2__2
Yj j Yk k
Рис. 1. Модель примитивного элемента
Для каждого входа j известен входной список неисправностей для фиксированного значения Yj. Выходной список Zj при заданном Yj зависит от функции элемента, значений сигналов на его входах, входных списков неисправностей. Для ПЭ И (И-НЕ) формула получения выходного списка имеет вид [5]
Sj = USj и Yj};
Vj e!,J0 =0
Ч = nSj \ иSk ^ {- Yj}, (2)
VjeJ0,J0 Ф0 VkeJ1
где J0 (J1) — подмножество входов, имеющих значение 0(1), J={J0, J1}; {= Yj} — неисправность выхода i, инверсная по знаку к его исправному состоянию.
Для элемента ИЛИ (ИЛИ-НЕ) формула содержит операции:
Sj = U Sj U {= Yj};
VjeJJj =0
Ч = n Sj \ USk u {= Yj}. (3)
VjcJ"i ,J1 ^0 Vk cJ
Генерация списков неисправностей для внешних входов выполняется в соответствии с выражением
Zj={- Yj}.
Для реализации дедуктивного алгоритма необходимо получить аналитические формулы для каждого типа ПЭ или преобразовать схему к вентильному уровню в базисе И-ИЛИ-НЕ, для которого имеются выражения вычисления списков. Рассмотренный метод требует больших затрат памяти для хранения списков, а его эффективность зависит от программной реализации операций над множествами. В упомянутом изложении он ориентирован на вентильный уровень описания модели объекта, как и метод параллельного моделирования. Однако аналитические выражения вычисления списков транспортируемых неисправностей можно заменить на явные условия модификации выходов при наличии ОКН. Например, для ПЭ 2И при входном слове 11 проверяемые дефекты определяются кубами (10: 010, 20: 100, 30: 000). Его работа при анализе последовательностных схем может иметь значительное число итераций вследствие изменения входного слова или наличия неисправностей, вызывающих генераторный режим в ЦУ. Это приводит к модификации списков проверяемых дефектов на каждой итерации, а значит, к повторению времяемкой процедуры пересечения и объединения подмножеств проверяемых неисправностей. Дедуктивный алгоритм менее предпочтителен, если среднее число вентилей, входы которых активизированы неисправностями на моделируемом тест-векторе, соизмеримо с общим числом вентилей.
3. Совместное моделирование неисправностей
В совместном (concurrent) методе моделирования [6], как и в дедуктивном, за один проход по схеме определяются все неисправности, проверяемые на тест-векторе. Но в отличие от последнего, где дефекты моделируются дедуктивно (неявно), конкурентный алгоритм анализирует явно исправную работу и те неисправности, которые модифицируют состояния входов или выходов. Класс обрабатываемых дефектов при совместном моделировании включает ОКН, кратные константные неисправности (ККН), а также функциональные. Для примитива модель
78
РИ, 1999, № 1
неисправности задается кубом, который модифицирует состояние выхода или входа относительно вектора исправного поведения для рассматриваемого ПЭ. Неисправностный список элемента для ОКН есть функция от входного слова. Например, для полусумматора с выходами суммы и переноса при входном векторе 00, вектор моделирования которого равен 0000, такой список имеет вид: A1=1010, Б1=0110, S1=0010, P1=0001. Внесение неисправности по входу ПЭ требует анализа КП с целью определить состояния его выходов. Для задания дефекта на выходной линии следует записать его тип в соответствующую координату вектора исправного моделирования. При обработке схемы для каждого ПЭ относительно вектора исправного поведения определяется подмно -жество дефектов, транспортируемых через анализируемый элемент. При этом важно, чтобы общий неисправностный список примитива был упорядочен в соответствии с возрастанием номеров линий схемы (возможен и другой порядок), что исключает переборный характер процедуры анализа условий транспортирования дефекта через ПЭ. Построение входных условий проверки неисправности основано на маскировании состояний входов ПЭ. Если, например, для четырехвходового коньюнктора на входном наборе 0110 имеются внешние дефекты (7\7Д на первом и четвертом входах, то куб неисправности 71 равен 1111, который после моделирования КП доопределяется значением выхода и принимает вид 11111. Видимость кратного дефекта на входах элемента есть следствие наличия в схеме сходящегося разветвления. Чтобы выявить двоичную или большую кратность, следует выполнять сравнение неисправностей линий, которые являются соседними элементами в неисправностном списке ПЭ.
Алгоритм анализа ПЭ при совместном моделировании неисправностей эквипотенциальных линий включает пункты:
1. Исправное моделирование входного набора.
2 .Определение кубов входных неисправностей и их моделирование. (Если ОКН входной линии проверяется, то на выходе рассматриваемого ПЭ обнаруживаются все внешние ОКН, протранспортированные к данному входу).
3. Определение кубов кратных внешних дефектов и их моделирование. (Если внешние неисправности одиночные, то условия их транспортирования задаются в п.2).
4. Сравнение состояний выходов ПЭ при отсутствии и наличии дефектов в целях определения выходного списка проверяемых ОКН.
5. Если выходы ПЭ есть внешние линии схемы, то следует во множество обнаруженных неисправностей включить инверсные (по отношению к исправному поведению) значения дефектов выходных линий.
Совместное моделирование можно представить как дедуктивный алгоритм, когда вычисление выходных списков неисправностей является результатом явного моделирования искаженного ими входного слова с последующим сравнением полученных значений при наличии и отсутствии неисправностей. В погоне за уменьшением временных затрат и обьема памяти в совместном алгоритме принесена в жертву технологичность анализа объекта диагностирования.
Стоимость совместного алгоритма определяется двумя составляющими — обработкой исправной схе-
мы и неисправностей и зависит от структурной реализации: для линейных схем затраты определяются оценкой n2, для квадратной топологии объекта — n3/2 . Таким образом, стоимость выполнения совместного алгоритма зависит в большей степени от топологии схемы (количества линий разветвления).
4. Кубическое моделирование неисправностей
Предлагаемый ниже метод возник на основе разработки алгоритмов и идей, предложенных в [2, 5-9]. Концепция моделирования основана на представлении функционального элемента в формате
F2 = <(t-1,t),(X,Z,Y),{A2}>,
где (t-1 ,t) — два автоматных соседних такта в описании системы функциональных отношений; (X,Z,Y)— вектор упорядоченных подмножеств входных внутренних выходных переменных; {A2} — двухтактный алфавит описания состояний автоматных переменных [2]:
A2={Q=00,E=01,H=10,J=11,O={Q,H},I={E,J},A={Q,E}, B={HJ},S={Q,J},P={E,H},C={E,H,J},F={Q,HJ},L={Q,EJ}, V={Q,E,H},Y={Q,E,H,J}, A1={0,1,X={0,1}},0 (U)}, кубическим покрытием
C = (C1, C2, ..., Ci, ..., Cn), здесь Cj = (Cn, Ci2, ..., Cij, ..., Cik), разбитый на упорядоченные подмножества Cj = (QX, Qz, Qy). В частном случае, когда функциональный элемент — комбинационный автомат, задаваемый в формате F1 = <(t),(X,Y),{A!}>,
кубическое покрытие определяется отношениями на векторе переменных Q = (CjX, CjY), что задает многовыходовую комбинационную схему в виде примитивного элемента с m входами и k выходами. Если k= 1, речь идет о двоичной булевой функции от m переменных Y=f(Xi,X2,..., Xm).
Кубическое покрытие одновыходовой функции есть совокупность нулевых и единичных кубов — строк таблицы истинности, которые имеют значения нуля, единицы на переменной, идентифицирующей значение функции. Естественно, по единичным кубам можно записать минимизированную дизъюнктивную нормальную форму:
m C
f(X1...Xm) = V (Л Xj ij ) , (4)
VYi=1 j =1 J
по нулевым — обратную дизъюнктивную нормальную форму (ОДНФ):
f(X1...Xm)
Л
VYi=0
(vxC
I j=1 j
).
m
(5)
Если переменная Xj в кубе Ci принимает значение X, то она отсутствует в терме, формирующем отношения переменных в упомянутом кубе. При Cij= 0(1) значение Xj (не) инвертируется для (обратной) дизъюнктивной нормальной формы. Обобщенная функциональная структура кубического покрытия является избыточной и представляется в виде
f(Xi...Xm)
m с
[v (л Xj v-t
VYi=1 J=1
Л
VYi=0
O'VM, (6)
где каждый куб есть коньюнктивный терм, которому соответствует в общем случае m-входовой коньюн-ктор. Все термы, нулевые и единичные, объединяются с помощью дизъюнктора, который имеет число входов, равное количеству кубов n в покрытии C.
РИ, 1999, № 1
79
Определение 1. Список входных неисправностей ПЭ S есть вектор подмножеств проверяемых на входных линиях дефектов S = (S 1, S2,..., Sj,..., Sm), где Sj = {Sji, Sj2,—, Sjr,..., Sjpj}; Pj - мощность подмножества проверяемых неисправностей Sj на входе j.
Определение 2. Список входных неисправностей ПЭ называется одиночным, если выполняется условие Si n S2 п ... П Sj п ... П Sm =0.
Определение 3. Список входных неисправностей ПЭ называется кратным, если выполняется условие 3 i, j(Si n Sj) ф 0. Кратность дефекта Sjr определяется максимальным количеством входов, пересечение списков которых равно Sjr.
Определение 4. Булевой производной фунции f(X1, ..., Xi, ..., Xn) называется функция, определяемая выражением [10]:
= f(Xi,...,Xi,...,Xn) ©
© f(Xi,...,Xi,...,Xn) =
= f(Xi,...,Xi_i,1,Xi+i,...,Xn) © (7)
0 f(Xi,...,Xi _i,0,Xi+i,...,Xn).
Производная по переменной Xi есть функция, которая не зависит от Xi. Например, производная
Й^ХзХ/Х^Хз) = (Х2Х3 v Х2Хз) ф (Х2Х3) =
dxi
= (Х2Х3 V Х2Хз)(Х2Хз) V (Х2Х3 V Х2Хз)(Х2Хз) = = Х2Х3
есть неявно задаваемые входные условия, в данном случае (х2х3) = (11), при которых активизация входной переменной xi приводит к очувствлению выходной.
Определение 5. Теоретико-множественной производной функционала f(Xi, ..., Xi, ..., Xn), представленного кубическим покрытием в многозначном алфавите, называется функция, определяемая выражением
df = f(Xi,...,Xi,...,Xn) П
n f(Xi,...,~i,...,Xn) = (9)
= f(Xi,...,Xi _i, о, Xi+i,...,Xn) n (9)
n f(Xi,...,Xi_i,CT,Xi^...^nX
где ст,ст — многозначное значение переменной Xi и ее дополнение. В частном случае, когда значность алфавита равна двум, выражение (9) становится эквивалентным (7).
Определение 6. Производная называется жесткой (H-производная), если она определяет булеву функцию — условия активизации выходной переменной при изменении входной, заданную в одном временном фрейме.
Определение 7. Производная называется мягкой (S-производная), если она определяет булеву функцию — условия активизации выходной переменной при изменении входной, заданную в двух временных фреймах.
Определение 8. Относительно выхода r множество кубов покрытия C комбинационного функци-
онала дифференцируется на два непересекающихся подмножества C = {Cj^Cr1}.
Лемма 1. Вычисление H-производной комбинационного функционала fдля выхода r по переменной Xj определяется пересечением подмножеств нулевых и единичных кубов КП, имеющих на переменной Xj различные двоичные значения:
dfr = cH
dXj " r
{cr
r0
t=1,k
П
Viq( 3! j)(C|j0 n СЇ1 = 0)
cqlb
(10)
где операция пересечения выполняется по правилам:
п 0 1 х
0 0 0 0
1 0 1 1
х 0 1 х
(11)
Доказательство. Условия вычисления производной по (7) предполагают фиксацию переменных в двух логических значениях 0 и 1. Но поскольку кубическое покрытие есть таблица явных решений, то для вычисления производной следует найти те
строки-кубы альтернативных подмножеств {C[0,C[1},
в которых имеются, во-первых, на координатах Cj =0(1), а на cj =1(0). Во-вторых, непременным
условием существования производной по Xj есть наличие пустого пересечения только по входной координате j упомянутых кубов покрытия. По другим входним линиям КП пересечение не должно быть пустым. Кроме того, пустым должно быть пересечение рассматриваемых кубов по выходной линии r многовыходового функционала f, что гарантируется альтернативностью кубов, участвующих в
пересечении {C[0,C[1}. Иначе, принадлежность пе-
ресекаемых кубов к подмножествам C[0,C[1 гарантированно обеспечивает активизацию функционала fr при изменении Xj. Существование производной
dfr
dX
= CH ф 0 определяется наличием хотя бы од-
ного куба, вычисленного по правилам (10).
df H
Следствие 1. Если r = CH =0, то переменная dXj
Xj является несущественной.
Лемма2. Вычисление S-производной комбинационного функционала fдля выхода r по переменной Xj определяется конкатенацией подмножеств нулевых и единичных кубов КП, имеющих на переменной Xj различные двоичные значения:
dfr _ CS _ {Cr0
dX,- " Cr "{Cit
t=1,k
Viq(3 .'jXCj nCqi=0)
cq{}
qt}, (12)
где операция конкатенации 0 выполняется по следующим правилам:
®| 0 1 х|
0 Q E A
1 H J B
х O I Y
80
РИ, 1999, № 1
Доказательство аналогично лемме 1, если операцию конкатенации заменить на пересечение. Но здесь интересен вопрос о том, что дает такая интерпретация производной. Во-первых, сама идея активизации функции при изменении значения входной переменной существует в двух соседних временных тактах. Во-вторых, жесткая H-производная задает
условия, полученные пересечением кубов C[° П cq1 , что является более жестким ограничением по сравнению с условиями C Г0 ® cq1, существующими
раздельно в тактах t-1 и t. Данное обстоятельство, не учитываемое при решении задач логического анализа, генерации тестов, создавало определенные трудности при обработке схем со сходящимися разветвлениями, которые устраняются автоматически, если использовать конкатенируемые условия активизации переменных [2]. Чтобы не затруднять понимание излагаемого ниже, далее, где это возможно, используется троичный алфавит A1={0,1,X={0,1}, 0(U)} описания булевых переменных для соседней пары кубов активизации, представляющей компоненты функции S-производной.
В качестве примера вычислим производные для
функции (8): y = Х2Х3 v Х1Х2Х3, заданной кубическим покрытием
С(Х2Хз v Х1Х2Х3) = <
Х1 Х2 Х3 y
X 0 0 1
1 1 1 1
X 0 1 0
X 1 0 0
0 1 X 0
(13)
Производные, достоинством которых является их явное задание в виде таблиц, определяются по формуле (9).
Жесткая H-производная вычисляется по правилам (7) и (9), которые формализованы в (10):
df = Х1 Х2 Х3 y
ДХ1 {0 11 0}' (14)
Здесь символы 0 можно заменить двухтактными в целях иллюстрации направления изменения входной (выходной) переменной. Состояния пассивных переменных есть сущность булевой производной:
df _ Х1 Х2 Х3 У
ДХ1 {H 1 1 H}' (15)
Мягкая S-производная вычисляется по правилам, которые формализованы в (12):
df хі Х2 Х3 У
(16)
d^ {H J B H}
или в троичном алфавите описания переменных:
df Х1 Х2 Х3 У
dxl
1111 0 1X0.
(17)
Символ X определяет несущественность переменной Х3 во втором фрейме для активизации выхода у при изменении входа Хі. Поэтому Х3=Х может быть доопределен 0 или 1 при решении задачи обратной импликации в процедурах генерации тестов [2,5].
Моделирование неисправностей есть инструмент для основанных на нем методов построения тестов,
от которого зависит их качество и затраты на проектирование проверяющих последовательностей.
В соответствии с определением (1) на входных линиях примитива существуют списки проверяемых
неисправностей (S1,S2,..., Sj,..., Sm). Дефект Sr є Sj
имеет знак, отвечающий условию Ej n Sr = 0, Ej — состояние линии j на тест-векторе E.
Определение 9. По аналогии с (9) одиночный
дефект S1 є Sj входной линии j проверяется на выходе функционала тестовым набором E=(E1,..., Ej,...,
Em), если F-производная (Fault) по неисправности s1 имеет значение пустого множества:
Др = f(E1,...,Ej,...,Em) П f(E1,...,Sr,...,Em) = 0.(18) dSr
Определение 10. Кратная F-производная определяет условия проверки k-кратного дефекта sk є S:
—k = f(E1,...,Ej,...,Ek,...,Em) П dSk
n(S1r,...,Sj,...,Sk,...,Em) = 0,
(19)
где 1 < k < m . Кратная входная неисправность sk
принадлежит уже примитиву, а точнее — его k входам.
Лемма 3. Выходной список проверяемых дефектов S на тест-векторе Е формируется вычислением 2m производных:
S =
k=1,m
s У.
1=1,cm
sk ^(
df
dSk
Ф0),
(20)
где cm — число сочетаний неисправностей кратности k на m входах примитивного элемента.
В лучшем случае, когда тест-вектор представлен в двоичном виде, все проверяемые неисправности, присутствующие на входах примитива, могут быть обнаружены и на его выходе. Число таких дефектов может быть произвольным, но конечным. Дефекты формируются в группы, суммарная мощность которых, равная 2m, определяется многообразием сочетаний:
cm+cm+...+cm+...+cm-1+cm. (21)
Если существуют две или более групп дефектов одной кратности на одних и тех же входах, то для их транспортирования на выход необходима одна процедура взятия производной заданной кратности, поскольку их влияние на состояние выхода примитива эквивалентно. Для троичного тест-вектора число неисправностей на выходе может быть меньшим, но предельная по вычислительной сложности процедура должна иметь возможность обрабатывать списки дефектов произвольной кратности.
Для любого трехвходового примитива, например, множество всех подмножеств одиночных и кратных константных дефектов имеет следующий вид:
X1 S1 S2 s2
X2 s2 S2 S
X3 S3 s2 S
(22)
РИ, 1999, № 1
81
Если учесть, что идентификаторы дефектов, как правило, представлены десятичными числами, то неисправности (22) можно записать в виде матрицы или в форме списков:
X1 1 4 5 7 X1 {1 4 5 7}
X2 2 4 6 7 = X2 {2 4 6 7}
X3 3 5 6 7 X3 {3 5 6 7}
(23)
Смысл дедуктивного метода моделирования неисправностей заключается в вычислении выходного списка проверяемых дефектов за одну итерацию анализа функционала. Следующая теорема обосновывает такую возможность при использовании таблицы истинности в качестве формы представления модели примитива.
Теорема 1. Для функционального элемента, заданного таблицей истинности, вычисление всех2m производных, формирующих выходной список неисправностей, определяется в соответствии с процедурой следующим выражением:
s = {U [(П Sj)\( U Sj)]>uEry},
Y0 X0 X 0
X 0=Vj(Ej П CXj = 0); X0 =Vj(Ej П q *0); Y 0 = Vi(Er П СУ =0);
(24)
i = 1,n;j = 1,k,
где Sj — список входных дефектов на линии j; Er, Ej — выходная и входная координаты вектора исправного
моделирования; = еГ — неисправность выхода примитива, являющаяся теоретико-множественным дополнением по отношению к его исправному состоянию; CXj ,СУ — входная и выходная координаты j-го
куба покрытия С, n — число кубов; k — количество невыходных линий; m — общее число линий в примитиве; r=l — число выходов.
Доказательство. Основывается на эквивалентности строк таблицы истинности — термов ДНФ и обратной ДНФ, в соответствии с (4)-(6), элементам конъюнкции. Учитывая факт, что оба типа термов равнозначны в смысле формирования функции, в процедуре транспортирования входных списков на выход функционала участвует подмножество строк ДНФ или ОДНФ. Такое разделение обусловлено необходимостью пустого пересечения тест-вектора Е со строками таблицы по выходу функционала в соответствии с (18)-(20), которые формируют списки
по Cj є С . Объединение функциональных отношений строк ДНФ или ОДНФ соответствует элементу дизъюнкции. Обработка же элементов конъюнкции и дизъюнкции в совокупности ранее была формализована в виде выражений (2), (3). Таким образом, процедура обработки примитива, представленного таблицей истинности, сводится к объединению результатов формирования выходных списков, вычисленных на основе анализа строк, отождествляемых с логическими элементами конъюнкции. При этом формула получения выходного списка является универсальной, как универсальна сама форма—таблица истинности.
Теорема 2. Вычисление всех 2m производных, формирующих выходной список неисправностей функционала на основе использования выражения (24), инвариантно по отношению к многообразию его кубических покрытий.
Доказательство. Кубическое покрытие есть результат минимизации таблицы истинности известными методами, которые дают множество тупиковых минимизированных форм, вследствие неоднозначности решения задачи минимизации. Формально кубическое покрытие отличается от таблицы истинности наличием символов X на координатах кубов. Рассмотрим влияние этих символов на получение списка проверяемых на выходе функционала дефектов в сравнении с двоичной таблицей истинности. Для двух двоичных кубов Cj, Ct, подлежащих склеиванию по только одной входной координате j:
3! j(Cjj П Ctj = 0) и удовлетворяющих условию (24), можно записать, что
S = (S П Sj) U(S\Sj), (25)
поскольку для двух кубов Cj, Ct, отличающихся по j, список S, полученный по координатам, отличным
от j, взаимодействует с Sj на первом кубе как SПSj, на втором — S \ Sj. Если S П Sj = 0, то в этом случае получается S \ Sj = 0 , что доказывает истинность
выражения (25). Иначе, S П Sj = S , что также доказывает тождественность (25). И последний случай, когда S П Sj = Sj, выражение (25) превращается в
Sj US\Sj = S. Таким образом, выходной список S, формируемый двумя координатами строк таблицы истинности, инвариантен списку, полученному по одной строке покрытия, которая на Qj имеет символ X. Наличие же нескольких символов X в кубе Cjj всегда сводится к ситуации (25). Следовательно, результат — выходной список неисправностей S, полученный на основе обработки таблицы истинности по (24), эквивалентен списку, вычисленному на основе анализа любой тупиковой формы кубического покрытия функционала.
Следствие 2. Универсальная формула определения списка неисправностей Sr по выходу г кубического покрытия С (таблицы истинности) многовыхо-дового примитивного элемента имеет вид
Sr = {U [(П Sj)\(U Sj)]}UI-Ey},
у 0 x ^
X0 =Vj(Ej n CXj =0);
X0=Vj[(Ej П CXj *0)&(C?j * X)];
j (26)
у0 =Vi(Er n Cyr =0);
i = 1, n;j = 1,k; r = k + 1,m; n — число кубов; k—количество невыходных линий; m — общее число линий в примитиве.
Пример 1. Оределение выходного списка неисправностей на тест-векторе 1111 для функционала, заданного кубическим покрытием (13), где входные списки определены подмножествами:
51 = {1,2,4,5};
52 = {12,3,6};
53 = {1,3,4,7},
82
РИ, 1999, № 1
сводится к выполнению пересечений сначала по выходным координатам вектора Е и кубов покрытия, которые формируют кубы Q, удовлетворяющие
условиям необходимости Vi(Er ПСУ.) = 0 . Далее
анализ упомянутых кубов по (26) дает результат в данном случае обработки каждого куба покрытия:
S'CCj = X001 ) = 0 ;
S2(C2 = 1111 ) = 0 ;
S3(C3 = X010 ) = S2 \S3 = {2,6};
S4(C4 = X100 ) = S3 \S2 = {4,7};
S5(C5 = 01X0) = S1 \S2 = {2,5};
S(E = 1111 ) = S3 u S4 u S5 = {2,4,5,6,7},
где 8і — частичный список, формируемый соответствующим кубом Ci; S(E) — обобщенный список дефектов, проверяемый тест-вектором Е и получае-
m
мый объединением частичных списков: S = U 8і .
і=1
Для тест-вектора 0100 результат моделирования тех же неисправностей на входах имеет вид:
S1(C1 = X001 ) = S2 \ S3 = {2,6};
S2(C1 = 1111 ) = S1 n S3 \ S2 = {4};
S3(C3 = X010 ) = 0;
S4(C4 = X100 ) = 0 ;
S5(C5 = 01X0) = 0 ;
S(E = 0100 ) = S1 u S2 = {2,4,6}.
Теорема 3. Процедура определения выходного списка дефектов S элемента (схемы) на тест-векторе Е, имеющем n символов X и двоичное состояние выхода, задается выражением
2
П
S = П St, (27)
t=1
где St — выходной список, проверяемый двоичным тест-вектором Et є E, где мощность множества
двоичных векторов равна 2n .
Доказательство. Поскольку вектор Е существует в одном временном фрейме, то проверяющие способ-
ности каждого из двоичных наборов Et є E не должны противоречить друг другу, что возможно лишь в случае, когда пересечение выходных списков не равно пустому множеству: Vt(fl St ф 0). Возмо-
жен и противный случай, когда Vt(f| St = 0). Такой результат имеет место, когда все проверяемые на
двоичных составляющих наборах Et є E неисправности относятся к переменной j. Тогда по аналогии с (25) тождество
(S П Sj) n(S\Sj) = 0 (28)
дает основание утверждать, что список проверяемых неисправностей для тест-вектора, имеющего символ X, будет пуст. То же можно сказать и для наборов, содержащих n символов X, поскольку такие векторы можно разложить на составляющие, содержащие по одному символу X.
Следствие 3. Если состояние выхода функционала на троичном тест-векторе Et є E равно X, то выходной список неисправностей равен 0 .
Здесь по выходным координатам не выполняется условие пустого пересечения, определенное в (24). Отсюда следует доказательство справедливости предлагаемого следствия.
На основе процедуры обработки примитива, заданного кубическим покрытием, определим алгоритм дедуктивного моделирования неисправностей схемы цифрового устройства, реализующего конечный автомат:
1. Моделирование исправного поведения очередного функционального элемента РДі = 1,M) на тествекторе Et(t = 1,N). Если t = N — формирование списка S(E) проверенных неисправностей на тесте E — конец моделирования. Иначе, t < N — п.2.
2. Если все элементы схемы обработаны (i = M), выполняется сравнение исправных состояний линий в двух соседних тактах. Если состояния идентичны
tt
E. = E.+1, конец моделирования очередного тествектора Et и переход к п. 3. Иначе — п. 1.
3. Еенерирование списков неисправностей внешних входов схемы, как теоретико-множественного
дополнения их исправного состояния Sj = {jEj}.
4. Моделирование неисправностей функционального элемента Pi(i = 1,M) по процедуре (26).
5. Если (i = M), выполняется формирование списка дефектов S(Et), проверяемых на тест-векторе
Et, и переход к п.1. Иначе, i < M — п. 4.
Моделирование неисправностей рассмотрим на примере анализа схемы, представленной на рис.2, где поведение функциональных элементов задается кубическими покрытиями:
C(F1) C(F2) C(F3)
1 2 5 2 1 3 6 8 6 7 4 9
13 7 ; [X 0 0 1 ; IX 0 0 X 1]
5 6 8 1 1 1 1 X 1 0 1 1
X 0 1 0 > 0 1 1 X 1
1 X 01 X 1 0 0 X 0 1 X 0(
0 1 1 > 0 1 X 0 1 X 1 X 0
0 0 °J X 1 0 0 0
Рассматриваются одиночные константные неисправности эквипотенциальных линий, обозначаемые
в виде jCT , где о = {0,1} — знак константной неисправности, j — номер линии схемы.
Для каждого входного набора, в данном случае Е= 1111, моделируется исправное поведение объекта, которое дает результат по всем линиям, представленный вектором (111101011).
Априорно генерируется список входных дефектов схемы цифрового устройства:
S1 = {10};S2 = {20};S3 = {30};S4 = {40}.
Выполняется последовательная обработка всех элементов схемы для вычисления выходных списков неисправностей с учетом (26):
РИ, 1999, № 1
83
Рис. 2. Цифровая схема для моделирования
S1(C1 = 1X0) = 0;
S2(C2 = 011) = Si\S2 = {10 };
S3(C3 = 000) = S1 П S2 = 0;
S5(E =110) = S2 U S3 U 51 = {10,51}.
S1(C1 = X001 ) = 0 ;
S2(C2 = 1111 ) = 0 ;
S3(C3 = X010 ) = S1 \ S3 = {10};
S4(C4 = X100 ) = S3 \ S1 = {30};
S5(C5 = 01X0) = S2 \S1 = {20};
S6(E =1111 ) = S3 U S4 U S5 U 60 = {10 ,20 ,30 ,60}.
S1(C1 = 1X0) = 0 ;
S2 (C 2 = 011 ) = S1 \ S3 = {10};
S3(C3 = 000 ) = S1 n S3 =0 ;
S7(E =110 ) = S2 u S3 и 71 = {10,71}.
S1(C1 = 1X0) = S5 = {10,51};
S2(C2 = 011 ) = 0 ;
S3(C3 = 000 ) = S6 \S5 = {20,30,60};
S8(E = 011 ) = S1 U S3 U 80 = {10,20,30,51,6080}.
S1(C1 = X00X1) = 0;
S2(C2 = X1011 ) = 0;
S3(C3 = 011X1) = 0;
S4(C4 = X01X0) = S7 П S6 = {10};
S5(C5 = 1X1X0) = S7 \S8 = {71};
S6(C6 = X1000 ) = S4 \S6 \S7 = {40};
S9(E = 11011 ) = S4 U S5 U S6 U 90 = {10,40,71,90}.
Качество тест-вектора 1111, определяемое соотношением Q = [q/(2 x m)] x 100% (q — число проверяемых дефектов, m — количество линий схемы), равно: Q = [4/(2 х 9)] х 100%= 22 %. Так же определяется и качество теста — отношение числа всех проверенных дефектов к удвоенному числу линий.
5. Заключение
Предложенный дедуктивный метод моделирования неисправностей является новой, не имеющей
аналогов, технологией обработки цифровых схем функционального уровня представления на основе использования кубических покрытий. Он позволяет за одну итерацию моделировать все неисправности цифрового устройства, проверяемые тест-вектором. Его основное достоинство заключается в инвариантности по отношению к формам представления цифровых схем, задаваемых в виде вентилей, функциональных элементов, алгоритмов, других способов описания, сводимых к таблицам — кубическим покрытиям. Предложенный метод также эффективно обрабатывает и последовательностные функционалы, описанные двухтактными кубическими покрытиями, которые формализуют алгоритмический уровень представления цифровых устройств. Проблема дедуктивного моделирования микропроцессорных структур, описанных в виде языков высокого уровня VHDL, остается открытой.
Литература. 1. Courtois B. CAD and testing of ICs and systems. Where are we going?— TIMA, France. 1995. 250 p.
2. Хаханов В.И. Техническая диагностика элементов и узлов персональных компьютеров. К.: I3MH. 1997.308 с.
3. Хаханов В.И., Фрадков С.А., Ханько В.В. Модель неисправностей программного продукта. Компьютерный вирус. Радиоэлектроника и информатика. 1998. №1. С. 98-105. 4.ГОСТ20911-89. Техническая диагностика. Термины и определения. М.: Изд-во стандартов, 1989. 16с. 5. Автоматизированное проектирование цифровых устройств/ С.С.Бадулин, Ю.М.Барнаулов и др./ Под ред. С. С. Бадулина. М.: Радио и связь, 1981. 240с. 6. Abramovici M, Breuer M.A., Kumar K. Concurrent Fault Simulation and Functional Level Modeling// 14-th Design Automata Conf., Milano. 1977. P.128-137. 7. Хаханов В.И., Шкиль А. С. Троичное моделирование цифровых устройств с использованием языка кубических комплексов// АСУ и приборы автоматики. 1983. Вып.66. C.59-65.
8. Hayes J.P. A systematic approach to multivalued digital simulation// ICCD-84: Proc. IEEE Int. Conf. Comput. 1984. No. 4. P. 177-182. 9. Биргер А.Г. Многозначное дедуктивное моделирование цифровых устройств// Автоматика и вычислительная техника. 1982. №4. С.77-82.
10. Богомолов А.М., Сперанский Д.В. Аналитические методы в задачах контроля и анализа дискретных устройств. Саратов: Изд-во Сарат. ун-та, 1986. 240с.
Поступила в редколлегию 12.03.99 Рецензент: д-р техн. наук Кривуля Г.Ф.
Хаханов Владимир Иванович, д-р техн. наук, профессор кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных устройств, систем, сетей и программных продуктов. Увлечения: баскетбол, футбол, горные лыжи. Адрес: Украина, 310726, Харьков, пр. Ленина, 14, тел. 40-93-26.
Шкиль Александр Сергеевич, канд. техн. наук, доцент кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных устройств. Увлечения: теннис. Адрес: Украина, 310726, Харьков, пр. Ленина, 14, тел. 40-93-26.
Ханько Вадим Викторович, аспирант кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика компьютерных систем и сетей. Увлечения: иностранные языки. Адрес: Украина, 310726, Харьков, пр. Ленина, 14, тел. 40-93-26.
84
РИ, 1999, № 1