В.И.Хаханов, И.Ю.Сысенко, Хак Х.М.Джахирул, Масуд М.Д.Мехеди: КУБИЧЕСКОЕ МОДЕЛИРОВАНИЕ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ ПРОЕКТОВ НА ОСНОВЕ FPGA, CPLD
YAK 681.325:519.713
КУБИЧЕСКОЕ МОДЕЛИРОВАНИЕ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ ПРОЕКТОВ НА ОСНОВЕ FPGA, CPLD
В.И.Хаханов, И.Ю.Сысенко, Хак Х.М.Джахирул, Масуд М.Д.Мехеди
Представлена кубическая технология анализа цифровых схем для генерации тестов и оценки их качества. Предложены кубический метод обработки неисправностей модели примитива и метод генерации тестов для константных неисправностей, использующий кубические покрытия списков неисправностей для построения пути активизации.
Представлена куб1чна технолог1я анал1зу цифрових схем для генерацп тест1в та оцтювання iх якостх. Запропоноват куб1чний метод обробки несправностей модел1 примШива та метод генерацп тест1в для константних несправностей, який використовуе куб(чш покриття списки несправностей для створення шляхгв активгзацп.
Cubic methodology of analysis of digital devices for stuckfault detection and test generation is represented. Cubic method of primitive models fault evaluation and test generation method for stuck-at-faults, which uses fault list cubic covering for path activization building, are offered.
1. ВВЕДЕНИЕ
Программируемые логические интегральные схемы (ПЛИС) FPGA (Field Programable Gate Array), CPLD (Complex Programable Logic Device) достойно конкурируют с БМК (базовыми матричными кристаллами), СБИС, сигнальными процессорами. Вместе с преимуществами ПЛИС существуют проблемы их тестирования, определяемые необходимостью разработки:
1) быстродействующих тестовых генераторов для конфигурации проектов, заданных в форме графов переходов конечных автоматов, булевых уравнений, многоуровневой иерархии;
2) программ моделирования неисправностей, предназначенных для проверки полноты тестов цифровых проектов вентильного, функционального и алгоритмического уровней описания;
3) средств верификации и диагностирования синтезированных цифровых устройств на основе FPGA и CPLD.
Возникновение качественно нового объекта диагностирования в виде ПЛИС стимулируют развитие новых методов и алгоритмов генерации тестов и моделирования неисправностей. Эти методы должны обладать следующими свойствами:
1) проектировать тест для одиночных константных неисправностей, с полнотой, близкой к 100%;
2) покрывать все линии объекта одномерными путями активизации;
3) иметь приемлемое быстродействие алгоритмов генерации тестов и моделирования неисправностей для обработки схем большой размерности;
4) иметь возможность параллельного выполнения векторных операций логического анализа для генерации те-
стов и оценки их качества;
5) обрабатывать устройства вентильного, функционального алгоритмического уровней описания;
6) поддерживать стандарт VHDL для описания цифрового устройства и полученного теста;
7) иметь возможность интегрирования в существующие системы автоматизированного проектирования ведущих фирм мира.
Процесс проектирования программируемых интегральных схем предполагает наличие эффективных средств их анализа. Для этой цели используется в том числе и моделирование неисправностей, которое предназначено для:
- оценки качества тестов;
- проектирования тестов;
- построения алгоритмов поиска дефектов;
- верификации проектов цифровых автоматов.
Объектами применения алгоритмов моделирования неисправностей являются цифровые автоматы, реализуемые в структуру FPGA, CPLD. Наличие нескольких миллионов вентилей на кристалле требует разработки быстродействующих методов, алгоритмов и программ моделирования неисправностей.
Теоретические источники: многозначная алгебра [1] -Hayes J.P., двухтактная кубическая алгебра [2], дедуктивный метод моделирования неисправностей [3-6] - Ермилов В.A., Armstrong D.B., Биргер А.Г., Levendel Y.H., методы генерации тестов [7] - Breuer M.A., Abramovici M.
Предпочтительным по быстродействию является дедуктивный метод моделирования неисправностей. Он позволяет за одну итерацию обработки схемы определить все константные дефекты, проверяемые на входном тестовом векторе. Но данный метод ориентирован на вентильный уровень описания цифровых схем. Это связано со сложностью проблемы генерирования выходных списков неисправностей (output fault list generation) для невентильных примитивов. Предлагаемое решение проблемы позволяет моделировать дефекты цифровых схем, описанных на функциональном и алгоритмическом уровнях. Обратной стороной решения упомянутой проблемы является метод генерации тестов для константных неисправностей, использующий кубические покрытия примитивов для построения заказанного пути активизации.
2. МАТЕМАТИЧЕСКИЙ АППАРАТ АНАЛИЗА
ПРИМИТИВА
Автоматная модель последовательностного примитива представлена в виде:
M = (X, Y, Z, f g) ,
где X = (Хх, Х2,..„ Хт ) ,
7 = (7Х, 72,., У„..., ), 7 = (^ 22,..., 2к) -
множества входных, внутренних и выходных автоматных переменных, отношения между которыми описываются характеристическими уравнениями:
У( г) = /[Х( г - 1), X(г), У(г - 1), 2(г - 1)];
2(г) = я[Х(г - 1), Х(г), У(г - 1), У(г), 2(г - 1)]. (1)
Переменные 2( г) отличаются от У( г) тем, что первые наблюдаемы по выходным линиям, а У( г) в этом смысле есть внутренние. Формат автоматных переменных для записи кубического покрытия, соответствующий (1), имеет следующий вид:
X(t - 1) Y(t - 1) Z (t - 1)
X(t) Y( t) Z (t)
где С, = (С, 1,С,2,.,С^,...,С ¡у) - куб, включающий входные, внутренние, выходные координаты С, = (СХ, СУ, С2) , у = т + к + к . Для комбинационного автомата формат описания кубического покрытия ^ = <(г),(Х, 2),{ А 1}> определяется отношениями на (у = т + к )-мерном векторе переменных С, = (СХ, С2) . Формат задает много-выходовой комбинационный примитивный элемент с т входами и к выходами. Двоичная булева функция от т переменных 2 = /(Хр Х2, ..., Хт) определяется при к = 1 .
Процедура получения двухтактного кубического покрытия:
1. Выполнение операции конкатенации (#):
который может быть представлен автоматной моделью, изображенной на рис. 1.
Ct -1# Ct
# 0 1 X
0 Q E A
1 H J B
X O I Y
Рисунок 1 - Автоматная модель примитива Функциональный последовательностный примитив зада-
для преобразования пары соседних во времени одно-тактных символов в один двухтактный.
2. Итеративная минимизация полученного покрытия по правилу - два куба объединяются в один, если они отличаются по одной переменной.
3. Верификация полученной модели примитива с позиции описания возможных состязаний.
Пример 1. Применение упомянутой процедуры к таблице переходов двухразрядного счетчика приводит к существенному уменьшению кубического покрытия, записанного в алфавите А 2 :
ется компонентами: V C A t -1 Bt -1 At Bt V V A B
F2 = < (г -1, г), (Х, 2, У), {А2 }>, 0X X X 0 0 0 X 0 0
1E 0 0 0 1 1E QE
где (г - 1, г) - два автоматных соседних такта в описании 1E 0 1 0 0 1E E H
1 E J E
1 E 1 0 1 1
функции; (Х, 2, У) - векторы входных, внутренних и 1 E 1 1 1 0 1 E H H
выходных переменных; {А2} - двухтактный алфавит 1F 0 0 0 0 1F Q Q
описания состояний (переходов) автоматных пере- 1F 0 1 0 1 1F Q J
менных [1,2]: 1F 1 0 1 0 1F J Q
1F 1 1 1 1 1 F J J
A2 = {Q = 00, E = 01, H = 10, J = 11, O = {Q, H}, I = {E, J}, A = { Q, E}, B = {H, J}, S = { Q, J}, P = {E, H}, C = {E, H, J}, F = { Q, H, J}, L = { Q, E, J}, V = { Q, E, H}, Y = {Q, E, H, J}, A1 = {0, 1,X = {0, 1}}, (U)}.
Примитив описывается кубическим покрытием
C = (с,... C„),
V C A B
0 X 0 0
1E S E
1E P H
.1 E S S_
3. ФОРМУЛИРОВКА ПРОБЛЕМЫ ТЕСТИРОВАНИЯ
Проблемы тестирования цифрового устройства определяются на множестве (M - модель, L - кубическое покрытие списков неисправностей (КПСН) (Fault Lists Cubic Covering - FLCC), T - тест ) в условиях неопределенности
одного из компонентов. Будем считать, что модель М задается кубическим покрытием С = (С^, С 2, • ••, С,, ..., Сп) .
Покрытие неисправностей для примитива или цифровой схемы задается в виде:
Ь = (ьх, ь»..., Ь,,Ьп),
где = (Ь,1, 2,., Ь,,..., Ь,Ц) - куб, включающий входные, внутренние, выходные координаты: Ь, = (Ь^, Ь^,
Ь?), а = т + Н + к; (Ь,У, Ь?) = {0, 1, X} ; 0 - определя-1 и и
ет вычитание (дополнение) списка Ь, ; 1 - задает пересечение Ь, ; X = {0, 1} - идентифицирует несущественность списка неисправностей Ь,. Если Ь? - выходная наблюдаемая переменная, то (0) 1 - есть идентификатор (не-) проверки неисправностей куба Ь, на выходе г,
X = {0, 1} - идентифицирует неопределенное состояние выходной координаты Ь?г, которое можно интерпретировать как 0, так и 1.
Проблема 1. Кубическое покрытие списков неисправностей Ь для вектора Т и покрытия примитива С вычисляется по линейному уравнению
т е с = l ,
е 0 1 X
Т е Cij = 0 0 1 X
1 1 0 X
X X X X
(3)
следующий вид:
L =
где
тТ, ® с^
u n V ',
Vi(Т., Ф Cir = 1), = 1
J L, ^ Т, Ф C, = 1;
LTj е с, = J_j j V
j ) т, ^ т, е с, = o,
проверяемых по невыходным линиям примитива; Ь, -
неисправности, которые необходимо пересекать с невыходными списками.
Замечание 1. Если тест-вектор определен в троичном алфавите Т, = {0, 1, X} , то после получения покрытия
списков неисправностей, каждый куб следует верифицировать по правилу
L = L - L; ^ (L, Ф Т Ф C;), i = 1, n
I J l
Пример 2. Задано кубическое покрытие функции
(5)
C (X2X3 v X1X2X3) =
X1 X2 X3 Y
X 0 0 1
1 1 1 1
X 0 1 0
X 1 0 0
0 1 X 0
(6)
(2)
где © - бинарная координатная операция ХОИ, определяющая взаимодействие компонентов Т, С, Ь в троичном алфавите:
Списки идентификаторов неисправностей для трех входов определены подмножествами:
Ь1 = {1, 2, 4, 5 } ; Ь2 = {1, 2, 3, 6} ;
Ь3 = {1, 3, 4, 7} . (7)
Определить выходной список неисправностей для тест-вектора 1111.
Решение сводится к выполнению © -операции между вектором Т и покрытием С:
Т(1111 )Ф C
X1 X2 X3 Y X1 X2 X3 Y
X 0 0 1 X 1 1 0
1 1 1 1 = L 0 0 0 0
X 0 1 0 X 1 0 1
X 1 0 0 X 0 1 1
0 1 X 0 1 0 X 1
Универсальная формула анализа КПСН, полученного в результате применения (3) к тест-вектору Т и покрытию многовыходового примитива С для определения по выходу г списка проверяемых неисправностей Ьг , имеет
(4)
Здесь Ь - кубическое покрытие списков неисправностей, по которому можно записать дизъюнктивную нормальную форму или теоретико-множественное уравнение для вычисления выходного списка дефектов на векторе Т( 1111). Далее по единичным значениям выхода У в покрытии Ь записывается дизъюнктивная нормальная форма (теоретико-множественное уравнение) проверяемых входных списков:
L = X2X3 v X2X3 v X1X2 =
= (X2 -X3) u (X3 -X2) u (X1 -X2).
(8)
Ь, - рассматривается как список дефектов, относящийся к линии ,, который следует вычитать из неисправностей,
Подставив вместо переменных Xi соответствующие списки Ь,, получим
Ь = ({1,2,3,6}-{1,3,4,7})и({1,3,4,7}-{1, 2, 3, 6}) и и({ 1, 2, 4, 5}-{1, 2, 3, 6}) = {2, 4, 5, 6, 7}. (9)
Проблема 2. Тест проверки дефектов примитива, задаваемых Ь1 -кубом покрытия списка неисправностей
Ь = (Ь0, Ь1) , определяется по уравнению:
Ь1 0 С = Тк ,
Т, = С, п Тк ^ 31 (С, п Тк * 0).
Х1 Х2 Х1 Х2 Х3 У
Х3 У Х 0 0 1
1 0 0 1 0 С 1 1 1 1
0 1 0 1 Х 0 1 0
0 0 1 1 Х 1 0 0
0 1 Х 0
I = 1, 3.
К полученным подмножествам кандидатов в тест:
Тк (Ь1)
Тк (Ь1)
Тк( ь3)
Х1 Х2 Х3 У Х1 Х2 Х3 У
Х 0 0 0 Х 1 0 0
0 1 1 0 ; 1 0 1 0
Х 0 1 1 Х 1 1 1
Х 1 0 1 Х 0 0 1
1 1 Х 1 0 0 Х 1
Х1 Х2 Х3 У
Х 0 1 0
1 1 0 0
Х 0 0 1
Х 1 1 1
0 1 Х 1
Т=
(10)
где Ь0 , Ь1 - кубы, имеющие нулевые или единичные значения на выходной координате г. При этом формируются векторы-кандидаты в тест Тк е Тк. Из множества
Тк формируется тест Т, где в качестве элемента рассматривается набор Т{ е Т. Каждый Т{ е Т должен удовлетворять условиям:
Х1 Х2 Х3 У
0 1 1 0
1 1 Х 1
Х 1 0 0
1 0 1 0
Х 1 1 1
Х 0 0 1
0 0 Х 1
Х 0 1 0
1 1 0 0
Х 0 0 1
Х 1 1 1
(13)
Утверждение 1. Тест проверки одиночных константных неисправностей одновыходового примитива, задаваемых
Ь1 -покрытием списка дефектов
(11)
Пример 3. Построить тест проверки всех одиночных константных неисправностей для функции, заданной покрытием (6).
Сгенерируем Ь1 -покрытие списка дефектов и для каждой строки Ь1 выполним 0 -операцию по (10):
Ь1 =
Х1 Х2 .Х... Хт 2
1 0 ... 0. 0 1
0 1 . 0. 0 1
0 0 ... 1... 1 1
0 0 . 0. 1 1
(14)
= Тк(Ь,1), (12)
определяется процедурой:
1. Формирование кандидатов в тест путем выполнения
операций над векторами из Ь1 , С:
Тк е Тк,
(15)
применяется процедура (11), которая определяет в данном случае уже минимальный тест, гарантировано проверяющий схемную структуру, которая соответствует двухуровневой реализации булевой функции (6):
2. Получение теста ( Тг е Т) из множества кандидатов
Тк на основе анализа выражения (11).
3. Минимизация множества тест-векторов Т путем применения операции поглощения. Если Т{ п Тг = Тг, то
набор удаляется Тг из теста Т.
Проблема 3. Определяет возможность верификации результатов, полученных при решении первых двух проблем
Т0 Ь = С . (16)
Важность данной процедуры связана с многочисленными ошибками, возникающими в процессе ручного или автоматизированного проектирования тестов. Кроме того, согласно замечанию 1, решение проблемы 3 необходимо для верификации покрытия неисправностей при наличии в тесте символов Х. Для полученных наборов (13) верификация путем выполнения операций Ь,1 0 Т (Ь,1 ),
I = 1, 3 дает положительный результат:
Ь
Ж = £ (нг х д.), 1 = 1
П, д{ - число кубов и переменных в покрытии С{.
Пример 6. Выполнить моделирование одиночных константных неисправностей схемы, представленной на рис.2.
Х1 Х2 Х3 У
1 0 0 1
0 1 0 1
0 0 1 1
8 Т
Х1 ^2 ^3 У
0 1 1 0
1 1 X 1
X 1 0 0 ^3 У
1 0 1 0 X 0 0 1
X 1 1 1 = С 1 1 1 1
X 0 0 1 X 0 1 0
0 0 X 1 X 1 0 0
X 0 1 0 0 1 X 0
1 1 0 0
X 0 0 1
X 1 1 1
Это означает, что любой вектор Ь1 © Т(Ь1) е С является кубом исходного покрытия функции. Следовательно, тест проверки неисправностей не имеет ошибок проектирования.
4. АЛГОРИТМ КУБИЧЕСКОГО МОДЕЛИРОВАНИЯ НЕИСПРАВНОСТЕЙ КОМБИНАЦИОННЫХ СХЕМ
На основе процедуры (4), определим алгоритм кубического дедуктивного моделирования неисправностей цифрового устройства:
1. Моделирование исправного поведения очередного
примитива р (1 = 1, М) на тест-векторе Т1 (г = 1, N).
Если г = N - формируется список Ь (Т) проверенных неисправностей на тесте Т. Конец моделирования. Иначе, г < N - переход к п.2.
2. Если все элементы схемы обработаны (1 = М), выполняется сравнение векторов исправных состояний линий в двух соседних итерациях. Если векторы идентичны Тг = Тг- 1 , конец моделирования Т{ и переход к п. 3.
Иначе - переход к п. 1.
3. Определение списков неисправностей внешних входов в виде дополнения к их исправному состоянию
Ь = Ф}.
4. Моделирование неисправностей примитива р
(1 = 1, М) по процедуре (4). Дополнение полученного списка неисправностью выходной линии примитива,
Т
идентифицируемой в виде {] 1} .
5. Если (1 = М), выполняется формирование списка проверяемых дефектов Ь(Т{) , и переход к п.1. Иначе,
1 < М - переход к п. 4.
Быстродействие алгоритма сквозного интерпретативного синхронного моделирования неисправностей для одной итерации имеет оценку
Рисунок 2 - Цифровой функциональный модуль
Поведение примитивов задается кубическими покрытиями:
С (^ 1) С (^ 2)
1 2 5 2 13 6
1 3 7 _ _
5 6 8 X 0 0 1
) 1 1 1 1
1 X 0 X 0 1 0
0 1 1 X 1 0 0
0 0 0 0 1 X 0
С (^ 3) 8 6 7 4 9
X 0 0 X 1
X 10 1 1
0 11 X 1
X 0 1 X 0
1 X 1 X 0
X 10 0 0_
Рассматриваются одиночные константные неисправности линий, идентифицируемые как , где О = {0, 1} -знак константной неисправности,) - номер линии схемы. Для входного набора Т = 1111 моделируется исправное поведение объекта, которое дает вектор (111101011). За-
Т
тем генерируется список ^ = {] 1} входных дефектов цифрового устройства:
Ьх = {10} ; Ь2 = {20} ; Ьъ = {30} ; ^ = {40} .
Выполняется последовательная обработка всех элементов схемы для вычисления выходных списков неисправностей с учетом (4). Для первого примитива результат моделирования имеет вид
М
Ь
1 2 5 1 2 5
1 X 0 = L 0 X 0
0 1 1 1 0 1
0 0 0_ .1 1 0_
L5 = T( 110) © CF1
= L1 - L2 = {1°}.
Затем к полученному списку следует прибавить неисправность выходной линии, которая инверсна по отношению к значению координаты тест-вектора. В данном
случае получаем список L5 = {1°, 5°} .
Последовательная обработка оставшихся примитивов в схеме дает следующие результаты:
L6 = {1°, 2°, 3°, 6°} ; L7 = {1°, 71} ; L8 = {1°, 2°, 3°, 51, 6°, 8°} ; ^^ = {1°, 4°, 71, 9°} .
Количество проверяемых дефектов F по q линиям
формирует оценку качества теста (вектора)
Q = 2q)] 1°°% . Для тест-вектора 1111 получаем: Q = [4/29]1°°% = 22% .
5. МОДЕЛИРОВАНИЕ НЕИСПРАВНОСТЕЙ В ПОСЛЕДОВАТЕЛЬНОСТНЫХ ПРИМИТИВНЫХ ЭЛЕМЕНТАХ
Функциональная зависимость списка дефектов по наблюдаемому выходу Zr согласно (1) определяется уравнением
координате ) в соответствии с табл. 1 получается: °1) © Р{( °1),(1° )} = Щ - - 1 Ltj) . Таблица
2 предназначена для доопределения выходных координат куба покрытия списков неисправностей в моменты (t - 1 , 0. Например, для координаты Li: = V ее значение в
V
такте t- 1 равно °, а в момент t равно 1, что в табл.2 определяется буквой E. Исключение составляют преобразования символов Б, P. Здесь существует различие интерпретации в зависимости от того, рассматривается ли выходная переменная функцией или аргументом к выходу, для которого строится список проверяемых неисправностей. В первом случае доопределение упомянутых символов дает (^ E), во втором - (X, X), что свидетельствует об отсутствии списков неисправностей для данного выхода в момент t - 1 .
Таблица 1
© 0 ] X Z G т к N Q Е Н ] О [ А В S Р С F L V Y
0 0 0 1 X Z G т к N Q Е Н J О 1 А 13 S Р С F L V Y
0 1 1 0 X Z т G к N Е Q J Н I О А В р S F С V L Y
1 0 0 1 X Z G т к N н J Q Е О I В А р S L V С F Y
1 ! [ 0 X г т G к N J Н Е Q I О В А S р V L F С Y
0 X X X X X G т к N А А В В Y Y А В Y у В В А А Y
] X X X X X т G к N В В А А Y Y В А Y Y А А В В Y
X 0 0 ] X Z X X X X О I О ] О 1 Y Y Y Y ] О I О Y
X 1 1 0 X Z X X X X 1 О I О I О Y Y Y Y О [ О I Y
X X X X X X X X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Ц = Л(Т), (C)' (LtX 1 lX' ly-1 LZ-1)] > (17) Таблица 2
где Т е Т = (Тр ..., Т, ..., Тр) - пара соседних входных
воздействий, где каждая координата определена в следующих сочетаниях:
T =
'001101 X X X
0' 1' 0' 1'XX 0' 1'X
(18)
Двухфреймовый формат входного набора ориентирован на анализ последовательностного автомата, поскольку его покрытие в общем случае задано в двухтактном алфавите
А2 . Для технологичного выполнения операции ХОИ между координатами тест-вектора и кубического покрытия Tij © Ci: определим ее в виде табл.1.
V V
Каждая координата таблицы есть сокращенная форма записи списков неисправностей
L = Tj © Ca.
Например, если Т= (°1) , Ci: = Р , то по входной
У и
Для вычисления собственных неисправностей триггера следует учитывать следующие правила:
1) терм, имеющий более одной переменной без инверсии или все переменные с инверсией вычеркивается;
2) оставшиеся термы должны иметь одну переменную без инверсии, которая формирует собственную проверяе-
■Т »
мую неисправность ] j, инверсную состоянию переменной
на тесте.
Пример 9. Определить списки проверяемых неисправностей счетчика на двух тест-векторах. Моделирование первого набора дает результат:
10 0 0 110 1
© C
count
V C A B V C A B
0 X 0 0 1 X 0 1
1 E S E = L 0 Q S Q
1 E P H 0 Q P J
1 F S S 0C S P
ЬAТ) = VtCt _ 1 С{Л{_ В_ 1 V VtCt _ 1 С{Л{_ 1 Bt_ 1 V V у(с-1V Ct)At-1V Л = Л -1V в-1V At;
Ьв(Тх) = V, V У{С{ -1 С{В1 -1 V V(С,-1 V С,)В{-1 V В{ = = V V В - 1 V С - 1 V С V В;
Ь(Т1) = V С1-1 V С0 V Л/-1 V В1-1 V Л1 V
где инверсия переменной означает дополнение (вычитание) списка неисправностей.
Моделирование второго набора представлено ниже:
110 1 10 0 1
8 C,
count
V C A B V C A B
0 X 0 0 1 X 0 1
1 E S E = L 0 J S H
1 E P H 0 J P E
1 F S S 0V S S
lqST2) = vtct-1 CA- 1Bt-1 v VtCt- 1CA-1 Bt-1 V
V Vt ( Ct - 1 v Ct)At - 1 v At = At - 1 v Av
Lq2( t2 ) = Vt V VtCt - 1CtBt - 1 v Vt(Ct -1V Ct)Bt - 1 v Bt = vt v Bt;
Ь( Т2) = V0 V Л1-1 V Л1 V в0.
Таким образом, проверяемые неисправности относительно выходов счетчика составляют множество Ь (Т[) и
Ь(Т2) , где константная неисправность отмечена верхним индексом.
ЗАКЛЮЧЕНИЕ
Метод кубического моделирования неисправностей является новой технологией обработки цифровых схем табличного (вентильного, функционального, алгоритмического) уровня представления. Он позволяет за одну итерацию моделировать все одиночные константные неисправности цифрового устройства, проверяемые тест-вектором. Усло-
вие применения заключается в наличии табличной формы описания примитивов цифрового устройства. Предложенный метод также эффективно обрабатывает и последо-вательностные примитивы цифровых автоматов, описанные двухтактными кубическими покрытиями [2]. Последние формализуют описания алгоритмов в виде примитивов, соответствующих графам переходов, граф-схемам, таблицам переходов цифровых автоматов.
Предложенная технология тестирования по уравнению Т© С = Ь дает возможность: моделировать неисправности на основе анализа кубического покрытия; получать дедуктивные формулы для любых типовых функциональных элементов; проектировать компилятивные симуляторы для обработки цифровых устройств произвольного уровня описания; генерировать тесты для цифровых систем на основе использования КПСН; верифицировать результаты моделирования неисправностей и генерации тестов, проектировать аппаратурные быстродействующие симуляторы.
Модели и методы реализованы в виде программных приложений. Последние используются при генерации тестов для проектов на основе ЕРСА и СРЬО. Класс обрабатываемых структур: конечные автоматы в виде графов переходов, а также булевы уравнения с триг-герными схемами. Входной язык описания цифровых систем - УНОЬ. Программы генерации тестов и моделирования неисправностей ориентированы на интеграцию в системы проектирования фирм: АЫес, ХШпх.
ПЕРЕЧЕНЬ ССЫЛОК
1. Hayes J.P. A systematic approach to multivalued digital simulation// ICCD-84: Proc. IEEE Int. Conf. Comput. 1984. No. 4. P. 177-182.
2. Хаханов В.И. Техническая диагностика элементов и узлов персональных компьютеров. К.: I3MH. 1997.308 с.
3. Ермилов В.А. Метод отбора существенных неисправностей для диагностики цифровых схем. Общие выражения для неисправностей, возможных при эксперименте // Автоматика и телемеханика, 1971, № 1.- С. 159-167.
4. Armstrong D.B. A deductive method of simulating faults in logic circuits. IEEE Trans. on Computers. Vol. C-21. No. 5. 1972. P. 464-471.
5. Биргер А.Г. Многозначное дедуктивное моделирование цифровых устройств // Автоматика и вычислительная техника. - 1982.- №4.- С.77-82.
6. Levendel Y.H. and Menon P.R. Comparison of fault simulation methods - Treatment of unknown signal values.- Journal of digital system.- Vol.4.- 1980.- P.443-459.
7. Abramovici M., Breuer M.A. and Friedman A.D., Digital System Testing and Testable Design, Computer Science Press, 1998. 652 p.
2