УДК 681.325:519.713
КУБИЧЕСКОЕ МОДЕЛИРОВАНИЕ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ СИСТЕМ
ХАХАНОВ В.И, ШКИЛЬ А. С., ХАНЬКО В.В., СЫСЕНКО И.Ю.
Рис.1. Автоматная модель примитива
Предлагается методология проектирования формул дедуктивного моделирования константных логических неисправностей для цифровых систем. Функциональные элементы представляются в виде кубических покрытий. Разрабатываются универсальные процедуры транспортирования входных списков неисправностей по кубическому покрытию на выход примитива.
1. Введение
Применение дедуктивного алгоритма моделирования неисправностей при оценке качества тестов цифровых систем ограничено вентильным уровнем представления объекта [1]. С другой стороны, использование дедуктивных формул для вычисления выходных списков неисправностей есть самая быстродействующая технология их моделирования при создании компилятивных алгоритмов [2]. Однако проблема заключается в построении формул транспортирования дефектов через любой функциональный элемент. Ее положительное решение позволит обрабатывать цифровые объекты, описанные на функциональном, алгоритмическом и системном уровнях. Создание методологии проектирования формул для функциональных примитивов, представленных таблицами переходов (кубическими покрытиями) в целях дедуктивного моделирования одиночных константных неисправностей (ОКН) цифровых систем — задача, решаемая в данной работе.
2. Математический аппарат анализа примитива
Концептуальная модель последовательностного примитива представлена в виде
M=<X, Y, Z, f, g>,
где X=(X1,X2,...,Xi,...,Xm), Y=(Y1,Y2,...,Yi,...,Xh),
Z=(Z1,Z2,...,Zi,...,Zk) — множества входных, внутренних и выходных автоматных переменных, отношения между которыми описываются характеристическими уравнениями:
Y(t)=f[X(t-1), X(t), Y(t-1), Z(t-1)];
Z(t)=g[X(t-1), X(t), Y(t-1), Y(t), Z(t-1)]. (1)
Переменные Z(t) отличаются от Y(t) тем, что первые наблюдаемы по выходным линиям, а Y(t) в этом смысле есть внутренние. Формат автоматных переменных для записи кубического покрытия, соответствующий (1), имеет следующий вид:
X(t -1) Y(t -1) Z(t -1)
X(t) Y(t) Z(t)
Он может быть представлен автоматной моделью, изображенной на рис. 1.
Функциональный (в общем случае последовательностный примитив) элемент задается в формате следующих компонентов:
F2 = <(t-1,t),(X,Z,Y),{A2}>,
где (t- 1,t) — два автоматных соседних такта в описании функций; (X,Z,Y)— векторы входных, внутренних и выходных переменных; {A2} — двухтактный алфавит описания состояний (переходов) автоматных переменных [3,4]:
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}, A!={0,1,X={0,1}}, 0 (U)}.
Примитив описывается кубическим покрытием
C = (q, C2, ..., Ci, ..., Cn);
здесь Ci = (Cn, Ci2, ..., Cjj, ..., Ciq) - куб, включающий входные, внутренние, выходные координаты Ci = (CiX, CiY, CiZ), q=m+h+k. Для комбинационного автомата формат описания кубического покрытия
F1 = <(t),(X,Z),{A!}>
определяется отношениями на векторе переменных Ci = (CiX, CiZ). Он задает многовыходовой комбинационный примитивный элемент (ПЭ) с m входами и k выходами. Если k=1, то мы имеем двоичную булеву функцию от m переменных Z=f(X,,X2,...,
Xm).
Определение 1. Список входных неисправностей примитива есть вектор подмножеств проверяемых на входах дефектов S = (Sp S2,..., Sj,..., Sm), где Sj = {Sjj, Sj2,..., Sjr,..., Sjpj}; Pj — мощность подмножества проверяемых неисправностей Sj на входе j.
Дефект Sr є Sj, имеет знак, отвечающий условию Tj о Sr = 0 ; Tj — состояние линии j на векторе T.
Определение 2. Список входных неисправностей ПЭ называется одиночным, если выполняется условие
S1 П S2 П ... П Sj П ... П Sm = 0 .
Одиночный дефект S1 є Sj входной линии j проверяется на выходе функционала тестовым набором T=(Tj,..., Tj,..., Tm), если производная по неисправности s1 имеет значение пустого множества:
f = f(Tb...,Tj,...,Tm)Пf(Tb...,S[,...,Tm) = 0 (2)
do r
Определение 3. Список входных неисправностей ПЭ называется кратным, если выполняется условие 3 i, j(Si n Sj) ^0 . Кратность d дефекта Sjr определя-
РИ, 2000, № 1
83
ется максимальным количеством входов, пересечение списков которых равно Sjr.
Кратная производная определяет условия проверки
d-кратного дефекта sf є S :
f = f(Tl5..„ Tj,..., TdTm)n dsd 1 . d (3)
n (S1^..., SJ,..., S?,..., Tm) = 0,
где 1 < d < m . Кратная входная неисправность Sf принадлежит примитиву, а точнее — его d входам.
Лемма. Выходной список проверяемых дефектов S на тест-векторе T формируется вычислением 2m производных:
вывает такую возможность при использовании таблицы истинности в качестве формы представления модели примитива.
Теорема 1. Для функционального элемента, заданного таблицей истинности, вычисление всех 2й производных, формирующих выходной список неисправностей, определяется выражением:
S = {U [(П Sj)\(U Sj)]}U{-Тд,
Z0 X0 X0
X^ = Vj(Tj П Cjj =0);
X0=Vj(Tj П Cf Ф 0); (8)
Z0 =Vi(Tr n Cfr =0); i = 1,n;j = 1,m,
S = S
d=1,m ,
U_ Sf ^ (
r=1,cm
df
dSd
*0),.
(4)
здесь cm — число сочетаний неисправностей кратности d на m входах ПЭ.
В лучшем случае, когда тест-вектор представлен в двоичном виде, все проверяемые неисправности, присутствующие на входах примитива, могут быть обнаружены и на его выходе. Число таких дефектов может быть произвольным, но конечным. Дефекты формируются в группы, суммарная мощность которых, равная 2m, определяется многообразием сочетаний:
C1 + C2 + +C1 + +Cm _1 + Cm (5)
Если существуют две или более групп дефектов одной кратности на одних и тех же входах, то для их транспортирования на выход необходима одна процедура взятия производной заданной кратности, поскольку их влияние на состояние выхода примитива эквивалентно. Для троичного тест-вектора число неисправностей на выходе может быть меньшим, но предельная по вычислительной сложности процедура должна иметь возможность обрабатывать списки дефектов произвольной кратности.
Для любого трехвходового примитива, например, множество всех подмножеств одиночных и кратных константных дефектов имеет следующий вид:
Х1 S1 s2 s2
Х2 s2 S2 S32
Х3 S3 s2 S32
(6)
Если учесть, что идентификаторы дефектов, как правило, представлены десятичными числами, то неисправности (6) можно записать в виде матрицы или в форме списков:
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}
(7)
Идея дедуктивного метода моделирования неисправностей заключается в вычислении выходного списка проверяемых дефектов за одну итерацию анализа функционала. Следующая теорема обосно-
где Sj — список входных дефектов на линии j; Tr, Tj — выходная и входная координаты вектора исправного
моделирования; = Tf — неисправность выхода примитива, являющаяся теоретико-множественным дополнением по отношению к его исправному состоянию; Cf,Cfr — входная и выходная координаты i-го
куба покрытия С, n — число кубов; m — количество входных линий; r = 1 — число выходов.
Доказательство. Основывается на эквивалентности строк таблицы истинности термам дизъюнктивной (ДНФ) и конъюнктивной (КНФ) нормальной форм: m c m C
f(X1...Xm) = [V (Л Xj ij )] V i[ Л (V Xjij)]. (9)
VZi=1 j=1 j VZi=0 j=1 j
Оба типа термов равнозначны при формировании функции. Для транспортирования входных списков на выход функционала участвуют строки ДНФ или КНФ. Такое разделение обусловлено пустым пересечением тест-вектора T по выходу с одним из подмножеств C = {C0,C1} . Объединение функциональных отношений строк ДНФ C1 с C или КНФ C0 с C соответствует элементу дизъюнкции. Обработка же элементов конъюнкции и дизъюнкции формализована в [1,2]. Процедура обработки примитива, представленного таблицей истинности, сводится к объединению выходных списков, вычисленных на основе анализа строк, эквивалентных логическим элементам конъюнкции. При этом формула получения выходного списка является универсальной, как универсальна таблица истинности.
Теорема 2. Вычисление 2m производных, формирующих выходной список неисправностей функционала на основе использования выражения (8), инвариантно по отношению к кубическому покрытию.
Доказательство. Кубическое покрытие есть результат минимизации таблицы истинности. Оно отличается от последней наличием символов X на координатах кубов. Рассмотрим влияние этих символов на получение выходного списка проверяемых дефектов. Для двух двоичных кубов Cj, Ct, подлежащих склеиванию по только одной входной координате j: 3! j(Cjj П Ctj = 0) и удовлетворяющих условию (8), можно записать
S = (S П Sj) U (S\Sj). (10)
84
РИ, 2000, № 1
Для Cj, Q, отличающихся no j, список S, полученный по координатам, отличным отр взаимодействует с Sj
на первом кубе как S П Sj, на втором — как S \ Sj. Если S П Sj = 0, получается S \ Sj =0 , что доказывает истинность выражения (10). Иначе, S П Sj = S, что также доказывает истинность (10). Если S П Sj = Sj, формула (10) превращается в Sj US\Sj = S. Таким образом, выходной список S, формируемый двумя координатами строк таблицы истинности, эквивалентен списку, полученному по одной строке покрытия, имеющей на Су символ X. Наличие нескольких символов X в кубе Cj сводится к ситуации (10). Следовательно, выходной список неисправностей S, полученный на основе обработки таблицы истинности по (8), эквивалентен списку, вычисленному на основе анализа кубического покрытия.
Следствие 1. Универсальная формула определения списка неисправностей Sr по выходу г кубического покрытия С (таблицы истинности) многовыходового примитива имеет вид
Sr = {и [(n Sj)\(и Sj)])U{-тд,
Z0 X0 X0
X^ = Vj(Tj n Cj = 0);
X0=Vj[(Tj n Cj *0)&(C* * X)];
Z0=Vi(Tr n Cfr =0); ( )
i = 1,n;j = 1,m;r = 1,k;
n — число кубов; m — количество входных линий; k — число выходных линий в примитиве.
Пример 1. Задано кубическое покрытие функции
S1(C1 = 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 = {4,5};
S(T =1111) = S3 U S4 U S5 = {2,4,5,6,7},
где Sj — частичный список, формируемый кубом Cj; S(t) — список дефектов, проверяемый тест-вектором T и получаемый объединением
S = US . (12)
i=1
Для тест-вектора 0100 результат моделирования тех же неисправностей имеет вид:
S1(C1 = X001) = S2\S3 = {2,6};
S2(Cj = 1111) = Sj n S3\S2 = {4};
S3(C3 = X010) = 0;
S4(C4 = X100) = 0;
S5(C5 = 01X0) = 0;
S(T =0100) = S1 U S2 = {2,4,6}.
Теорема 3. Процедура определения выходного списка дефектов примитива на тест -векторе T, имеющем d символов X и двоичное состояние выхода, задается выражением
s = n St,
t=1
d
(13)
где Sl — выходной список, проверяемый двоичным вектором Tt є T , д мощность множества двоичных векторов равна 2d.
С(Х2Х3 V Х1Х2Х3) = <
Х1 Х2 Х3 У
X 0 0 1
1 1 1 1
X 0 1 0
X 1 0 0
0 1 X 0
Входные списки неисправностей определены подмножествами:
51 = {1,2,4,5};
52 = {1,2,3,6};
53 = {1,3,4,7}.
Доказательство. Поскольку вектор T существует в одном временном фрейме, проверяющие способности каждого из Tt є T не должны противоречить друг другу, что возможно, если пересечение выходных списков не равно пустому множеству: Vt(f| St ф 0). Другая ситуация Vt(fl St = 0) имеет место, когда проверяемые неисправности на двоичных наборах Tt є T относятся к переменной j. Тогда по аналогии с (10) истинность тождества
(S П Sj) n(S\Sj) = 0 (14)
Определить выходной список неисправностей для тест-вектора 1111.
Решение сводится к выполнению пересечений между выходными координатами вектора T и кубами покрытия, удовлетворяющими условиям необходимости Vi(Tr П Cfr) = 0 . Далее анализ упомянутых кубов по (11) дает результат:
определяет пустой список проверяемых неисправно -стей для вектора, имеющего символ X. Аналогичными являются и рассуждения относительно наборов, содержащих d символов X. Такие векторы можно разложить на составляющие, содержащие по одному символу X.
Следствие 2. Если состояние выхода функционала на троичном тест-векторе Tt є T равно X, то S = 0 .
Здесь по выходным координатам не выполняется условие пустого пересечения, определенное в (8). Это доказывает справедливость следствия.
РИ, 2000, № 1
85
3. Алгоритм кубического моделирования неисправностей комбинационных схем
На основе процедуры (11) определим алгоритм дедуктивного моделирования неисправностей цифрового устройства:
1. Моделирование исправного поведения очередного примитива Pi (i = 1,M) на тест-векторе Tt(t = 1,N) .
Если t = N — формируется список S(T) проверенных неисправностей на тесте T. Конец моделирования. Иначе, t < N — переход к п.2.
2. Если все элементы схемы обработаны (i = M), выполняется сравнение векторов исправных состояний линий в двух соседних итерациях. Если векторы идентичны It = T , конец моделирования Tt и переход к п. 3. Иначе — переход к п. 1.
3. Определение списков неисправностей внешних входов в виде дополнения к их исправному состоянию Sj = {jTj}.
4. Моделирование неисправностей примитива Pi (i = 1, M) по процедуре (11).
5. Если (i = M), выполняется формирование списка проверяемых дефектов S(Tt), и переход к п.1. Иначе, i < M — переход к п. 4.
Пример 2. Выполнить моделирование неисправностей схемы, представленной на рис.2.
Рис.2. Функциональная схема
Поведение примитивов задается кубическими покрытиями:
C(F1)
1 2 5
1 3 7
5 6 8
X 0
0 1 1
0 0 0
C(F3)
C(F2) 8 6 7 4 9
2 1 3 6 [X 0 0 X 1
(X 0 0 1 X 1 0 1 1
1 1 1 1 0 1 1 X 1
Vх 0 1 0 ; X 0 1 X 0
X 1 0 0 1 X 1 X 0
0 1 X 0 X 1 0 0 0
Рассматриваются ОКН эквипотенциальных линий
jCT , где ст = {0,1} — знак константной неисправности, j — номер линии схемы.
Для входного набора Т= 1111 моделируется исправное поведение объекта, которое дает вектор (111101011). Затем генерируется список входных дефектов цифрового устройства:
S1 = {10};S2 = {20};S3 = {30};S4 = {40}.
Выполняется последовательная обработка всех элементов схемы для вычисления выходных списков неисправностей с учетом (11):
S1(C1 = 1X0) = 0;
S2(C2 = 011) = Sx\S2 = {10};
S3(C3 = 000) = S1 n S2 =0;
S5(T =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(T =1111) = S3 U S4 US5 U60 = {10,20,30,60}.
S1(C1 = 1X0) = 0;
S2(C2 = 011) = S1 \ S3 = {10};
S3(C3 = 000) = S1П S3 =0;
S7(T =110) = S2 U S3 U 71 = {10,?1}.
S1(C1 = 1X0) = S5 = {10,51};
S2(C2 = 011) = 0;
S3(C3 = 000) = S6\S5 = {20,30,60};
S8(T =011) = S1 US3 U80 = {10,20,30,51,6080}.
S1(C1 = X00X1) = 0;
S2(C2 = X1011) = 0;
S3(C3 = 011X1) = 0;
S4(C4 = X01X0) = S7 n S6 = {10};
S5(C5 = 1X1X0) = S7\S8 = {71};
S6(C6 = X1000) = S4\S6\S7 = {40};
S9(T = 11011) = S4US5 US6 U90 = {10,40,71,90}.
Количество проверяемых дефектов D по q линиям формирует оценку качества теста (вектора):
Q = [D/(2 х d)] х 100%.
Для тест-вектора 1111 получаем:
Q = [4/(2 х 9)] х 100%= 22 %.
4. Моделирование неисправностей в последовательностных ПЭ
Формула моделирования выходного списка неисправностей (11) для последовательностного примитива модифицируется на основании (1). Выходные списки дефектов определяются функциями:
86
РИ, 2000, № 1
sy = f[(T),(C),(SX_1sX,sY_1,sf_1)]; SZ = f[(T),(C),(SX_iSX,StY_i,Sf_i)],
Результат обработки символов А2-алфавита на входных и невыходных координатах куба покрытия последовательностного примитива при подаче тест-
(15)
вектора (16) представлен в табл. 1.
где Tt є T = (Ti,...,Tt,...,Tp) — тествектор, заданный в алфавите входных воздействий, описывающих пары соседних наборов в следующих сочетаниях:
Таблица 1
Tt =
0 0 1 1 _0 1 X X X о’ГоТх’х’ o’i’x
. (16)
Такой формат тест-вектора позволяет выполнять координатные операции пересечения и вычитания, упомянутые в (11). Учитывая, что координата куба последовательностного примитива в общем случае определена в алфавите А2, для реализации процедуры (11) необходимо получить аналитические выражения манипулирования списками неисправностей в двух автоматных тактах.
Для этого воспользуемся известным тождеством [5]: anb\c = a\cnb ,
> 0 1 X Z G T K N Q E H J O I A B S P C F L V Y
0 0 0 0 0 - n 0 0 - - n n 0 0 - n -n -n n n - - 0
0 - n 0 0 0 0 0 0 - n - n - n 0 0 -n n- n - n - 0
0 0 0 0 0 - n 0 0 - - n n 0 0 - n -n -n n n - - 0
1 n - 0 0 0 0 0 0 n - n - n - 0 0 n- -n - n - n 0
1 0 0 0 0 n - 0 0 n n - - 0 0 n - n- n- - - n n 0
0 - n 0 0 0 0 0 0 - n - n - n 0 0 -n n- n - n - 0
1 0 0 0 0 n - 0 0 n n - - 0 0 n - n- n- - - n n 0
1 n - 0 0 0 0 0 0 n - n - n - 0 0 n- -n - n - n 0
0 0 0 0 0 - n 0 0 - - n n 0 0 - n 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 n - 0 0 n n - - 0 0 n - 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 - n 0 0 0 0 0 0 - n - n - n 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 n - 0 0 0 0 0 0 n - n - n - 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Каждая координата (см.табл. 1) определена символами вычитания (-), пересечения (п) или пустого множества (0 ), в автоматных тактах t-1 и/или t.
которое свидетельствует о равнозначности операций пересечения и вычитания в дедекиндовой решетке с дополнениями. Учитывая определение разности,
a\b = anb , получаем anb\cuanbnc = anb . Будем также считать, что запись na n b = a nb . Кроме того, согласно теории автоматов, истинным является утверждение, что для куба Ц, удовлетворяющего условию 3i(Tr П C;r = 0), существует хотя бы одно пустое пересечение по входной (псевдовходной) координате. Это означает, что практически не может существовать теоретико-множественного выражения, типа: \a \ b . Но наличие пустого пересечения модифицирует последнюю формулу к виду: пс \ a \ b = с \ a \b . Следовательно, бинарные операции пересечения и вычитания можно свести к унарным в смысле раздельного рассмотрения каждой координаты Cij є C с позиции формирования выходного списка проверяемых дефектов.
Учитывая изложенное, применяем (11) для вычисления элементарных формул получения списков проверяемых дефектов по невыходным и выходным координатам куба покрытия в соответствии с шаблоном (множества вариантов пересечений и их условные сокращения представлены в правой части равенства, где знак “-” тождественен знаку “\”):
T
t-1 t
n ai є A2
t-1 t
(nSX_b-SX_1> {nSX-SX>
{n,->
{n,-}
. (17)
Примеры определения отдельных координат табл. 1 показаны ниже:
T
“0" 0 n 0 "0" 0 = -SX = "0" ; T "0" 0 n 1 "0" 1 = nSX = "0" n
T
T
“0" 0 n G "0 0 = -SX_1 = 0
"0" 0 n T "1" 0 = nSX{_1 = n 0
T
T
n E
n H
“0" 1 SX ^ SX - -St-1 n St - n
1" 0 oX SX - nSt-1_ St - n
T
n J
- ^CX oX_
— nSt _1 ^ St —
T
n O
01
00
, CX cX,,cX cXx cX _
- (-St_1 - St ) u (nSt_1 - St ) - -St -
0
T
n I
: (-SX-1 n sX ) U (nS:X-1 n sX ) = nSX =
T
n A
00
01
, CX 0X4, ,, CX 0X4 CX
■ (_St-1_ St ) u (_St-1 ° St ) - _St-1 -
0
T
с 11
° v
n S
= (nSX_1 - SX) u (nSX_1 n SX) = nSX{_1 =
= (-S01 - SX) u (OS01 n SX) =
-П
-n
РИ, 2000, № 1
87
T
0
0
n P
(-S^1 n S?) u (nSf.! - Sf)
-n
n-
Примеры взаимодействия списков для отдельных выходных координат табл.2 имеют вид:
T
0
0
n C
011
101
(-StX_i n SX) u (nSX_1 - SX) u
T
о1
0
1
= uZ
1 _ t -
0]. u ’
U (nStX_1 n StX) = (nSX_!) u (nSf)
п п .T "0" 0 n X "0" 01 = -SZ U Zt = "0" 'U
T
n F
011
001
= (-SX_! - SX ) u (nStX_! - StX) u
u (nStX_! n SX) = (nStX_!) u (-SX) =
n
T
T
n L
001
011
X
X
T
n E
= uZ1 =
n J
= nS^lj u Z1 =
u (nStX_1 n SX) = (-SX_!) u (nSX) =
- .T "0" 0 n I 01" 11 = (-SZ_1 u z1) u (nSZ_1 u Zt) = uZ1 = "0" 'U
n ’
T
n V
001
010
= (-SX_! - SX) u (-SX_! n SX) u
Sj = Tj > CZ,(Z = {X,Y}).
(18)
По данной формуле можно однозначно восстановить список входных дефектов, соответствующих букве двухтактного алфавита. Например, если Tj = (01) и Cjj= P, тогда получаем по входной координате j в соответствии с табл. 1:
T
> P
-п
-п
= (-SX_1 - Sf) u (nSf.! n SX).
u (nSX_! - SX) = (-SX_!) u (-SX) =
Каждая координата табл. 1 есть сокращенная форма записи операции:
=T
T
Результат обработки символов А2-алфавита для выходных координат куба покрытия при подаче тествектора (16) представлен в табл. 2. Здесь символ объединения идентифицирует проверку неисправности выхода, определяемой координатой куба покрытия в момент t: u cZ . Символ 0 свидетельствует об отсутствии списка проверяемых дефектов в момент t-1 и/или t.
T
n C
T
T
T
T
011
101
T
n A "00" 01 = -SZ_1 u Z1 = 'U
n B 11" 01 = nS^ u Z1 = n 'U
n S О О = nS^ u Z1 = n 'U
n P "01“ 10 = -SZ_1 u Zt = 'U
n L
001
011
= (-SZ-1 u z1) u (nSZ-i u z1) = uZ1 =
= nSZ_1 u Z1 =
= (-SZ-1 u Zt) u (nSZ-1 u Zt) = uZ1 =
n F
011
001
T
n V
001
010
= -SZ_1 u Z1 =
u
n Y
0011
0101
= (-SZ_1 u zt) u (nSZ_1 u z1) = uZt =
Каждая координата табл. 2 есть сокращенная форма записи двух операций:
Таблица 2
< 0 1 X Z G T K N Q E H J O I A B S P C F L V Y
0 0 0 0 0 0 0 0 0 0 - 0 n 0 0 - n n - 0 n 0 - 0
0 0 'U 'U 0 0 0 0 0 0 'U 0 'U 0 'U 'U 'U 'U 'U u 'U 'U 'U u
0 0 0 0 0 0 0 0 0 - 0 n 0 0 0 - n - n n 0 - 0 0
1 'U 0 'U 0 0 0 0 0 'U 0 'U 0 'U 0 'U 'U 'U 'U u 'U u 'U
1 0 0 0 0 0 0 0 0 0 n 0 - 0 0 n - - n 0 - 0 n 0
0 0 'U 'U 0 0 0 0 0 0 'U 0 'U 0 'U 'U 'U 'U u 'U 'U u
1 0 0 0 0 0 0 0 0 n 0 - 0 0 0 n - n - - 0 n 0 0
1 'U 0 'U 0 0 0 0 0 'U 0 'U 0 'U 0 'U 'U 'U u u 'U u u 'U
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 'U 'U 0 0 0 0 0 0 'U 0 'U 0 'U 'U 'U 'U 'U u u 'U u 'U
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 'U 0 'U 0 0 0 0 0 'U 0 'U 0 'U 0 'U 'U 'U u 'U u u 'U u
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SZ-1,j=^ CZ; Su=j CZ- (19)
По данной формуле можно однозначно восстановить список дефектов для буквы двухтактного алфавита, находящейся на выходной координате CZ куба по-
ij
крытия. При T = (01) и CZ = S получа-
j ij
ем списки в соответствии с табл. 2:
SZ-U= Tj
< S
(-sz_1);
S^Tr = Tr
< S
= u r
Tr
С учетом полученных таблиц анализа координат двухтактного кубического покрытия формула для определения выходного списка неисправностей (11) модифицируется к виду
88
РИ, 2000, № 1
m+h к -t
Sr = U [(nSj)nsf1 u rTr], (20)
vi(Tr n с?;=0) J-1 J-1
где m, h, k — число входных, внутренних, выходных переменных последовательностного примитива; r — номер выхода элемента, для которого строится список проверяемых дефектов.
Для комбинационного примитива последняя формула модифицируется к виду
к T
Sr = и [(П Sj) иrTr]. (21)
vi(Tr n c;Z =0) j_1 ( )
Пример 3. Для SR -триггера, покрытие которого представлено семью кубами
S R Q Q
0 0 1 1
0 1 1 0
1 0 0 1
1 1 Q J
1 1 J Q
1 1 B B
формулы дедуктивного моделирования неисправностей (для входных наборов, записанных в формате
переменных < St,Rt,Qt _1,Qt _1 >) имеют вид:
SQ
0X01 0 0X1 0 X 1 X
St u Qt;
Sq[1 X 0 1 = St и Qt_1 U Qt; SQ[1 0 X 1 = St uRt U Qt; Sq[x 1 1 0 = Rt U Qt-1U Qt;
Sq[1 0 X 1 = Rt -Qt_1 и St u Qt;
SQ
X 0 X 1 X 0 1 X X 0 1 0
Rt u Qt;
Sq[1 X 0 1 = St и Qt_1 u Qt;
Sq[x 1 1 0 = Rt u Qt_1 u Qt;
Sq[0 1 1 X = St u Rt u Qt;
Sq[0 1 0 1 = St -Qt_1 uRt u Qt;
Sq[1 1 0 1 = St - Rt u Qt-1 u Qt;
Sq[1 1 1 0 = Qt-1 - St U Rt u Qt.
При входном наборе, например, (0110) объединенный список дефектов, проверяемых по выходам, равен
РИ, 2000, № 1
SQ[X 1 1 0 u Sq[0 1 1 X =
= (St uRt u_Qt) u (Rt u Qt-1 u Qt) =
= St u Rt u Qt u Qt _1 u Qt.
5. Заключение
Метод кубического моделирования неисправностей является новой технологией обработки цифровых схем функционального уровня представления. Он позволяет за одну итерацию моделировать все ОКН цифрового устройства, проверяемые тест-вектором. Достоинство метода заключается в инвариантности к уровням (вентильный, функциональный, алгоритмический) описания цифровых схем. Условие применения заключается в наличии табличной формы описания примитивов цифрового устройства. Предложенный метод также эффективно обрабатывает и последовательностные примитивы, описанные двухтактными кубическими покрытиями [3]. Последние формализуют алгоритмический уровень представления примитивов.
Предложенная методика дает возможность: получать дедуктивные формулы для любых типовых функциональных элементов; проектировать компилятивные симуляторы для обработки цифровых устройств произвольного уровня описания; генерировать тесты для цифровых систем на основе использования дедуктивных формул; проектировать аппаратурные быстродействующие симуляторы.
Литература: 1. M. Abramovici, M.A.Breuerand A.D. Friedman, Digital System Testing and Testable Design, Computer Science Press, 1998. 2. Armstrong D.B. A deductive mrthod of simulating faults in logic circuits. IEEE Trans. on Computers. 1972. Vol. C-21. No. 5. P. 464-471. 3. Хаханов В.И. Техническая диагностика элементов и узлов персональных компьютеров. К.: I3MH. 1997.308 с. 4. Hayes J.P. A systematic approach to multivalued digital simulation// ICCD-84: Proc. IEEE Int. Conf. Comput. 1984. No. 4. P. 177182. 5. Лавров И.А., Максимова И.Л. Задачи по теории множеств, математической логике и теории алгоритмов. М.: Наука, 1984. 224 с.
Поступила в редколлегию 12.10.99 Рецензент: д-р техн. наук Кривуля Г.Ф.
Хаханов Владимир Иванович, д-р техн. наук, профессор кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных систем. Увлечения: баскетбол, футбол, горные лыжи. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26.
Шкиль Александр Сергеевич, канд. техн. наук, доцент кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: диагностика компьютеров. Увлечения: теннис. Адрес: Украина, 61726, Харьков, пр. Ленина, 14, тел. 40-93-26.
Ханько Вадим Викторович, аспирант кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика сетей. Увлечения: иностранные языки. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26.
Сысенко Ирина Юрьевна, аспирантка кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: диагностика вычислительных устройств . Хобби: музыка, иностранные языки. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26.
89