УДК 681.325:519.713
ГЕНЕРАЦИЯ ТЕСТОВ ДЛЯ СИНХРОННЫХ СТРУКТУР ПРИМИТИВНЫХ АВТОМАТОВ
СКВОРЦОВА О.Б.
Предлагается метод построения тестов для последовательностных цифровых схем без глобальных обратных связей, содержащих примитивные автоматы, соединенные в синхронную структуру, а также процедура активизации пути в таких структурах. Приводится метод построения сегментированого теста на примере синхронного счетчика и доказывается полнота тестов для сильнопоследовательностных схем. Представляются статистические данные обработки сильнопоследовательностных схем предложенными методами.
1. Введение
Данная статья является продолжением анализа методов построения тестов для сильнопоследовательностных схем. В [1] были предложены методы построения тестов для последовательностных цифровых схем без глобальных обратных связей, содержащих синхронные триггеры, соединенные в асинхронную структуру, которые позволяют строить тесты для последовательностных схем в одной копии итеративной модели на основе стандартных процедур прямого продвижения и доопределения в К-алгоритме. Отличительной особенностью синхронных структур является, во-первых, наличие общего входа синхронизации, во-вторых—синхросигнал поступает на все каскады одновременно, соответственно активизируя все триггеры. Особый интерес представляют счетные структуры синхронного типа с прокладками из вентильной логики ввиду незад ействованности информационных входов. Также для сильнопоследовательностных схем характерно рассматривать поведение схемы на трех, четырех и более двоичных тактах, что приводит к необходимости добавления новых псевдовходов. В схемах с большим количестовом линий и вентилей необходим качественно новый подход в построении тестов.
визации соответственно синхронных CD и JK триггеров, а в (3) — кубическое покрытие T триггера, построенного на основе JK:
D C Q
A E O D C Q
B E I E 2E E2
X F S H 2E H2
(1)
J C K Q
A H B O
BHA I J C K Q
BHB E E 2H B E2
BHB H B 2H E H2
X L X S
T C R Q Q
B H I E H
B H I H E
A H I S S
X L I S S
X X O O I
(2)
(3)
Для использования этих покрытий активизации примитивных автоматов в детерминированных методах построения тестов необходимо рассмотреть их полноту относительно класса одиночных константных неисправностей (ОКН). Для этого приведем некоторые доказательства.
Лемма 1. Однократный обход состояний примитивного автомата проверяет все существенные ОКН его переменных.
Доказательство. Рассматриваемые примитивные автоматы (синхронные триггеры) имеют следующие особенности:
1) все примитивные автоматы являются автоматами Мура;
2) длина входного слова автомата составляет два двоичных такта;
3) функция переходов автомата совпадает с функцией выхода.
Таким образом, очевидна необходимость разработки нового метода построения тестов с заранее доказанной полнотой. Нужно попытаться уменьшить число итераций в регулярных структурах примитивных автоматов, уменьшая сложность и размерность задачи и решая проблему хранения большого объема информации.
2. Модель условий активизации в структурах примитивных автоматов
В [1] модель устройства представлена структурой взаимосвязанных примитивных элементов вентильного и функционального уровня, описанных кубическими покрытиями в алфавите А2. В качестве функциональных элементов последовательностного типа выступили примитивные автоматы на два состояния — синхронные и асинхронные триггеры. Были описаны процедуры построения кубических покрытий, универсальных покрытий, а также покрытий активизации для CD, JK и T-триггеров. В левой части (1) и (2) приведены кубические покрытия, в правой — покрытия акти-
Из [2] известно, что для проверки функции переходов автомата Мура достаточно совершить однократный обход всех вершин его графа переходов в ходе кратного диагностического эксперимента. Для автомата с двумя состояниями кратный диагностический эксперимент совпадает с одиночным, т.е. начинать обход графа можно с любого состояния. Любая ОКН на выходах примитивного автомата будет обнаружена, поскольку при обходе графа состояние выходов триггера меняется с 0 на 1 или с 1 на 0. Существенная ОКН (влияющая на реализацию таблицы переходов) на любом из входов примитивного автомата не позволит провести диагностический эксперимент по обходу графа и также будет обнаружена.
Следствие 1. Длина диагностического эксперимента по обходу графа переходов примитивного автомата без асинхронной установки равна 2*m двоичных тактов, где m—число состояний с асинхронной установкой — (2*m+1) тактов.
56
РИ, 2001, № 3
Длина эксперимента в 2*m определяется тем, что для автомата без асинхронной установки (с используемым информационым входом) эксперимент может начинаться с любого состояния, а длина входного слова равна 2. Для автомата с неиспользуемым информационным входом (Т-триггер) эксперимент может начинаться только с исходного состояния, определяемого цепями начальной установки, и длина установочной последовательности равна 1.
Для доказательства полноты теста докажем теорему.
Теорема 1. Каждый куб покрытия активизации из (1) и (2) является полным проверяющим тестом для соответствующего триггера.
Доказательство. Каждый из кубов покрытий активизации (1) и (2), длиной 4 двоичных такта, последовательно устанавливает триггер сначала в 1, а затем в 0 или наоборот, т.е. реализует однократный обход графа переходов триггера, что в соответствии с леммой 1 проверяет все существенные ОКН соответствующего триггера. Направление обхода при этом значения не имеет. Следовательно, каждый куб покрытия активизации является тестом для соответствующего триггера без учета входов асинхронной установки, которые рассматриваются отдельно.
Следствие 2. Тестом проверки счетного режима Т-триггера являются первый и второй кубы покрытия (3) с учетом асинхронной установки, реализуемой кубом 5 в покрытии (3).
Характерной особенностью графа переходов счетного триггера является то, что он имеет одно начальное состояние (например нулевое) и обход графа всегда начинается только с этого состояния. Первый куб реализует переход из 0 в 1, а второй — из 1 в 0, и именно в таком порядке они составляют тест.
3. Построение тестов в синхронных структурах
В отличие от асинхронных структур синхронные имеют свои особенности функционирования. Они состоят в том, что синхронные сильнопоследовательностные схемы характеризуются одновременным поступлением синхросигнала на все каскады. Соответственно одновременно происходит изменение сигналов на информационных входах (выходах) синхронных элементов (триггеров). Пример такой структуры, физически представляющей собой трехразрядный сдвиговый регистр со сдвигом вправо, приведен на рис. 1.
В данной структуре для каждой пары примитивных элементов имеется две координаты связи [3]: общий синхровход и информационный ход, связывающий выход предыдущего разряда с информационным входом последующего. Активизацию такой структуры можно начинать с любого внешнего входа.
Если рассмотреть пересечение покрытий активизации первого и второго примитивов при прямом продвижении от первого примитива ко второму, что показано в первых двух строках (4), то можно заметить, что на двух координатах связи Q1 (линия 3) и C1 (линия 2) выполняется пересечение 2E c 2E по C1, и E2 с E по Q1, что по определению пусто.
Рис. 1. Синхронная структура примитивных автоматов
Чтобы пересечение было не пусто, необходимо выполнить уравнивание кратностей на координатах связи. Но процедура уравнивания кратностей в том виде, в каком она представлена в [ 1], в данной ситуации не работает, так как уравнивание кратностей на координате Q1 приведет к нарушению равенства кратностей на C1. Этот случай аналогичен ситуации получения 2 А, при выполнении D-пересечения [4] и определяется как “пусто”. Таким образом, для синхронных структур необходима иная процедура уравнивания кратностей, в отличие от предложенной в [1]. В [5] предложен подход к построению тестов для сдвиговых структур с использованием сегментирования теста. Для разработки процедуры уравнивания кратностей в синхронных структурах можно воспользоваться аналогичным подходом, но сегменты теста будут строиться не предварительно перед началом активизации, а в ходе самой процедуры активизации на основе свойств покрытий активизации и кубических покрытий.
Процедура сегментирования теста состоит из следующих шагов.
1) Выполняется попытка уравнять кратности на координатах связи и в случае дукратного повтора этой операции переходим непосредственно к сегментированию теста.
2) Выполняется операция разъединения кратных векторов, участвующих в пересечении, по правилам понижения кратности до тех пор, пока кратность векторов не станет равной 1. Разъединенные векторы образуют два сегмента.
3) Выполняется пересечение между последним кубом первого сегмента и первым кубом второго сегмента. Результат пересечения записывается в первый сегмент.
4) По правилам конкатенации первый сегмент восстанавливается до исходной кратности.
5) Оставшиеся векторы второго сегмента присоединяются к первому, причем в последнем векторе второго сегмента I заменяется на E, а O на H соответственно. В дальнейшем изложении эту операцию будем называть присоединением.
В (4) приведена процедура формирования сегмента при пересечении покрытий активизации первых двух триггеров из структуры на рис. 1. В первых двух строках показаны покрытия активизации первого и второго триггеров. Уравнивание кратностей на координатах связи C1 и Q1 невозможно. В строках 3,4 и 5,6 соответственно показаны результаты разъединения покрытий активизации рассматриваемых элементов. В 8-й строке показан результат пересечения строк 4 и 5. В строках 10 и 11 показан результирующий тестовый сегмент.
РИ, 2001, № 3
57
1 2 3 4 5
D1 C1 Q1(D2) Q2 Примечания
E 2E E2 сак
2E E 2E г^ак с2
A E O cO
B E I Cl
E A O CO
E B I c2
A E O CO
B E E O T1= cln cO
E B I c2
E 2E E2 O2 T2=C°*T1
E B E Присоединение с2
(4)
Примечания
E 2E E2 O2 k=2
E B E O k=1
E B B E k=1
0 0 X X о II
0 1 0 X о II
1 0 0 X о II
1 1 1 0 о II
0 1 0 X о II
1 X 1 0 о II
0 1 1 0 о II
1 X X 1 о II
(6)
Для схемы на рис. 1 построение активизированного пути начинается заданием символа E на входе 1, как показано в первой строке (5). Далее показаны пересечения формируемого тестового вектора T с кубами трех покрытий активизации Сіак соответствующих триггеров регистра. Прямое продвижение в синхронной структуре посредством процедуры сегментирования порождает тестовые сегменты, кубы которых представлены в строках 5, 8, 9, что отмечено в столбце примечаний. Символ E на линии 5 в последнем кубе указывает на достижение активизированным путем внешнего выхода и окончание прямого продвижения.
1 2 3 4 5 Примечания
E T1,Lc=1
E 2E E2 T2=T1flCaK
E 2E E2 T2, Lc=3
2E E E2 T3=T2fl Cf
E 2E E2 O2 Т3, первый куб сегмента
E B E Т4 - присоединенныйкуб, Lc = 4
2E E E2 T5=T4flCf
E B E O Т5, второй куб сегмента
E B B E Т6, третий ^б сегмента
(5)
Синхронная структура на рис.1 выбрана так, чтобы доопределения после прямого продвижения не выполнялось. Таким образом, результирующий сегмент теста содержит три куба, или 8 двоичных наборов, полученных по формулам понижения кратностей, что представлено в (6). Анализируя (6), можно сделать вывод, что полученный тестовый сегмент полностью отвечает логике работы сдвигового регистра: на вход последовательного занесения поступает комбинация 01 и выполняется процедура сдвига до тех пор, пока 1 не появится на выходе регистра.
Следует отметить, что кубы тестового сегмента могут быть еще конкатенированы по правилам понижения кратностей символов алфавита A2 из табл. 1 в [ 1], что еще может уменьшить количество тестовых наборов. Но такое сжатие сегментов применимо только для синхронных структур с четным числом разрядов и особой выгоды при построении тестов не дает. Таким образом, результат (6) является конечным этапом активизации пути (построения теста) в синхронной сдвиговой структуре.
Построение активизированного пути в схеме на рис. 1, показанное в (5), не требует доопределения, поэтому процесс доопределения в асинхронной структуре будем рассматривать отдельно на примере доопределения 0 (символ O) на выходе 5 указанной схемы. Процесс доопределения осуществляется c использованием операции присоединения и формирования тестового сегмента, что показано в (7). Формирование сегмента обуславливается необходимостью доопределения в предыдущем временном фрейме и фактически порождает неявную итеративную модель, но без псевдовходов и псевдовыходов.
1 2 3 4 5 Примечания
O Т1, Lc=5
E A O T2=T1ncO
E A O T2, Lc=4(A)
E A O CA1, первый куб A-сегмента
E X A CA2, второй куб А-сегмента
E A O Т3 - присоединенный куб, Lc = 3
E X A O T4 =T2flcA2
A E O CA1, первый куб A-сегмента
X E A CA2, второй куб А-сегмента
A E O Т5 - присоединенныйкуб
X E A O T6=T3flcA2
E X A O T3
(7)
В (8) показан процесс понижения кратности результата доопределения из (7) и получение двоичной последовательности длиной 6 векторов.
Лемма 2. Для активизации всех путей одновыхо-дового подграфа синхронной структуры достаточно выполнить активизацию, начиная с внешних входов первого каскада до выхода.
Подграф синхронной структуры имеет информационный вход первого разряда и синхровход, поданный на все остальные каскады. Поэтому запись информации (активизация) может начинаться только с первого разряда, а форма покрытий активизации, например, (1) или (2), подтверждает инвариантность начала активизации с информационного или синхровхода. Анализ результата построения тестового вектора активизации информационного входа синхронной структуры (5) и доопределения (6) подтверждает данную лемму.
РИ, 2001, № 3
58
1 2 3 4 5 Примечания
A E O k=1
E A O k=1
E A O k=1
0 0 X О II м
X 1 0 о II м
0 0 X о II м
1 X 0 о II м
0 0 X о II м
1 X 0 о II м
(8)
Теорема 2. Активизация любого пути от внеших входов до выходов в сильнопоследовактельностных схемах позволяет построить тест, обнаруживающий все существенные неисправности в таких схемах.
Доказательство. В [5,6] показано, что покрытие структуры схемы набором активизированных путей позволяет построить полный тест для такой схемы. Из теоремы 1 следует, что покрытия активизации являются полными тестами для примитивных автоматов, а из леммы 2 — что активизация любого пути от внешних входов до выходов активизирует всю сильнопоследовательностную структуру.
При оценке затрат на построение тестов с применением предложенных процедур оцениваются вычислительная сложность алгоритма (Z1), которая пропорциональна числу пересекаемых координат тестового вектора, что зависит от числа линий схемы n; время реализации алгоритма (Z2), которое зависит от числа разрядов сильнопоследовательностной схемы m и от числа обрабатываемых копий итеративной модели 1; а также затраты памяти (Z3), которые зависят от количества хранимых промежуточных результатов пересечений р. Оценки приводятся в относительных единицах по отношению к трад ици -онным методам построения тестов с использованием классических итеративных моделей на основании вентильных эквивалентов триггеров.
Таким образом, оценка затрат на реализацию процедуры построения теста в синхронной структуре с информационными входами будет следующей:
Z1 = (n+3*m) / n = 1 + 3*m/n;
Z2 = (1+m) / 1 = 1 + m/1;
Z3 = 2*n / n-1 = 2m.
4. Построение тестов в счетных структурах
Особенностью построения тестов в счетных структурах является незадействованность информационных входов. В [1] была предложена процедура активизации счетной структуры на примере асинхронного счетчика. Рассмотрим указанную процедуру применительно к синхронным счетчикам. Для проверки всех константных неисправностей переменных состояний счетчика необходимо совершить полный обход его графа переходов, как было показано на рис.2 в [1].
Рис. 2. Трехразрядный синхронный счетчик со сквозным переносом
На рис.2 изображен циклический синхронный трехразрядный двоичный счетчик со сквозным переносом. На вход 1 данной схемы в счетном режиме подается константа 1. Этот тип счетчика интересен тем, что между его каскадами присутствуют фрагменты комбинационной логики, реализующие алгоритмы межкаскадного соединения.
Таким образом, прямое продвижение в нем можно осуществить за два двоичных такта, т.е используя путь только через последний триггер. Затем выполняется доопределение в этой же копии итеративной модели, что показано в (9) под первой сплошной чертой. Результат доопределения, приведенный в последней строке (9), показывает, что при активизации состояние счетчика в последней копии итеративной модели будет изменятися из 110 в 001. Затем путем итеративного доопределения счетчик переводится в то состояние, которое доступно через цепи сброса (которые должны быть в подобной счетной структуре обязательно). Для рассматриваемого счетчика начальное состояние будет 000. В синхронном счетчике со сквозным переносом используются Т-триггеры, синхронизируемые задним фронтом, поэтому активизация начинается с задания символа H на линии 2.
1 2 3 4 5 6 7 8 Примечания
H HI BE T1,Lc=2 Т 2=T1f|cE
HI BE Результат прямого продв.
B B B Lc=7, Т3=T2n CB
HI B B B E HI B H T3,Lc=6 Т4=тзn cH
HI B H B E B B B T4,Lc=5 Т5=T4flcf
B H I B B H B E B H I H T5,Lc=4 Т6=T5n CH
BHIHBHBE Результат сост (t-1) 110
(9)
Результатом прямого продвижения является необходимость установки схемы в предыдущее состояние 110 и, соответственно, доопределяемый вектор (по линиям 4, 6, 8) будет I I O. В доопределении используются те же процедуры п -алгоритма , что и в предыдущем примере асинхронного счетчика.
Первая итерация доопределения показана в (10). Здесь и в дальнейшем при иллюстрации выполнения пересечений показываются только результаты непустых пересечений.
1 2 3 4 5 6 7 8 Примечания
H HI BE T1,Lc=2 Т2=TlncE
H I B E Результат прямого продв.
B B B Lc=7, ТЭ^Пс?
HI B B B E HI B H T3,Lc=6 Т 4=T3|~|cH
HI B H B E B B B T4,Lc=5 Т5=T4ncf
B H I B B H B E B H I H T5, Lc=4 Т6=T5nC1H
BHIHBHBE Результат сост (t-1) 110
(10)
РИ, 2001, № 3
59
Результатом первой итерации будет состояние 010 и, соответственно, доопределяемый вектор (по линиям 4, 6, 8) будет O I O. Вторая итерация доопределения показана в (11).
1 2 3 4 5 6 7 8 Примечания
O I O 00 II О H
H I A S Т2=Т1Пс5
H I O I A Q T2, Lc=7
X A A T3=T2|~|CA
H I O X E A Q T3, Lc=6
H I B E T4=T3|~|CE
H I O B E A Q T4, Lc=5
B B B T5=T4f|cB
X H I H B E A Q T5, Lc=4
B H I H Т6=T5f|cH
B H I H B E A Q Результат Т6 сост.(Ы) 100
(11)
Результатом второй итерации будет состояние 100 и, соответственно, доопределяемый вектор (по линиям 4, 6, 8) будет I O O. Третья итерация доопределения показана в (12).
1 2 3 4 5 6 7 8 Примечания
I O O T1, Lc=8
H I A S Т2=Т1Пс|
H I I O A Q T2, Lc=7
A X A T3=T2flcA
H I I A O A Q T3, Lc=6
H I A S Т4=Т3Пс|
H I I A Q A Q T4, Lc=5
X A A T5=T4f|cA
X H I E A Q A Q T5, Lc=4
B H I E T6=T5flcE
B H I E A Q A Q Результат T6 сост. (t-1) 000
(12)
Результатом третьей итерации будет состояние 000 и, соответственно, доопределяемый вектор (по линиям 4, 6, 8) будет ООО. Четвертая итерация доопределения показана в (13).
1 2 3 45 6 7 8 Примечания
O O O T1, LC=4,6,8
O O O O T 2=T1f|cO
O O O Q Результат T2 сост. (t-1) XXX
(13)
Результатом четвертой итерации будет безусловная установка счетчика в состояние 000 с использованием входа сброса в нулевое состояние. Таким образом, процесс установки схемы можно считать законченным. В (14) приведен окончательный вариант теста активизации синхронного счетчика с четырьмя векторами установочной последовательности.
1 2 3 4 5 6 7 8 Примечания
O O O O Состояние 000
B H I E A Q A Q Состояние100
B H I H B E A Q Состояние 010
B H I E A J A Q Состояние110
B H I H B H B E Переход из 110 в 001
(14)
Из (9) следует, что при активизации асинхронного двоичного счетчика реализуется цепочка состояний 000 — 100 — 010 — 110 — 001, что соответствует графу переходов на рис. 2 в [1](при непосредственной активизации в последнем фрейме реализуется переход из состояния 3 в состояние 4). Сравнивая полученные результаты с результатами в [ 1], можно сделать вывод, что независимо от типа счетчика предложенная процедура дает одинаковый результат.
Оценка затрат на реализацию процедуры построения теста в счетной структуре будет равна:
Z1 = (n+4*m) / n = 1 + 4*m/n;
Из формулы видно, что время вычислений Z2 не изменится (за счет необходимости обхода всего графа переходов счетчика), а количество хранимых промежуточных векторов Z3 уменьшится в 2 раза (за счет использования алфавита A2).
5. Выводы
Предложен метод построения тестов для сильнопоследовательностных цифровых схем без глобальных обратных связей, содержащих синхронные триггеры, соединенные в синхронную структуру. Для активизации были использованы как информационные входы, так и входы синхронизации, что позволило применить данный метод к любым сильнопоследовательностным схемам. Предложена процедура сегментирования теста в таких структурах, для которых уже учтен многофреймовый характер их тестов и итеративная модель в явном виде не строится, что значительно уменьшает размерность решаемой задачи. Предложена процедура активизации счетной структуры на примере синхронного счетчика. Доказано, что наличие в них любого количества прокладок из вентильной логики нико -им образом не влияет на сложность процедуры построения теста. Приведены доказательства полноты теста для синхронных и асинхронных структур. В качестве доказательства эффективности предложенных методов представлены статистические данные обработки сильнопоследовательностных схем.
Литература: 1. Шкиль А.С., Скворцова О.Б., Сысенко И.Ю., Чамян АЛ. Генерация тестов для асинхронных структур примитивных автоматов // Радиоэлектроника и информатика. 2001. №2. С. 97-103. 2. Богомолов
A. М., Грунский И. С., Сперанский Д.В. Контроль и преобразования дискретных автоматов. К.: Наукова думка. 1975. 176 с. 3. Шкиль А.С., Рустинов В.А., Хаханов
B. И. Применение D-исчисления при построении тестов для последовательностных счетных структур // Автоматика и вычислительная техника. 1983. №4. С.59-63. 4. Roth J.P. Diagnosis of automata failures: a calculus and a method // IBM Journal Res. Develop. 1965. Vol.10, №4. P.278—291. 5. Кизуб В.А., Кривуля Г.Ф., Шкиль АС. Генерация тестов в системе автоматизированного проектирования диагностического обеспечения / / Управляющие системы и машины. 1987. №4. С.44—48. 6. Roth J.P., Bourisius W.G, SchneiderP.R. Programmed algorithms to computer test to detect and distinguish between failures in logic circuits // IEEE Tran. Electronic Computers. — 1967. Vol.16, №5. P.567-579.
Поступила в редколлегию 30.06.2001
Рецензент: д-р техн. наук, проф. Хаханов В.И.
Скворцова Ольга Борисовна, аспирантка кафедры автоматизации проектирования вычислительной техники ХНУРЭ. Научные интересы: техническая диагностика вычислительных устройств, систем, сетей. Увлечения: аэробика, иностранные языки, музыка. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26. E-mail: <o [email protected]>
60
РИ, 2001, № 3