Научная статья на тему 'Генерация тестов для проверки неисправностей цифровых систем'

Генерация тестов для проверки неисправностей цифровых систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
250
47
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Хаханов Владимир Иванович, Масуд М.Д. Мехеди

Предлагается метод генерации тестов для константных неисправностей, использующий кубические покрытия списков неисправностей для построения одномерных путей активизации. Проблема синтеза тестов цифровых устройств формализуется в виде линейного уравнения диагноза.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Хаханов Владимир Иванович, Масуд М.Д. Мехеди

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Test generation for fault detection of digital system

Test generation method for stuck-fault detection of digital system using single path activization is offered. Functional elements are represented as a cubic covering form. Test generetion problem as a linear equiation is formalized.

Текст научной работы на тему «Генерация тестов для проверки неисправностей цифровых систем»

УДК 681.325:519.713

ГЕНЕРАЦИЯ ТЕСТОВ ДЛЯ ПРОВЕРКИ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ СИСТЕМ

ХАХАНОВВ.И., МАСУДМ.Д. МЕХЕДИ___________

Предлагается метод генерации тестов для константных неисправностей, использующий кубические покрытия списков неисправностей для построения одномерных путей активизации. Проблема синтеза тестов цифровых устройств формализуется в виде линейного уравнения диагноза.

1. Введение

Достижения в микроэлектронике привели к созданию кристаллов сверхбольшой степени интеграции, на которых реализуются: микропроцессоры, сигнальные процессоры, заказные БИС, ПЛИС. В свою очередь для разработки цифровых систем (ЦС) на СБИС необходимы новые технологии автоматизированного проектирования, включающего: описание, верификацию, синтез, трассировку, размещение и имплементацию на кристалле [ 1 -6]. Существующие САПР ведущих фирм мира: Xilnx, Aldec, Altera, Actel, Asset, Cadence, Mentor Graphics, Synopsis достаточно успешно решают все задачи, относящиеся к автоматическому проектированию [7]. При этом существует проблема верификации проектов ЦС, связанная с их размерностью, которая достигает нескольких миллионов эквивалентных вентилей на кристалле. Ее решение сводится к формальной или тестовой проверке соответствия проекта, представленного на языках высокого уровня описания аппаратуры (VHDl, Verilog, System C, Abel, EDIF) заданной спецификации. Тестовая верификация заключается в сравнительном анализе результатов моделирования спецификации и формальном описании на представительной и валидной выборке входных последовательностей, называемых тестом. Для реализации упомянутой процедуры необходимо решить задачу генерации теста проверки дефектов заданного класса [3 -6], к которому предъявляются противоречивые требования: он должен быть минимальной длины и проверять все существенные неисправности [1].

Рассмотрим одиночные константные неисправности (ОКН) эквипотенциальных линий проектов цифровых систем. Их число определяется удвоен -ным количеством таких линий и достигает в реальных проектах десятков и сотен тысяч. Качество теста есть отношение проверенных неисправностей к их общему числу, выраженное в процентах. В качестве объекта выступает ЦС, реализуемая в кристаллах ПЛИС вентильного, функционального и алгоритмического уровней, представленная на языке описания аппаратуры VHDL. Существующие методы генерации тестов можно классифицировать по трем группам: алгоритмические, псевдослучайные и детерминированные [1]. Последние ориентированы на построение тестов для конкрен-

тых неисправностей или для проверки исправного поведения цифровых систем. Учитывая, что по вычислительной сложности данная задача относится к NP-полным [1], то многообразие существующих методов построения тестов укладывается в схему снижения размерности вычислительных затрат. В связи с этим далее предлагается метод активизации неисправностей, связанный с построением одномерных путей активизации ОКН [4] путем использования линейной зависимости между тестом, неисправностью и моделью ЦС или ее функционального элемента, заданных кубическими покрытиями (КП) [1].

2. Модель представления цифровой системы

Автоматная модель примитива представляется в виде:

M=<X, Y, Z, f, g>,

где X=(X1,X2,...,Xi,...,Xm), Y=(YbY2,...,Yi,...,Xh),

Z=(Zi,Z2,...,Zi,...,Zk) — множества входных, внутренних и выходных автоматных переменных, отношения между которыми описываются уравнениями [2]:

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)

Функциональный последовательностный примитив задается компонентами: F2 = <(t-1,t), (X,Z,Y), {A2}>, где (t-1,t) — два автоматных соседних такта в описании функции; (X,Z,Y) — векторы входных, внутренних и выходных переменных; {A2} — двухтактный алфавит описания состояний (переходов) автоматных переменных [1,2]: 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}}, 0 (U)}.

Формой описания примитива выступает КП: C = =(C1, C2, ..., Ci, ..., Cn), где Ci = (Ci1, Ci2, ..., Cij, ..., Ciq) — куб, включающий входные, внутренние, выходные координаты Ci = (CiX, QY, QZ), q=m+h+k. Для комбинационного автомата формат описания КП: F1 = <(t),(X,Z),{A1}> определяется отношениями на ^=т+к)-мерном векторе переменных Ci = (CiX, CiZ). Формат задает многовыходовой комбинационный примитивный элемент с m входами и к выходами. Двоичная булева функция от m переменных Z=f(X1,X2,..., Xm) определяется при к=1.

Проблемы тестирования цифрового устройства (примитива) формулируются в условиях неопределенности одного из компонентов модели

W = (M,L,T),

где M — модель, представленная кубическим покрытием C; L — кубическое покрытие списков неисправностей (КПСН) (Fault Lists Cubic Covering — FLCC); T — тест проверки неисправностей.

Покрытие неисправностей для примитива или ЦС задается в виде:

78

РИ, 2000, № 4

L (Li, L2, Li, Ln),

здесь Li = (Lii, Li2, Lij, Liq) - куб, включа-

ющий входные, внутренние, выходные координаты: Ь; = (LX,lJ,hf), q=m+h+k; = {0, 1, X};

0 — определяет вычитание (дополнение) списка L ;;

1 — задает пересечение Ly ; X={0,1} — идентифицирует несущественность списка неисправностей L;j. Если LZr — выходная наблюдаемая переменная, то (0) 1 — есть идентификатор (не-) проверки неисправностей куба L; на выходе r, X={0,1} — задает неопределенное состояние выходной координаты LZr, которое можно интерпретировать, как 0, и как 1.

3. Проблема моделирования неисправностей

Кубическое покрытие списков неисправностей L для вектора T и покрытия примитива С вычисляется по линейному уравнению

T © C = L , (2)

где © — бинарная координатная операция XOR, определяющая взаимодействие компонентов T, C (L) в троичном алфавите:

Здесь знак “—” эквивалентен теоретико-множественному вычитанию; C-j 'є Cl ' — входные координаты куба покрытия (j = 1, m), модифицированные для выполнения прямой импликации f [С (X) ] в целях определения существенности координат вектора С (X) = X на состояние выхода r примитива,

/-XX)

по правилу C-j =

Пример 1. Для мультиплексора, описанного функцией f(a,b,c) = ac v bc, КПСН для тестового набора T = (1010) определяется по формуле (2):

14 ^ Tj * X; Iх ^ Tj =X

T(1010) © Cmux

a b c d a b c d

0 X 0 0 1 X 1 0

1 X 0 1 = L 0 X 1 1

X 0 1 0 X 0 0 0

X 1 1 1 X 1 0 1

(6)

Здесь L—кубическое покрытие списков неисправностей, по которому можно записать дизъюнктивную нормальную форму или теоретико-множественное уравнение для вычисления выходного списка дефектов на векторе (1010):

Tj © Cij =

© 0 1 X

0 0 1 X

1 1 0 X

X X X X

(3)

Универсальная формула анализа КПСН, полученного в результате применения (3) к тест-вектору Т и покрытию многовыходового примитива С для определения по выходу r списка проверяемых неисправностей Lr, имеет следующий вид:

Lr

и

Vi(Tr ®Cir =1)

lHLrj®Cij

j=1 ij

(4)

L = ac v bc = (c - a) u (b - c).

Из данного выражения следует, что собственный список проверяемых входных ОКН мультиплексора представлен множеством L = {b1,c0}.

В общем случае для вычисления собственных неисправностей примитива применяется F-процедура:

1) терм дизъюнктивной нормальной формы, имеющий более одной переменной без инверсии или все переменные с инверсией, вычеркивается;

2) оставшиеся термы должны иметь одну переменную без инверсии, которая формирует собственную

Т Tj®Cij где L-j ij

ij

Tj® 4= 1 Lij ^ Tj © Cij = 0,

проверяемую неисправность jTj, инверсную состоянию координаты тест-вектора Tj.

Lij — рассматривается как список дефектов, относящийся к линии j, который следует вычитать из неисправностей, проверяемых по невыходным линиям примитива; Ly — неисправности, которые необходимо пересекать с невыходными списками. Если тест-вектор определен в троичном алфавите Tj = {0,1, X} , то после получения покрытия списков

неисправностей каждый куб Li следует верифицировать по правилу

L = L - Li ^ [f(C (X)) = X],i = ЇЧ (5)

Пример 2. Задано КП функции

XI X2 X3 Y

X 0 0 1

C(X2X3 VXpX2X3) = 1 X 1 0 1 1 1 0 . (7)

X 1 0 0

0 1 X 0

Списки идентификаторов неисправностей для трех входов определены подмножествами:

L1 = {1,2,4,5}; L2 = {1,2,3,6}; L3 = {1,3,4,7}. (8)

Определить выходной список неисправностей для тест-вектора 1111.

РИ, 2000, № 4

79

Решение сводится к выполнению © -операции между вектором T и покрытием С:

T(1111) © С

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

Далее по единичным значениям выхода Y в покрытии L записывается дизъюнктивная нормальная форма (теоретико-множественное уравнение) проверяемых входных списков:

L = Х2Хз vX2X3 vX1X2 =

= (X2 -X3)и (X3 -X2)и (X1 -X2).

(9)

Подстановкой вместо переменных X; соответству-

ющих списков L; получается следующий результат:

L1

X1 X2 ..Xj.. Xm Z

1 0 ...0... 0 1

0 1 ...0... 0 1

0 0 ...1... 1 1

0 0 ...0... 1 1

определяется Т-процедурой:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(14)

1. Формирование кандидатов в тест Ttk є Tk путем выполнения операций над векторами из L1 ,С :

L1 © С = Tk . (15)

2. Получение теста T (Tt є T) из множества кандидатов Tk на основе применения выражения (12).

3. Минимизация множества тест-векторов T путем выполнения операции поглощения:

L = ({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}. (10)

4. Проблема генерации тестов

Тест проверки дефектов примитива, задаваемых l\ -кубом покрытия списка неисправностей L = (L(-,L1i), определяется по уравнению:

L ® С = Tk , (11)

где L0, L1i — кубы, имеющие нулевые или единичные значения на выходной координате г. При этом определяются векторы-кандидаты в тест Ttk є Tk . Из множества Tk формируется тест T, где в качестве элемента рассматривается набор Tt є T . Каждый Tt є T должен удовлетворять условиям:

Tt = Ci n Ttk ^ 3i(Ci n Tk Ф 0). (12)

Пример 3. Для функции AND-NOT построить тест, проверяющий списки неисправностей, заданные кубом L(011).

Приведем процедуру получения теста на основе последовательного применения формул (11) и (12):

a b c

0 X 1

AND X 0 1

1 1 0

_Tk

a b c

0 X 0

X 1 0

1 0 1

a b c

T 1 1 0

1 0 1

(13)

В результате получены два набора, которые одномерно активизируют входную переменную b. Следовательно, тест является полным относительно проверки одиночных константных дефектов на линиях b, c.

Тест проверки одиночных константных неисправностей одновыходового примитива, задаваемых

L1 -покрытием списка дефектов

T = T - Tr ^ Ti n Tr = Tr .

Пример 4. Построить тест проверки всех ОКН для функции, заданной покрытием (7).

Генерируется L1 -покрытие списка дефектов по

аналогии с (14) и для строки l\ выполняется © -операция по (11):

X1 X2 X3 Y X1 X2 X3 Y

X 0 0 1

L1 1 0 0 1 © С 1 1 1 1

0 1 0 1 X 0 1 0

0 0 1 1 X 1 0 0 (16)

0 1 X 0

= Tk(L1i),i = 1,3.

К полученным подмножествам кандидатов в тест:

Tk(L11)

Tk(L12)

Tk(L13)

X1 X2 X3 Y

X 0 0 0

0 1 1 0

X 0 1 1

X 1 0 1

1 1 X 1

X1 X2 X3 Y

X 1 0 0

1 0 1 0

X 1 1 1

X 0 0 1

0 0 X 1

X1 X2 X3 Y

X 0 1 0

1 1 0 0

X 0 0 1

X 1 1 1

0 1 X 1

применяется процедура (12), которая определяет в данном случае уже минимальный тест, гарантированно проверяющий схемную структуру, которая соответствует двухуровневой реализации булевой функции (7):

80

РИ, 2000, № 4

X1 X2 X3 Y

0 1 1 0

1 1 X 1

X 1 0 0

1 0 1 0

X 1 1 1

X 0 0 1

0 0 X 1

X 0 1 0

1 1 0 0

X 0 0 1

X 1 1 1

5. Проблема верификации тестов

(17)

Она определяет возможность верификации результатов, полученных при решении первых двух про -блем

T © L = С . (18)

Необходимость такой процедуры связана с многочисленными ошибками, возникающими в процессе ручного или автоматизированного проектирования тестов. Кроме того, решение проблемы 3 обязательно для верификации покрытия неисправностей при наличии в тесте символов X. Для полученных наборов (17) верификация путем выполнения операций L1; ©T (L1i),i = 1,3, дает положительный результат:

L

Xi х2 X3 Y

© T

= С

1 0 0 1

0 1 0 1

0 0 1 1

X1 X2 X3 Y

0 1 1 0

1 1 X 1

X 1 0 0

1 0 1 0

X 1 1 1

X 0 0 1

0 0 X 1

X 0 1 0

1 1 0 0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

X 0 0 1

X 1 1 1

X1 X2 X3 Y

X 0 0 1

1 1 1 1

X 0 1 0

X 1 0 0

0 1 X 0

©

Это означает, что любой вектор L1; © T (L1;) є С является кубом исходного покрытия функции. Следовательно, тест проверки неисправностей не имеет ошибок проектирования.

6. Заключение

Предложенный метод также эффективно обрабатывает последовательностные примитивы цифровых автоматов, описанные двухтактными КП [2]. Последние формализуют описания алгоритмов в виде примитивов, соответствующих графам переходов, граф-схемам, таблицам переходов цифровых автоматов.

РИ, 2000, № 4

Предложенная технология тестирования по уравне -нию T © C = L дает возможность: моделировать неисправности на основе анализа КП; получать дедуктивные формулы для любых типовых функциональных элементов; проектировать компилятивные симуляторы для обработки цифровых устройств произвольного уровня описания; генерировать тесты для цифровых систем на основе использования КПСН; верифицировать результаты моделирования неисправностей и генерации тестов, проектировать аппаратурные быстродействующие симуляторы.

Модели и методы реализованы в виде программных приложений. Последние используются при генерации тестов для проектов на основе FPGA и CPLD. Класс обрабатываемых структур: конечные автоматы, описанные в виде графов переходов, а также булевы уравнения с триггерными схемами. Входной язык описания цифровых систем — VHDL. Программы генерации тестов и моделирования неисправностей ориентированы на интеграцию в систему проектирования фирмы Aldec [7].

Время проектирования теста функционально зависит от квадрата суммарного объема кубических покрытий:

W(T) = [ X (n; х q;)]2.

i—1

Литература: 1. Abramovici M, Breuer M.A. and Friedman A.D. Digital System Testing and Testable Design, Computer Science Press, 1998. 652 p. 2. Хаханов В.И. Техническая диагностика элементов и узлов персональных компь-ютеров.К.: I3MH. 1997. 308 с. 3. Ермилов В.А. Метод отбора существенных неисправностей для диагностики цифровых схем. Общие выражения для неисправностей, возможных при эксперименте // Автоматика и телемеханика, 1971. № 1. С. 159-167. 4. Armstrong D.B. A deductive mеthod of simulating faults in logic circuits. IEEE Trans. on Computers. Vol. C-21. No. 5. 1972. P. 464471. 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. 1980. Vol.4. P.443-459. 7. Active-VHDL Series. Book №1-№4. Reference Guide. ALDEC Inc. 1998. 206 р.

Поступила в редколлегию 21.11.2000

Рецензент: д-р техн. наук, проф. Кривуля Г.Ф.

Хаханов Владимир Иванович, д-р техн. наук, профессор кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных систем. Увлечения: баскетбол, футбол, горные лыжи. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26. E-mail: Hahanov@Kture.Kharkov.ua

Масуд М.Д. Мехеди, аспирант кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: генерация тестов для цифровых систем.. Увлечения: иностранные языки. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26.

81

i Надоели баннеры? Вы всегда можете отключить рекламу.