УДК 681.325:519.713
ГЕНЕРАЦИЯ ТЕСТОВ ДЛЯ АСИНХРОННЫХ СТРУКТУР ПРИМИТИВНЫХ АВТОМАТОВ
ШКИЛЬА.С, СКВОРЦОВА О.Б,
СЫСЕНКО ИЮ, ЧАМЯН А.Л.__________________
Предлагается метод построения тестов для последовательностных цифровых схем без глобальных обратных связей, содержащих синхронные триггеры, соединенные в асинхронную структуру. Рассматривается использование итеративной модели при активизации путей в сильнопоследовательностных схемах. Предлагаются методы, позволяющие строить тесты для последовательностных схем в одной копии итеративной модели на основе стандартных процедур прямого продвижения и доопределения в К-алгоритме построения тестов, а также процедура активизации счетной структуры.
1. Введение
В настоящее время наблюдается бурное развитие архитектур CPLD и FPGA (каждый год появляются новые поколения этих устройств), их сближение, приобретение ряда общих свойств, снижение стоимости, повышение быстродействия и функциональной мощности. Анализ тенденции развития архитектур программируемой логики позволяет предположить, что в ближайшее время основу элементной базы цифровых систем будут составлять CPLD и FPGA.
С появлением такого качественно нового объекта диагностирование, как программируемые логические интегральные схемы (ПЛИС), снова становятся актуальными разработки структурных методов построения тестов, связанных с активизацией путей в цифровых последовательностных схемах. Это обусловлено следующими архитектурными особенностями ПЛИС:
— каждый логический блок ПЛИС содержит выходные линии триггеров, которые при программировании соединяются в достаточно регулярные структуры с фрагментами вентильной логики;
— входы синхронизации во всех схемах являются выделенными специальными линиями;
— физически (логически) доступными являются только внешние входы/выходы логических блоков.
Наличие в современных схемах на ПЛИС большого количества линий (десятки и сотни тысяч) является причиной ограничения для использования итеративных моделей при построении тестов из-за необходимости добавления значительного количества дополнительных псевдовходов. Кроме того, в связи с автоматизированным проектированием ПЛИС возникает необходимость компактного представления регулярных тестовых воздействий для системы верификации моделей TestBench, так как именно регулярные тестовые последовательности хорошо отображаются конструкциями языков описания аппаратуры в TestBench.
РИ, 2001, № 2
Для решения задачи активизации путей можно отказаться от построения итеративной модели по вентильным эквивалентам триггерных схем и оперировать только с одной копией схемы, при этом последовательностные элементы представляются автоматными моделями. Предложенный подход позволяет значительно сократить число обрабатываемых копий итеративной модели при построении тестов в последовательностных схемах и уменьшить объем хранимой информации для алгоритма построения тестов.
2. Условия активизации в структурах примитивных автоматов
В качестве примитивных автоматов будем рассматривать синхронные двухтактные триггеры, управляемые передним или задним фронтом синхросигнала (перепадом с 0 в 1 или с 1 в 0 соответственно). Структуры примитивных автоматов, у которых синхровход последующего каскада соединен с выходом предыдущего каскада, принято называть асинхронными структурами, а если с выходом предыдущего каскада соединен информационный вход последующего каскада, то такие структуры принято называть синхронными. Синхронные структуры обычно имеют один общий вход синхронизации. Физически асинхронные структуры обычно представляют собой делители частоты (асинхронные двоичные счетчики), а синхронные структуры — это сдвиговые регистры и синхронные счетчики со сквозным переносом. Синхронные и асинхронные структуры примитивных автоматов можно выделить в класс сильнопоследовательностных схем.
В [1,2] был предложен подход к построению тестов для сильнопоследовательностных схем без обратных связей посредством активизации путей от внешних информационных входов к выходам на основе 10-символьного алфавита D-исчисления. Задача активизации путей выполнялась по стандартной процедуре продвижения вперед и доопределения. Было доказано, что активизировав все пути в неизбыточной структуре примитивных автоматов в прямом и обратном направлениях, можно обнаружить все существенные константные неисправности линий и переменных (внутренних) такой структуры. Но данный подход оказался несколько искусственным, так как, во-первых, незамкнутость алфавита не предоставляла методики описания любых последовательностных элементов, во-вторых — использование для активизации только информационных входов не гарантировало построения теста для любой структуры примитивных автоматов, даже если он существовал. А вот использование понятия кратности символов в сочетании замкнутым алфавитом A2 позволяет разработать процедуры активизации путей в сильнопоследовательностных схемах в К-алгоритме построения тестов [3].
При рассмотрении задачи генерации тестов для сильнопоследовательностных схем становится очевидным, что в процессе продвижения вперед и
97
доопределения приходится рассматривать поведение схем на трех, четырех и более двоичных тактах. В свое время введение алфавита A2 мотивировалось необходимостью рассматривать поведение схемы в двух автоматных тактах. Поэтому на первый взгляд кажется целесоо бразным рассмотреть алфавиты A3, A4 и так далее. Но известно, что число символов любого замкнутого алфавита определяется по формуле N=2m, где m-число алфавитных примитивов. Для двухтактного алфавита A2 существует четыре алфавитных примитива {00,01,10,11}, что порождает 16 символов. Если же рассматривать поведение последовательностной схемы в трех тактах, то существует уже восемь афавитных примитивов и соответственно 256 символов алфавита A3. Для алфавита A4 количество сиволов будет превышать 32 тысячи. Естественно, что работать с такими громоздкими алфавитами не представляется возможным. Поэтому, учитывая регулярный характер сильнопоследовательностных схем, будем рассматривать частный случай поведения последовательностных схем, описанных алфавитом A2, в трех и более тактах. Для этих целей воспользуемся понятием кратности.
Кратностью k символа алфавита A2 назовем коли -чество двоичных наборов (тактов), необходимых для реализации соответствующего символа. Кратность символа вычисляется по формуле k=log2m , где m - количество двоичных наборов, необходимых для реализации символа.
Собственной называется минимальная кратность символа, при которой он существует. Собственная кратность всех символов алфавита A2 равна 1, т.е. для реализации каждого символа A2 необходимо два такта.
Кратность символа может быть линейной клин и логарифмической клог. Линейная кратность обуславливает (m—1) повторений соответствующего символа в m тактах, а логарифмическая характеризует однократное появление сответствующего символа, который сдвинут во времени на (m—1) тактов. Логарифмическая кратность указывается в скобках справа от символа алфавита, а линейная - слева.
Переход от кратных символов к двоичным последовательностям выполняется с помощью рекуррентных формул понижения кратности, которые приведены в таблице.
Например:
2H = {H, H} = {1010}; E2 = {O, E} = {x001};
O3 = {X, O2} = { X, X, X, O} = {xxxxxxx0}.
Символы A2 могут иметь смешанную кратность. Например, запись 2H2 обозначает, что данный символ имеет вторую линейную и вторую логарифмическую кратности, но порождает 8 двоичных наборов, т.е соответствует третьей кратности. Смешанная кратность вычисляется по формуле к=клог+ + клин— 1. Вычитание 1 обусловлено тем, что собственная кратность символа учитывается только один раз. При понижении кратности сначала пони-
жается линейная кратность, а затем логарифмическая. Таким образом, запись 2H2 означает:
2H2 = {H2, H2} = {I, H, I, H} = {x110x110}.
Каждый тестовый вектор (куб покрытия) имеет собственную кратность, которая равна максимальной кратности символов, присутствующих в рассматриваемом векторе.
Формулы понижения кратностей символов
алфавита A2
Линейная кратность Логарифмическая кратность
WQ = {(,k - 0Mk - 1Q| (k)j = {( k - i)j,(k - i)j} (k)s = {(k - 0s,(k - Os} QW=Mk - 0Mk - 0} j(k) = Jk - OJk - 0} SW=Mk - оф - °}
№ = ttk - oMk - OH (k)H = {(k - l)H,(k - l)H} (k)p = {(k - Op.fk - Op} EW=P(k - UEk - 0} H(k)=№ - OMk -1)} p(k) = {x,p(k - 0}
(k)A = {(k - l)A,(k - 0A| (k)B = {(k - OMk - Ob} (ф = {(k - 0o,(k - Ob} Wi = {(k - 0i.(k - Oi} An=Rk - nX> B(k) = Mk - Ox} o(k) = {x.Ok - 0} W = {XMk - 0}
(k)c = {( k - l)c,(k - 0C (k)F = {(k - OMk - Of} (k)L = {(k - OMk-0П Wv ={(k - 0v,(k - Ov} *>}
Согласно формулам таблицы за одну итерацию понижение кратности вектора происходит на 1 и данная процедура выполняется до тех пор, пока его собственная кратность не достигнет 1 с последующим возможным преобразованием в двоичные наборы.
Если рассматривать принадлежность кратных символов к алфавитам высших порядков, то символы второй кратности относятся к алфавиту А4, третьей кратности — к А8 и т.д. Конкатенация 16 символов алфатита A2 даст 256 символов алфавита А4 ( из 32768 ), интерес же представляют 12 комбинаций:
A*B = A*J = Q*B = Q*J = E;
B*A = B*Q = J*A = J*Q = H;
O * I = O * E = E2; I * O = I * H = H2.
Символом E в алфавите А4, по аналогии с A2, кодируется последовательность {0011}, а H — соответственно {1100}.
Для конкатенации одинаковых символов применяется правило:
Z * Z = 2Z, где Z — любой символ алфавита A2 .
В [4] приведено покрытие двухтактного CD-триггера с синхронизацией передним фронтом:
D c Q
Q E O
J E I
X F s
p E X
(1)
98
РИ, 2001, № 2
В построении покрытий активизации, которые в дальнейшем будем обозначать Сіак , участвуют кубы 1 и 2 из (1), причем первый куб покрытия активизации есть результат конкатенации 1 куба со 2, а второй — 2 с 1. С учетом приведенных выше правил конкатенации и формул таблицы покрытие активизации для CD-триггера будет иметь вид:
D C Q
E 2E E2
H 2E H2
(2)
Учитывая введенные в [3] операции инверсии по E или H при условии, что инверсия осуществляется только по информационным входам и выходам, для построения активизированных путей достаточно использовать только один куб из покрытия (2).
Покрытие (1) учитывает ту особенность CD-триггера, что одновременное изменение сигналов на входах С и D приводит к переходу триггера в неопред елен -ное состояние. Это достаточно жесткое условие, применяемое при моделировании схем, которое в реальных цифровых схемах не всегда может быть соблюдено. В промышленных системах моделирования адекватность поведения схемы, элементы которой описаны подобными поведенческими моделями, достигается путем использования режима асинхронности, который принято называть дельта-задержками [5]. Но в процессе генерации тестов используются только синхронные модели и, следовательно, даже для простейших синхронных схем типа “сдвиговый регистр на CD-триггерах” покрытие (1) не даст верного результата.Это обусловлено тем, что в указанном регистре на всех триггерах, кроме первого, в процессе выполнения операции сдвига различных значений 0 и 1 будут возникать ситуации одновременного изменения сигналов на входах С и D. Поэтому часть модели (1), которая используется для построения покрытий активизации, необходимо преобразовать с учетом правил построения универсальных покрытий активизации, приведенных в табл. 6.11 в [3] путем замены на информационных входах символов J на B, а Q на A. Таким образом, универсальное кубическое покрытие для CD-триггера будет иметь вид:
D C Q
A E O
B E I
X F S
(3)
С точки зрения логики работы примитивного автомата кубы 1 и 2 покрытия (3) указывают, что изменение сигнала на синхровходе всегда опережает изменение сигнала на информационных входах, что достаточно близко к истине в реальных схемах. Кубическое покрытие (3) является более общим случаем, чем (1), но конкатенация его кубов дает те же кубы покрытия активизации (2), например:
{ A E O } * { B E I } = { E 2E E2 }.
Следует отметить, что операция конкатенации является обратимой и обратная ей операция разъединения [1] дает аналогичный результат:
# { E 2E E2 } = { (A E O ) , ( B E I) }.
Другим распространенным типом синхронного триггера является двухтактный JK-триггер с синхронизацией по заднему фронту. С учетом предыдущих рассуждений кубическое покрытие, универсальное покрытие и покрытие активизации для указанного триггера имеет вид:
J C K Q
Q H J O
J H Q I
J H J E
J H J H
X L X S
J C K Q
A H B O
B H A I J C K Q
B H B E E 2H B E2
B H B H B 2H E H2
X L X S
(4)
При получении покрытия активизации в (4) используются следующие преобразования :
{A H B O} * {B H A I} = {E 2H H E2};
{Q H J O} * {J H J E} = {E 2H 2J E2} = {E 2H J E2};
{E 2H H E2} U {E 2H J E2} = {E 2H B E2}.
Одним из распространеных способов использования JK-триггера в сильнопоследовательностных схемах является преобразование его в счетный Т-триггер путем объединения входов J и K с подачей на них логической единицы (символ J из A2) с обязательнымм введением входа асинхронного сброса триггера в 0. В такой структуре при активизации информационный вход не используется, универсальное кубическое покрытие совпадает с покрытием активизации и с учетом инверсного выхода имеет вид:
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
(5)
Проанализировав покрытия активизации основных типов синхронных триггеров, можно отметить, что символы логарифмической кратности используются в покрытиях только на выходных координатах, что будет учитываться в процедурах уравнивания логарифмических кратностей в последующих подразделах. При анализе копий итеративной модели с использованием алфавита A2 существует общее правило: если на выходных координатах последовательностных элементов в тестовых векторах появляются символы, имеющие 0 или 1 в первом такте ( E, H первой кратности, A, B, Q, J — любой кратности), то такой вектор требует доопределения в предыдущем такте. Таким образом, наличие E, H, A, B, Q, J на невходных (внутренних и выходных) линиях сильнопоследовательностной схемы является признаком необходимости доопределения в предыдущем такте, т.е. построения итеративной модели. Из рассмотренных покрытий
РИ, 2001, № 2
99
активизации допределение в предыдущем такте на этапе прямого продвижения может потребоваться только для T-триггера (или JK-триггера в счетном режиме), что следует из (4) и (5).
При использовании в сильнопоследовательностных схемах комбинационных элементов необходимо учитывать, что покрытия активизации для всех комбинационных схем в A2 имеют единичную кратность и при необходимости могут приобретать как линейную, так и логарифмическую кратность, что не влияет на описание их закона функционирования.
3. Построение тестов в асинхронных структурах с информационными входами
Рассмотрим предложенный алгоритм построения тестов применительно к асинхронным структурам. Он включает две общепринятые процедуры при структурном построении тестов: прямое продвижение и доопределение. Прямое продвижение выполняется путем пересечения по правилам табл .2.6 в [3] между формируемым тестовым вектором и кубами покрытий активизации соответствующих примитивов. Доопределение (продвижение назад) выполняется по тем же правилам, но с доопределяемым вектором пересекаются кубы покрытий для сответ-ствующих доопределяемых символов. С учетом использования кратностей следует иметь в виду, что непустые пересечения существуют только для символов равной кратности, а в остальных случаях пересечение равно пусто. Связывание отдельных последовательностных примитивов при прямом продвижении и доопределении осуществляется через координату связи [ 1].
Координатой связи назовем линию схемы, связанную с выходом очередного активизированного примитива и входом последующего при прямом продвижении, или доопределяемую координату, не равную X, при доопределении. Координату связи будем обозначать Lc.
В асинхронных сильнопоследовательностных структурах координатой связи является линия, связывающая выход триггера предыдущего каскада с синхровходом триггера последующего каскада (без учета возможного использования комбинационных элементов, которые не влияют на рассматриваемые процедуры генерации тестов). На рис. 1 представлена простейшая асинхронная структура, состоящая из двухтактных CD-триггеров, синхронизируемых прямым фронтом.
і
Рис. 1. Асинхронная структура примитивных автоматов
Данная структура имеет ту особенность, что информационные входы триггеров всех каскадов являются внешними входами. Такая структура характерна тем, что при активизации пути максимальной длины (например, от входов 4 или 5) фаза доопределения не нужна. Конечно, в реальных схемах такая структура примитивных автоматов может встретиться довольно редко, но ее рассмотрение очень удобно для демонстрации процедур прямого продвижения и доопределения в асинхронных структурах. Если рассмотреть пересечение покрытий активизации первого и второго примитивов при прямом продвижении, что показано в первых двух строках (6), то можно заметить, что на координате связи Q1 (линия 6) выполняется пересечение E2 c 2E, что по определению пусто. Чтобы пересечение было не пусто, необходимо выполнить уравнивание кратностей на координате связи. Процедура уравнивания кратностей состоит из следующих шагов.
1) Вычисляется абсолютное значение разности блин для линейной и блог для логарифмической кратностей на координате связи по форфулам :
йлин= | клин (предшественника) — клин (преемника) |;
блог= | клог (предшественника) — клог (преемника)| .
2) В векторе меньшей линейной кратности кратность всех символов увеличивается на блин. Эту процедуру в дальнейнем будем называть увеличением линейной кратности.
3) В векторе меньшей логарифмической кратности (обычно это куб покрытия активизации преемника) кратность всех выходных координат по отношению к координате связи увеличивается на блог.
Векторы с уравненными кратностями показаны в 3 и 4 строках (6), а в пятой строке показан результат пересечения этих векторов. В правом столбце примечаний указываются комментарии к операциям, выполняемым над соответствующими векторами в этой строке. Покрытия активизации, как отмечалось выше, обозначаются Сіак .
D1 D2 C1 Q1 Q2 Примечания
E 2E E2 ГлЯК С1
E 2E E2 С!акп с2!к
2E 3E 2E2 саК, kлин=kлин+1 (6)
E 2E2 E3 С2К к лог=к лог+1
2E E 3E 2E2 E3 Результат СіаКПСЯК
Для схемы на рис. 1 построение активизированного пути начинается с задания символа E на входе 4 и его пересечением Сіак, что показано в первой и второй строках (7). Далее три пары строк показывают результаты пересечений формируемого тестового вектора T с кубами соответствующих покрытий активизации Сіак, что указано в примечаниях. В последней строке показан результат прямого продвижения от входа 4 до выхода 9. Как уже упоминалось выше, доопределение в данной схеме при активизации пути максимальной длины не
100
РИ, 2001, № 2
выполняется (недоопределенных внутренних линий схемы нет).
12345 6 7 89 Примечания
E E 2E E2 T, Lc=4 т П cA
E 2E E2 E 2E E2 T, Lc=6 т ПсА
E 2E 3E 2E2 E3 E 2E E2 T, Lc=7 T П сА
E 2E 3E 4E 3E2 2E3 E4 I E E т, Lc=8 T П сА
I E 2E 3E 4E 3E2 2E3 E4 E4 Іостроение активизированного пу Результат ти в схеме
(7)
рис.1 не требует доопределения, поэтому процесс доопределения в асинхронной структуре будем рассматривать отдельно на примере доопределения 1 (символ I) на выходе 9 указанной схемы. Он осуществляется по стандартной процедуре К-алго-ритма путем пересечения доопределяемого вектора Т с кубами соответствующих покрытий, что показано в (8).
1234 5 6 789 Примечания
I I I I T, Lc=9 T П С4
I I I J E I T, Lc=8 Tfl с3
I J E I I E 2E E2 T, Lc=7 T п сА
I J E 2E E2 I2 I2 I E 2E E2 T, Lc=6 T n сА
I J E 2E 3E 2E2 E3 I3 I3 Результат
(8)
Переход от тестовых векторов, содержащих кратные символы, к двоичным последовательностям осуществляется по формулам таблицы и достаточно подробно показан в [1].
Оценивать затраты на реализацию процедуры построения теста в асинхронной структуре целесообразно в сравнении с классической итеративной моделью на основе вентильного эквивалента синхронно -го CD-триггера (по схеме positive-edge-triggered flip-flop), используемого, например, в микросхеме ТМ2. Данный триггер имеет три обратные связи и две дополнительные внутренние переменные, что дает дополнительно три линии псевдовходов и две копии при построении итеративной модели на каждый такой триггер. При использовании вентильной итеративной модели количество линий (длина тестового вектора) увеличится на 3*N, где N—число разрядов асинхронной структуры, время вычислений увеличится в 2*N раза (за счет копий итеративной модели), а количество хранимых промежуточных векторов возрастет в 2N раза.
4. Построение тестов для асинхронных счетчиков
Сильнопоследовательностные схемы обычно характеризуются тем, что активизация путей в них осуществляется от информационных входов к внешним выходам. Но в цифровой технике существует
достаточное количество структур примитивных автоматов, как синхронных так и асинхронных, у которых информационные входы или отсутствуют вообще (структуры на Т-триггерах, полученных из CD-триггеров путем соединения инверсного выхода с входом D), или на них подано значение “константа 1” (структуры на Т-триггерах, полученных из JK-триггеров путем объединения входов J и K). Поэтому структуры примитивных автоматов, в которых используются Т-триггеры в счетном режиме, будем называть счетными структурами. В счетных структурах предложенная выше процедура построения тестов не работает (по причине незадей-ствованности информационных входов), поэтому процесс активизации путей для таких структур следует рассматривать отдельно.
С точки зрения теории конечных автоматов любая счетная структура реализует граф переходов счетчика (двоичного или с иным коэффициентом пересчета), который характеризуется безусловным (по синхроимпульсу) и единственным переходом из состояния в состояние и наличием начального состояния, переход в которое обеспечивается специальными цепями сброса. Для простоты изложения будем рассматривать циклические счетчики. Граф переходов циклического двоичного трехразрядного суммирующего счетчика со сбросом в 0 приведен на рис. 2.
Рис. 2. Граф переходов трехразрядного двоичного счетчика
Известно, что для проверки всех функциональных неисправностей переменных состояний и переходов счетчика необходимо совершить полный обход его графа переходов [6]. В терминах активизации выхода последнего разряда его схемной структуры необходимо переключить выход в прямом и обратном направлении. Рассмотрим только одно направление переключения, имея в виду, что обратное переключение осуществляется по аналогичной процедуре. Если предположить, что счетная структура имеет внешний выход только с последнего разряда, то активизацию такой структуры можно осуществить путем реализации переходов из состояний 3 в 4 и из 7 в 0 соответственно. Таким образом, счетчик нужно установить в соответствующее состояние и путем подачи фронта синхросигнала (активизацией синхровхода) получить изменение выходного сигнала (активизировать выход). Процедура активизации счетной структуры состоит из следующих шагов.
РИ, 2001, № 2
101
1) Задается начальный куб активизации (формируемый тестовый вектор) с символом синхросигнала (E или H) на внешнем синхровходе.
2) Выполняется пересечение по правилам табл. 2.6 в [3] между формируемым тестовым вектором и кубами покрытия соответствующего триггера, вход которого является активным. Непустые пересечения запоминаются.
3) Пункт 2 выполняется для триггера следующего каскада, пока символ активизации не достигнет внешнего входа. Результат прямого продвижения определяет состояние, в которое должна быть установлена счетная структура для того, чтобы по последнему синхроимпульсу изменилось значение выхода.
4) Формируется вектор доопределяемого состояния и для него выполняется итеративная процедура доопределения (формирования установочной последовательности) по правилам К-алгоритма для последовательностных схем. Данная итеративная процедура соответствует обратному движению по графу автомата (рис.2).
5) Пункт 4 выполняется до тех пор, пока не будет достигнуто состояние начальной установки (очередной установочный вектор не требует доопределения). Полученные в п.4 векторы (в обратном порядке следования) и полученный в п.3 результат прямого продвижения формируют тестовую последовательность для счетной структуры.
Процедуру активизации пути в счетной структуре рассмотрим на примере трехразрядного циклического асинхронного вычитающего двоичного счетчика, схема которого приведена на рис.3. (Следует отметить, что по значениям инверсных выходов триггеров, которые задействованы в данном способе их соединения, счетчик является суммирующим) . На вход 1 указанной схемы в счетном режиме всегда подается константа 1.
1
Рис. 3. Трехразрядный асинхронный двоичный счетчик
1 2 3 4 5 6 Примечания
H T1, Lc=2
B H I H T2 = T1П CA
B H I H T2, Lc=4
B I H H T3=T2Hcf
B H I H H T3, Lc=5
B I H E T4=T3|~|cA
B H I H H E Результат T4 сост.(Ы)110
(9)
102
В (9) показано выполнение прямого продвижения в указанном счетчике, начиная от синхровхода (линия 2) до выхода 6. В данном счетчике используются Т -триггеры, синхронизируемые обратным фронтом, покрытие которого приведено в (5), поэтому активизация выполняется символом H. В (9) приводятся только те пересечения, которые дают непустой результат. Полученный результат определяет по линиям 4, 5, 6 предыдущее состояние 110 и, соответственно, доопределяемый вектор I I O. Первая итерация доопределения показана в (10).
1 2 3 4 5 6 Примечания
I I O T1, Lc=6
X I L S T2 = T1П CS
X I I I Q T2, Lc=5
X I L S T3=T2Dc2
B I H J Q T3, Lc=4
B H I H T4= T3nCjH
B H I H J Q Результат cocT.(t-1) 010
(10)
И таким способом производим процедуру обратного продвижения до тех пор, пока результатом обработки копий итеративной модели не будет безусловная установка счетчика в состояние 111 (по инверсным выходам триггеров) с использованием входа сброса в 0. Следовательно, процесс установки схемы можно считать законченным. В (11) приведен окончательный вариант теста активизации асинхронного счетчика с пятью векторами установочной последовательности.
1 2 3 4 5 6 Примечания
O I I I сост.111
B H I H H H сост.000
B H I E Q Q сост.100
B H I H E Q сост.010
B H I E J Q сост.110
B H I H H E Переход из 110 в 001
(11)
Из (11) следует, что при активизации асинхронного двоичного счетчика реализуется цепочка состояний 111— 000 — 100 — 010 — 110 — 001, что полностью соответствует графу переходов на рис. 2 (при непосредственной активизации в последнем фрейме итеративной модели реализуется переход из состояния 3 в состояние 4).
Оценивая затраты на построение теста для счетной структуры, можно отметить, что они одинаковы для любой процедуры построения теста, так как существует только единственный способ обхода графа переходов счетчика.
Метод активизации путей для различных структур примитивных автоматов позволяет строить тесты проверки исправности для сильнопоследовательностных схем относительно класса константных неисправностей. При этом для активизации используются как информационные входы, так и входы синхронизации, что позволяет применить
РИ, 2001, № 2
данный метод к любым сильнопоследовательностным схемам. Достоинством разработанных процедур прямого продвижения и доопределения является то, что они не требуют предварительного структурного или функционального анализа схемы, а выбор конкретной процедуры обработки покрытий определяется сочетанием символов и кратностей на активизируемых и доопределяемых линиях схем.
5. Выводы
Предложен метод построения тестов для последовательностных цифровых схем без глобальных обратных связей, содержащих синхронные триггеры, соединенные в асинхронную структуру. При этом для активизации использовались как информационные входы, так и входы синхронизации, что дало возможность применить данный метод к любым сильнопоследовательностным схемам. Предпринята попытка отойти от использования итеративной модели при активизации путей в сильно-последовательностных схемах. Предложено строить модель сильнопоследловательностной схемы через доопределение автоматных переменных в первом такте кубов соответствующих покрытий в алфавите A2. Предложены методы, позволяющие строить тесты для последовательностных схем в одной копии итеративной модели на основе стандартных процедур прямого продвижения и доопределения в К-алгоритме построения тестов. Разработанная методика построения тестов проиллюстрирована на примерах делителя частоты с коэффициентом 2n, синхронного сдвигового регистра и асинхронного двоичного счетчика.
Литература: 1.Шкиль А. С., Рустинов В.А., Хаханов В.И. Применение D-исчисления при построении тестов для последовательностных счетных структур // Автоматика и вычислительная техника. 1983. №4. С.59—63. 2. Кизуб В.А., Кривуля Г.Ф., Шкиль А.С. Генерация
тестов в системе автоматизированного проектирования диагностического обеспечения // Управляющие системы и машины. 1987. №4. С.44—48. 3. Хаханов В.И. Техническая диагностика элементов и узлов персональных компьютеров. К.: I3MH, 1997. 308 с. 4. Хаханов В.И, Ковалев Е.В, Масуд М.Д. Мехеди, Хак Х.М. Джа-хирул. Кубическое моделирование неисправностей цифровых систем на основе FPGA, CPLD // Радиоэлектроника и информатика. 1999. №4. С.64—71. 5. Вибило П.Н. Основы языка VHDL. M.: Солон-Р, 2000. 200 с. 6. Веннеттс Р.Д. Проектирование тестопригодных логических схем: Пер. с англ. М.:Радио и связь. 1990. 176 с.
Поступила в редколлегию 24.05.2001
Рецензент: д-р техн. наук, проф. Кривуля Г.Ф.
Шкиль Александр Сергеевич, канд. техн. наук, доцент кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных устройств, систем, сетей. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26.
Скворцова Ольга Борисовна, аспирантка кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных устройств, систем, сетей. Увлечения: аэробика, иностранные языки, музыка. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26. E-mail: <[email protected]>
Сысенко Ирина Юрьевна, аспирантка кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных устройств, систем, сетей. Увлечения: иностранные языки, музыка. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 40-93-26. E-mail: <isiko2001 @mail.ru>
Чамян Айк Левонович, аспирант кафедры автоматизации проектирования вычислительной техники ХТУРЭ. Научные интересы: техническая диагностика вычислительных систем. Адрес: Украина, 61166, Харьков, пр .Ленина, 14, тел. 40-93-26.
РИ, 2001, № 2
103