Автоматика и телемеханика, № 2, 2022
Оптимизация, системный анализ
и исследование операций
© 2022 г. В.Н. ЯРМОЛИК, д-р техн. наук (yarmolik10ru@yahoo.com)
(Белорусский государственный университет
информатики и радиоэлектроники, Минск, Беларусь),
Н.А. ШЕВЧЕНКО, (nik.sh.de@gmail.com)
(Гимназия имени Лихтенберга, Дармштадт, Германия)
СИНТЕЗ ТЕСТОВЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ С ЗАДАННОЙ
ПЕРЕКЛЮЧАТЕЛЬНОЙ АКТИВНОСТЬЮ
Обсуждается актуальность применения тестовых последовательностей
с заданной переключательной активностью. В качестве математической
модели для генерирования тестов используется модификация метода Ан-
тонова и Салеева для формирования последовательностей Соболя, осно-
ванная на применении порождающих матриц максимального ранга, вид
которых определяет основные свойства последовательностей. Показыва-
ется, что построение порождающей матрицы сводится к задаче разбие-
ния целого числа на слагаемые, и предлагается алгоритм разбиения на
слагаемые заданного вида. Вводятся процедуры модификации разбиения
целого числа на слагаемые и коррекции значения переключательной ак-
тивности. Формулируются три задачи синтеза генераторов тестовых по-
следовательностей с заданной переключательной активностью. Рассмат-
риваются примеры использования предлагаемых методик и результаты
экспериментов.
Ключевые слова: тестовая последовательность, самотестирование вычис-
лительных систем, переключательная активность.
DOI: 10.31857/S00052310220200118
1. Введение
Эффективность тестовых последовательностей для современных вычисли-
тельных систем во многом определяется свойствами объектов тестирования
[1, 2]. Важным является компактное представление тестов в виде алгорит-
мов либо аппаратных структур для их генерирования при реализации само-
тестирования встроенных систем (Embedded Systems), систем на кристалле
(Systems-on-a-Chip), сетей на кристалле (Nets-on-a-Chip) [2, 3] и, в первую
очередь, для самотестирования их запоминающих устройств, удельный вес
которых достигает 90% занимаемой системой площади кристалла [3, 4]. Су-
щественную роль для тестовых последовательностей играет переключатель-
ная активность (Switching Activity), которая влияет на переключательную ак-
тивность тестируемых цифровых устройств. Набор тестовых последователь-
ностей в применяемых архитектурах самотестирования включает последова-
154
тельности с различной переключательной активностью [5, 6]. Множество та-
ких последовательностей включает: пересчетные (Linear Counting Sequences)
последовательности; последовательности Грея (Gray Code Sequences); по-
следовательности с максимальной переключательной активностью (Address
Complement Sequences); последовательности с расстоянием Хэмминга, рав-
ным единице для всех пар адресов (2i Counting Sequences); ряд других после-
довательностей [3, 5, 6].
Определяющее значение переключательная активность имеет в области
проектирования цифровых устройств с низким потреблением энергии [7], в
том числе при разработке и применении средств их тестирования и самотести-
рования [8, 9]. Большое количество исследований в данной области направ-
лено на получение оценок значений переключательной активности полюсов
проектируемых устройств, которые позволяют прогнозировать их энергопо-
требление [8, 10].
Средние значения переключательной активности можно интерпретиро-
вать как средние значения расстояния Хэмминга, которые широко приме-
няются для построения управляемых вероятностных тестовых последова-
тельностей [11-15]. Изменения величин указанных характеристик позволяют
строить управляемые вероятностные тесты с заданными значениями расстоя-
ния Хэмминга.
Следует отметить, что исследование вопросов синтеза различного рода
устройств с изменяемыми значениями переключательной активности для те-
стирования вычислительных систем находится лишь в начальной стадии.
В частности, методы синтеза генераторов адресных последовательностей,
рассмотренные в ряде источников [6, 16-18], позволяют строить подобные
устройства, описываемые фиксированными значениями переключательной
активности. Задача синтеза устройств для генерирования тестовых после-
довательностей с заданной переключательной активностью и формирования
управляемых вероятностных тестовых последовательностей остается практи-
чески открытой.
В предлагаемой статье приведено решение задачи синтеза генераторов те-
стовых последовательностей максимальной длины, состоящих из 2m m-раз-
рядных наборов, называемых адресными последовательностями с заданной
переключательной активностью как отдельных разрядов тестовых наборов,
так и с суммарной переключательной активностью их последовательностей.
2. Математическая модель
В [19] была рассмотрена математическая модель универсального генера-
тора последовательностей, состоящих из 2m m-разрядных наборов, называ-
емых адресными последовательностями. Под адресной последовательностью
понимают последовательность A(n) = am-1am-2 . . . a2a1a0, n ∈ {0, 1, 2, . . . ,
2m - 1}, где ai ∈ {0, 1} для i ∈ {0, 1, 2, . . . , m - 1}, состоящую из всех возмож-
ных 2m m-разрядных двоичных векторов am-1am-2 . . . a2a1a0, генерируемых
в произвольном порядке, причем каждый вектор формируется только один
155
раз [2, 6, 19]. Например, пересчетная адресная последовательность для m = 4
состоит из 16 4-разрядных двоичных векторов: 0000, 0001, 0010, 0011, . . . ,
1111, каждый из которых формируется только один раз [6]. В качестве ос-
новы математической модели используется модифицированный метод фор-
мирования последовательностей Соболя [20-22]. Согласно указанной модели
формирование n-го элемента A(n) последовательности Соболя, представляю-
щего собой m-разрядный двоичный вектор am-1am-2 . . . a0, осуществляется
в соответствии с рекуррентным соотношением
(1)
A(n) = A(n - 1) ⊕ vi; n = 0, 2m
− 1, i = 0, m - 1,
в котором к предыдущему элементу A(n - 1) последовательности Соболя
добавляется только одно модифицированное направляющее число vi, i ∈
∈ {0, 1, 2, . . . , m - 1}, также представляющее собой m-разрядный двоичный
вектор [19-21]. Значение индекса i направляющего числа vi, используемо-
го в качестве слагаемого в выражении (1), зависит от последовательности
переключений (Transition Sequence) Tm-1 отраженного кода Грея [21-23].
В коде Грея переход из предыдущего состояния кода в последующее осу-
ществляется путем инвертирования только одного его разряда. Последова-
тельность индексов этих разрядов и представляет собой последовательность
переключений [23]. В случае наиболее часто используемой разновидности
кода Грея, а именно отраженного кода Грея, последовательность переклю-
чений легко формируется из пересчетной последовательности [23]. Индекс
старшего изменяемого разряда пересчетной последовательности при форми-
ровании ее очередного кода и будет элементом последовательности переклю-
чений. Например, при формировании кода пересчетной последовательности
A(n) = a3a2a1a0 = 0001 из предыдущего 0000 изменяется только младший
бит, соответственно первым элементом последовательности переключений T3
будет являться индекс 0. Для m = 4 последовательность переключений от-
раженного кода Грея имеет вид: T3 = 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0. Эта по-
следовательность формирует последовательность индексов i ∈ {0, 1, 2, 3} при
генерировании A(n) = a3a2a1a0 для m = 4 согласно (1).
С использованием произвольного начального значения A(0) ∈ {0, 1, 2, . . . ,
2m - 1} рекуррентное соотношение (1) позволяет получить все 2m - 1 осталь-
ные значения A(n) [19, 22].
Данная математическая модель была обобщена для случая последователь-
ностей, относящихся не только к множеству последовательностей Соболя [22].
В общем случае в качестве порождающей матрицы V направляющих чисел vi,
i ∈ {0,1,2,... ,m - 1} может быть использована любая двоичная квадратная
матрица размерности m × m вида
βm-1(0)
βm-2(0)
βm-3(0)
β0(0)
βm-1(1)
βm-2(1)
βm-3(1)
β0(1)
(2)
V =
βm-1(2)
βm-2(2)
βm-3(2)
β0(2)
,
 βm-1(m - 1) βm-2(m - 1) βm-3(m - 1) ... β0(m - 1)
156
построенная из m линейно независимых двоичных векторов
vi = βm-1(i)βm-2(i)... β0(i), i = 0,m - 1.
Условие линейной независимости позволяет обеспечить формирование тесто-
вых последовательностей максимальной длины [19].
3. Переключательная активность
Для оценки свойств последовательностей Соболя A(n) = am-1am-2 . . . a0,
используемых в качестве тестовой последовательности в [22], был введен чис-
ловой параметр F (aj ), j ∈ {0, 1, 2, . . . , m - 1}, определяющий количество пе-
реключений (изменений) j-го разряда aj кода последовательности A(n). Чис-
ловая характеристика F (aj ) имеет название переключательной активности
[5, 19, 24], которая определяет переключательную активность j-го разряда aj
тестовых наборов A(n). В общем случае, для произвольного значения j ве-
личина данной характеристики для последовательности (1) определяется по
формуле
F (aj ) = βj (0) · 2m-1 + βj(1) · 2m-2 + . . . + βj (m - 2) · 21 + βj (m - 1) · 20 =
(3)
= βj(i) · 2m-1-i.
i=0
На основе переключательной активности F (aj ) в [19] для последователь-
ности A(n) была введена интегральная мера переключательной активности
(4)
F (A) =
βj(i)2m-1-i =
2m-1-i
βj
(i),
j=0 i=0
i=0
j=0
где вторая сумма равна количеству единиц в i-й строке матрицы (2) и пред-
ставляет собой вес Хэмминга w(vi) двоичного вектора
vi = βm-1(i)βm-2(i)... β0(i), i = 0,m - 1.
Как следует из линейной независимости двоичных векторов vi, j-й стол-
бец матрицы V не может быть нулевым, поэтому минимальное значе-
ние F (aj ), j ∈ {0, 1, 2, . . . , m - 1}, достигается для βj (m - 1) = 1, и βj (i) = 0,
i ∈ {0,1,2,... ,m - 2}. Минимальное значение F(aj) возможно для любого
j-го разряда, но только одного из них [19]. Это ограничение также следует из
линейной независимости строк порождающей матрицы V . Максимальное зна-
чение F (aj ), j ∈ {0, 1, 2, . . . , m - 1} обеспечивается формированием j-го еди-
ничного столбца матрицы (2), т.е. для значений: βj (i) = 1, где i = 0, m - 1.
Это влечет равенство
(5)
max F (aj ) =
2m-1-i = 2m
− 1.
i=0
157
Для характеристики F (aj ) последовательностей (1) справедливо следую-
щее
Свойство 1. Для любой последовательности A(n), заданной в (1), пере-
ключательная активность F (aj ) принимает различные значения в диапазоне
от 1 до 2m - 1.
Переключательная активность F (A) последовательности
A(n) = am-1am-2 . . . a0, n ∈ {0, 1, 2, . . . , 2m - 1}
принимает минимальное значение для последовательностей кода Грея [22].
Для матрицы, состоящей из m отличающихся строк, каждая из которых
содержит по одной единице, согласно (4) имеем min F (A) = 2m - 1. Макси-
мальная оценка F (A) также однозначно определяется видом порождающей
матрицы [22], первая строка которой состоит из единиц, а остальные строки
содержат по одному нулевому значению и определяется как
(6)
max F (A) = m2m-1 + (m - 1)
2m-i-1 = m2m - 2m-1
− m + 1.
i=1
Для переключательной активности F (A), заданной в (4), справедливо сле-
дующее
Свойство 2. Переключательная активность F(A) последовательности
A(n), заданной в (1), принимает значения в диапазоне от 2m - 1 до m2m-
-2m-1 - m + 1.
Для реальных значений m > 10 удобно использовать средние значения
Fav(aj ) и Fav(A) рассмотренных ранее числовых параметров переключатель-
ной активности F (aj ) и F (A), которые показывают среднее значение пере-
ключений при формировании очередного тестового набора. Эти характери-
стики определяются как Fav(A) = F (A)/(2m - 1) и Fav(aj ) = F (aj )/(2m - 1),
а их максимальные и минимальные величины принимают значения
min Fav(aj ) = min F (aj )/(2m - 1) = 1/(2m - 1);
max Fav(aj ) = max F (aj )/(2m - 1) = 1;
(7)
min Fav(A) = min F (A)/(2m - 1) = 1;
max Fav(A) = max F (A)/(2m - 1) = m - 1/2 + 1/(2m+1 - 2).
Важным следствием приведенных свойств 1 и 2 является существование
множества порождающих матриц V максимального ранга [19, 22].
4. Синтез последовательностей с заданной
переключательной активностью
Для произвольного m синтез генератора последовательности A(n) (1) с за-
данной средней переключательной активностью Fav(A) и соответствующей
158
Таблица 1. Примеры разложения (8) числа 37
F (A) = w(v0) · 23 + w(v1) ·
w(v0) w(v1) w(v2) w(v3)
F (A) = 37
· 22 + w(v2) · 21 + w(v3) · 20
3
2
2
1
37 = 3 · 8 + 2 · 4 + 2 · 2 + 1 · 1
88844221
2
4
1
3
37 = 2 · 8 + 4 · 4 + 1 · 2 + 3 · 1
8844442111
2
3
3
3
37 = 2 · 8 + 3 · 4 + 3 · 2 + 3 · 1
88444222111
ей F (A) заключается в нахождении порождающей матрицы V . Для этого
формируется двоичная m × m матрица максимального ранга с ограничения-
ми, определяющимися величиной F (A). Первоначально величина переклю-
чательной активности F (A) представляется в виде разложения [19].
F (A) = w(v0) · 2m-1 + w(v1) · 2m-2 +
(8)
+ w(v2) · 2m-3 + ... + w(vm-1) · 20.
Данное разложение представляет величину F (A) в m-ной смешанной си-
стеме счисления, в которой веса разрядов представлены в виде степеней двой-
ки от 20 до 2m-1, а значения цифр w(vi) лежат в диапазоне от 1 до m. Отме-
тим, что w(vi) представляет собой вес Хэмминга двоичного вектора vi иско-
мой порождающей матрицы V максимального ранга. Отсутствие нулевого
значения w(vi) объясняется невозможностью построения квадратной мат-
рицы максимального ранга с нулевой строкой, вес Хэмминга которой ра-
вен 0. Второе ограничение на цифры w(vi) разложения (8) заключается в
том, что только одна цифра w(vi) может принимать значение m. В терми-
нах порождающей матрицы V максимального ранга это означает, что только
одна строка матрицы может иметь вес, равный m. Существуют и другие,
не столь очевидные, ограничения на цифры w(vi) (веса Хэмминга) разложе-
ния (8), которые являются основой построения матрицы V максимального
ранга.
В качестве примера рассмотрим случай формирования последовательно-
сти A(n) для m = 4 и переключательной активности F (A) = 37. Величина
F (A) = 37 принадлежит диапазону от 15 до 53, определяемому свойством 2.
В табл. 1 представлены разложения (8) величины 37 для случая m = 4.
Отметим, что каждому разложению (8) можно поставить в соответ-
ствие множество матриц V , веса строк которых соответствуют значениям
цифр w(vi) указанного разложения. Например, для разложения 37 = 3 · 8 +
+2 · 4 + 2 · 2 + 1 · 1 вес w(v0) первой строки матрицы равен 3, второй w(v1)
и третьей w(v2) строк равен 2, а вес w(v3) четвертой строки равняется 1.
Матрицы V1 и V2, приведенные в табл. 2, являются примерами матриц мак-
симального ранга с указанными весами строк, а матрицы V3 и V4 представ-
ляют собой матрицы максимального ранга для других разложений (8) ве-
личины 37. В табл. 2 также приведены примеры формирования последова-
тельностей A(n) согласно (1) для всех четырех видов матриц V . В качестве
последовательности переключений использовалась ранее приводимая в каче-
стве примера последовательность T3.
159
Таблица 2. Примеры порождающих матриц V и последовательностей A(n)
для m = 4
V
V1
V2
V3
V4
β3(0) β2(0) β1(0) β0(0)
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
β3(1) β2(1) β1(1) β0(1)
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
β3(2) β2(2) β1(2) β0(2)
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
β3(3) β2(3) β1(3) β0(3)
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
A(0)
000 0
00 00
00 00
00 00
A(1) = A(0) ⊕ v0
1110
1011
01 10
1010
A(2) = A(1) ⊕ v1
001 0
01 11
1001
01 00
A(3) = A(2) ⊕ v0
1100
1100
1111
1110
A(4) = A(3) ⊕ v2
010 1
1010
1101
1001
A(5) = A(4) ⊕ v0
1011
00 01
1011
00 11
A(6) = A(5) ⊕ v1
011 1
1101
01 00
1101
A(7) = A(6) ⊕ v0
1001
01 10
00 10
01 11
A(8) = A(7) ⊕ v3
1000
00 10
01 01
1100
A(9) = A(8) ⊕ v0
011 0
1001
00 11
01 10
A(10) = A(9) ⊕ v1
1010
01 01
1100
1000
A(11) = A(10) ⊕ v0
010 0
1110
1010
00 10
A(12) = A(11) ⊕ v2
1101
1000
1000
01 01
A(13) = A(12) ⊕ v0
001 1
00 11
1110
1111
A(14) = A(13) ⊕ v1
1111
1111
00 01
00 01
A(15) = A(14) ⊕ v0
000 1
01 00
01 11
1011
Процедуру получения разложения (8) для произвольного целого значения
F (A) можно интерпретировать как решение задачи разбиения целого числа
на слагаемые, которыми являются целые положительные числа вида 2i, где
i ∈ {0,1,2,... ,m - 1}. В табл. 1 приведены примеры подобных разложений,
одним из которых является разложение 37 = 8 + 8 + 8 + 4 + 4 + 2 + 2 + 1,
представленное в виде последовательности 88844221 повторяющихся слагае-
мых 8, 4, 2 и 1 [25-27].
Простейшим способом генерирования всех разбиений целого числа на сла-
гаемые независимо от их порядка является разбиение в обратном лексико-
графическом порядке, начинающееся с разбиваемого целого числа ‘n’, когда
само число представляется одним слагаемым n, и заканчивающееся представ-
лением ‘111. . . 1’ этого числа в виде n слагаемых, равных единице [25].
Для целого значения F (A) = 37 и m = 4, с учетом ограничений на слагае-
мые, которыми в данном случае могут быть только 8, 4, 2 и 1, и их коли-
чество всевозможные разбиения следующие: 88844221, 888442111, 888422221,
8884222111, 884444221, 8844442111, 8844422221, 88444222111.
160
Специфика разбиения значения переключательной активности наклады-
вает ограничение на число слагаемых 2m-1, 2m-2, . . . , 20, количество каждого
из которых не должно равняться нулю и превышать m. И только одно сла-
гаемое может входить в разбиение m раз.
Рассмотрим алгоритм разбиения целого числа, определяющего переклю-
чательную активность F (A) последовательности A(n) = am-1am-2 . . . a0(1)
для заданного значения m. Слагаемыми разбиения могут быть только целые
числа вида 2i, где i ∈ {0, 1, 2, . . . , m - 1}, а их сумма должна принадлежать
диапазону от 2m-1 до m2m - 2m-1 - m + 1 (см. свойство 2).
Алгоритм разбиения целого числа на слагаемые.
1. Первоначально определяется сумма всех слагаемых 2i, которая равня-
ется максимальному m-разрядному двоичному числу 2m - 1.
2. Выполняется операция деления F (A) на 2m - 1. Полученное частное w
определяет минимальное количество вхождений каждого из слагаемых 2i в
разбиение целого F (A). При равенстве нулю остатка q от операции деле-
ния частное w является числом использования каждого из слагаемых 2i,
i ∈ {0,1,2,... ,m - 1} в разбиении F(A), и на этом шаге алгоритм разбиения
завершается. В противном случае выполняется следующий шаг.
3. Остаток 0 < q < 2m -1 от операции деления представляется в двоичном
коде q = bm-1 · 2m-1 + bm-2 · 2m-2 + · · · + b0 · 20, bi ∈ {0, 1}.
4. Строится разбиение целого числа F (A) на слагаемые 2i, где i ∈ {0, 1,
2, . . . , m - 1}, каждое из которых входит в разбиение 0 < w + bi ≤ m раз, где
величина w + bi определяет значение цифры w(vm-1-i) разложения (8).
Применив данный алгоритм для случая m = 6 и F (A) = 189, получим, что
частное w от деления 189 на 63 равняется 3, а остаток q = 0, соответственно
разбиение числа 189 имеет вид 252525242424232323222222 212121202020. Циф-
ры разложения (8) принимают значения w(v0) = w(v1) = w(v2) = w(v3) =
= w(v4) = w(v5) = 3, которые и определяют веса строк матрицы V . В случае
нахождения соответствующей полученным весам строк порождающей мат-
рицы V , применяемой для реализации соотношения (1), нахождение очеред-
ного набора последовательности A(n) всегда будет осуществляться за счет
выполнения трех переключений. В общем случае важным фактом является
существование порождающей матрицы V максимального ранга, веса строк
которой соответствуют цифрам разложения (8) [28].
При получении матрицы V с рангом, отличным от максимального, повтор-
но выполняется формирование случайным образом матрицы с фиксирован-
ными весами Хэмминга ее строк. Каждая строка этой матрицы представля-
ет собой случайный двоичный вектор с заданным весом w(vi). Затем опять
проверяется ранг матрицы. Очевидно, что требование к весам строк матри-
цы и одновременно необходимость ее максимального ранга могут существен-
но ухудшить вероятностную оценку положительного исхода при нахождении
порождающей матрицы V [28]. Противоречивость данных требований может
приводить к невозможности нахождения подобной матрицы, что иллюстри-
рует следующий пример.
161
а
б
8
8
8
8
4
4
4
2
2
2
2
2
2
1
1
1
1
Диаграммы для: а - w(v0) = w(v1) = w(v2) = w(v3) = 2;
б - w(v0) = w(v3) = 2,w(v1) = 1 и w(v2) = 4.
Пример 1. Определить веса строк порождающей матрицы V для фор-
мирования последовательности A(n) = a3a2a1a0 (1) с переключательной ак-
тивностью F (A) = 30.
Значение m равняется 4, соответственно F (A) = 30 принадлежит требуе-
мому диапазону от 15 до 53. Применив алгоритм, описанный выше, получим
значения цифр w(v3) = 2, w(v2) = 2, w(v1) = 2 и w(v0) = 2 разложения (8),
которому соответствует разбиение 88442211 целого числа 30. Однако попыт-
ка нахождения соответствующей матрицы максимального ранга для m = 4,
у которой все строки содержат по две единицы, не дает положительного ре-
зультата. Это связано с тем, что в данном случае требование о линейной неза-
висимости векторов v3, v2, v1 и v0 и значения их весов w(v3), w(v1), w(v2) и
w(v0) несовместимы. В то же время разбиение 884222211 числа 30 определя-
ет цифры w(v3) = 2, w(v2) = 4, w(v1) = 1 и w(v0) = 2 разложения (8) для
которого уже существуют матрицы с максимальным рангом.
Приведенный пример показывает, что получение одного разбиения цело-
го числа на слагаемые не представляется сложной задачей. В свою очередь,
генерирование порождающей матрицы V может потребовать наличия боль-
шего числа разбиений целого числа, полученных путем модификации исход-
ного. По аналогии с диаграммами Юнга [25] для формализации процедуры
модификации разбиения числа на слагаемые определим диаграмму разложе-
ния (8), которая учитывает все сформулированные ранее ограничения.
Определение 1. Диаграмма разложения (8) целого числа, принадле-
жащего диапазону от 2m - 1 до m2m - 2m-1 - m + 1, представляет собой
матрицу, состоящую из m × m клеток, причем каждая заполненная клет-
ка i-й строки, i ∈ {0, 1, 2, . . . , m - 1}, соответствует целому числу 2m-1-i.
В матрице отсутствуют незаполненные строки, выравненные по левой гра-
нице, а их заполнение соответствует разбиению целого числа.
На рисунке приведены две диаграммы разложения для случая целого чис-
ла 30.
Приведенные диаграммы свидетельствуют о том, что сумма значений за-
полненных клеток в обоих случаях равняется числу 30, а их заполнение со-
ответствует его разбиениям 88442211 и 884222211 на слагаемые 8, 4, 2 и 1.
Анализ примера показывает, что диаграмма б) может быть получена из диа-
граммы а) путем удаления одной клетки 4 и заполнения двух незаполнен-
ных клеток 2. Подобная процедура эквивалентна удалению слагаемого 4 из
162
разбиения 88442211 числа 30 и добавлению двух слагаемых, равных 2, для
получения разбиения 884222211 этого же числа, что позволяет определить
операцию модификации разложения, соответствующего определению 1.
Операция модификации. Для i-й i = 0,m - 2, строки диаграммы
разложения (8), содержащей более одной заполненной клетки, удаление за-
полненной клетки сопряжено с заполнением 2j свободных клеток в (i + j)-й
строке, i + j = 1,m - 1, диаграммы, где j ≤ log2(m - 1).
Данная операция симметрична относительно операций удаления и запол-
нения. Это значит, что удаление 2j заполненных клеток в i-й, i = 1, m - 1,
строке диаграммы, содержащей более чем 2j заполненных клеток, сопря-
жено с заполнением одной клетки в (i - j)-й строке, i - j = 0, m - 2, где
j ≤ log2(m - 1).
5. Задачи синтеза последовательностей с заданной
переключательной активностью
Учитывая широкий спектр применения тестовых последовательно-
стей A(n) [19, 21, 22, 29, 30], сформулируем задачи синтеза генераторов та-
ких последовательностей. Результатом синтеза, как указывалось ранее, бу-
дет являться порождающая матрица V , которая обеспечивает значения пе-
реключательной активности Fav(A) и Fav(aj ) последовательности A(n) =
= am-1 am-2 ...a0, ai ∈ {0,1}, i ∈ {0,1,2,... ,m-1} и n ∈ {0,1,2,... ,2m-1}.
Задача 1. Синтезировать устройство, формирующее последователь-
ность A(n) для заданного значения m и требуемой величины Fav(A).
Примерoм подобной задачи может быть задача формирования последо-
вательности двойного Грея, т.е. такой последовательности, для которой при
переходе от текущего тестового набора к последующему выполняется толь-
ко два переключения. Решение задачи 1 будет заключаться в: (i) получении
F (A) = int [Fav(A) × (2m - 1)], где int означает операцию получения целой
части от числа, представленного в скобках; (ii) разбиении целого числа F (A)
на слагаемые; (iii) получении значений весов строк w(vi) искомой порож-
дающей матрицы V и нахождении матрицы максимального ранга с весами
строк w(vi). В случае невозможности получения требуемой матрицы в силу
противоречивости сформулированных к ней требований первоначально при-
меняется операция модификации разбиения целого числа, описанная ранее.
Следующим и финальным этапом является коррекция значения F (A).
В общем случае операция коррекции применяется для обеспечения за-
данного значения Fav(A) с минимальной погрешностью. Для этого перво-
начально изменяется (корректируется) значение F (A) на минимальную ве-
личину (+1 или -1) и осуществляется поиск соответствующей порождаю-
щей матрицы V (2). В случае отрицательного исхода по результатам поис-
ка требуемой матрицы значение отклонения величины F (A) от требуемого
значения int [Fav(A) · (2m - 1)] увеличивается. Следует отметить, что коррек-
ция величины F (A) на единицу вносит несущественную погрешность, кото-
163
рая для реальных значений m в процентном исчислении определяется как
(1/(2m - 1)) × 100%.
Задача 2. Синтезировать устройство, формирующее последователь-
ность A(n) для заданного значения m, в которой для k ≤ m ее разря-
дов aα1,aα2,... ,aαk, αi ∈ {0,1,2,... ,m - 1}, i = 1,k, определены конкретные
значения переключательной активности Fav(aα1), Fav (aα2), . . . , Fav(aαk).
Также как и в случае задачи 1, средние значения Fav(aα1), Fav(aα2),
..., Fav(aαk) переключательных активностей представляются в виде сум-
марных величин количества F (aα1), F (aα2), . . . , F (aαk) переключений разря-
дов aα1, aα2, . . . , aαk последовательности A(n). Далее F (aαi) преобразуются в
m-разрядный двоичный код, F (aαi)(10) = F (aαc)(2) = βαi(0) · 2m-1 + βαi(1) ·
·2m-2+. . .+βαi(m-1)·20. Отметим, что βαi(0) представляет собой старший бит
полученного двоичного кода, а сам код βαi(0)βαi(1) . . . βαi(m - 1) однознач-
но определяет значения αi-го столбца порождающей матрицы V (2). Таким
образом вычисляются значения всех k ≤ m столбцов матрицы V , которые
определяют переключательные активности Fav(aα1), Fav (aα2), . . . , Fav(aαk).
В случае невыполнения необходимого условия к F (aα1), F (aα2), . . . ,
F (aαk), сформулированного в виде свойства 1, применяется операция кор-
рекции.
Следующим шагом решения задачи 2 является проверка выполнения
достаточного условия к значениям переключательных активностей F (aα1),
F (aα2), . . . , F (aαk), представляющими собой двоичные коды столбцов матри-
цы V , которым является линейная независимость столбцов порождающей
матрицы, невыполнение которого влечет применение операций коррекции.
Далее случайным образом (равновероятно и независимо) генерируются
остальные столбцы двоичной матрицы V , в которой столбцы α1, α2, . . . , αk
принимают заданные значения. Определяется ранг полученной матрицы.
В случае максимального ранга данная матрица является искомой и исполь-
зуется для построения генератора последовательности A(n). При получении
матрицы с рангом, отличным от максимального значения, равного m, по-
вторяется генерирование случайным образом остальных столбцов искомой
матрицы V .
Задача 3. Синтезировать устройство, формирующее последователь-
ность A(n) для заданного значения m, в которой для k ≤ m ее разря-
дов aα1,aα2,... ,aαk, αi ∈ {0,1,2,... ,m - 1}, i = 1,k, определены конкретные
значения переключательной активности Fav(aα1), Fav (aα2), . . . , Fav(aαk), а
переключательная активность A(n) равняется Fav(A).
Корректная постановка задачи 3 предполагает, что Fav(aα1) + Fav(aα2) +
+ ··· + Fav(aαk) < Fav(A) ≤ m - 1/2 + 1/(2m+1 - 2). На начальной стадии
решение задачи 3 повторяет решение задачи 2. Далее выполняются шаги
процедуры решения задачи 1. Отличием будет являться разбиение целого
числа
F(A) = int[Fav(A) × (2m - 1)] - int [Fav(aα1) × (2m - 1)] -
- int [Fav(aα2) × (2m - 1)] - · · · - int [Fav(aαk) × (2m - 1)]
164
на слагаемые, а не числа F (A). Кроме того, при получении значений весов
строк w(vi) искомой порождающей матрицы V необходимо учитывать веса
строк ранее сгенерированных k столбцов.
В случае невозможности получения требуемой матрицы в силу противо-
речивости сформулированных к ней требований первоначально применяется
операция модификации разбиения целого числа. В последующем выполняется
коррекция значений F(A) и, в последнюю очередь коррекция переключа-
тельных активностей F (aα1), F (aα2), . . . , F (aαk) начиная с их максимальных
значений. В качестве примера рассмотрим решение задачи 3 для конкретного
случая.
Пример 2. Синтезировать устройство, формирующее последователь-
ность A(n) = a5a4a3a2a1a0 для m = 6, в которой для разрядов a1 и a3 опре-
делена их переключательная активность Fav(a1) = 1, Fav(a3) = 1/63, а также
значение Fav(A) = 2.
Выполнение неравенства Fav(a1) + Fav(a3) = 1 + 1/63 < Fav(A) = 2 ≤ m -
- 1/2 + 1/(2m+1 - 2) = 5,5079 свидетельствует о возможности построения
устройства с заданными переключательными активностями. На основании
средних значений переключательных активностей Fav(a1), Fav(a3) и Fav(A)
получим F (a1) = 63, F (a3) = 1 и F (A) = 126.
Значения F (a1) и F (a3) представляются в виде F (a1) = 63(10) = 111111(2)
и F(a3) = 1(10) = 000001(2). Соответственно, значения первого и третьего
столбцов матрицы V примут вид β1(0)β1(1)β1(2)β1(3)β1(4)β1(5) = 111111
и β3(0)β3(1)β3(2)β3(3)β3(4)β3(5) = 000001. Вычисляется значение F(A) =
= F(A) - F(a1) - F(a3) = 126 - 63 - 1 = 62.
Далее, используя описанный выше алгоритм разбиения целого числа
F(A) = 62 на слагаемые, получим w = 0, а q = 62(10) = 111110(2). Таким об-
разом, b5b4b3b2b1b0 = 111110.
Строится разбиение целого числа F(A) на слагаемые 2i, где i = 0, 5, каж-
дое из которых входит в разбиение w + bi = 1 + bi раз. Так как q = 111110,
слагаемые 25, 24, 23, 22 и 21 входят в разбиение числа 62 по одному разу,
а слагаемое 1 не входит, так как только b0 = 0. Величина w + bi определяет
значение цифры w(vm-1-i) разложения (8) числа F(A), что в данном слу-
чае является весом Хэмминга строк искомой матрицы V , состоящей из шести
строк и шести столбцов, исключая первый и третий столбец, и, в силу этого,
допускающее нулевые значения цифр разложения.
Далее случайным образом формируются значения шести четырехраз-
рядных двоичных векторов с весами Хэмминга, равными w(v0) = w(v1) =
= w(v2) = w(v3) = w(v4) = 1 и w(v5) = 0, которые и будут определять значе-
ния остальных столбцов (кроме первого и третьего) искомой матрицы. Для
полученной таким образом матрицы определяется максимальность ее ранга.
В случае положительного исхода матрица является основой для формиро-
вания последовательностей A(n) (1) с заданными в условии примера 3 пе-
реключательными активностями. Если ранг матрицы не равен 6, процедура
формирования матрицы повторяется, т.е. случайным образом генерируются
шесть четырехразрядных векторов, определяющие значения разрядов a5, a4,
165
a2 и a0 последовательности A(n) = a5a4a3a2a1a0. В случае, когда в результате
определенного количества итераций искомая матрица максимального ранга
не находится, последовательно применяются операции модификации и кор-
рекции. Решением примера задачи 3 может быть следующая матрица:
β5(0) β4(0) β3(0) β2(0) β1(0) β0(0)
1
0
0
0
1
0
β5(1) β5(1) β3(1) β2(1) β1(1) β0(1)
0
1
0
0
1
0
β5(2) β5(2) β5(2) β2(2) β1(2) β0(2)
0
0
0
1
1
0
V =
=
β5(3) β5(3) β3(3) β2(3) β1(3) β0(3)
0
0
0
0
1
1
β5(4) β5(4) β3(4) β2(4) β1(4) β0(4)
0
0
0
0
1
0
 β5(5) β5(5) β3(5) β2(5) β1(5) β0(5)
0
0
1
0
1
0
Этот результат был получен путем последовательного применения опера-
ций модификации и коррекции.
6. Заключение
Предлагается методика синтеза генераторов тестовых последовательно-
стей с заданной переключательной активностью. Приведены определения
операций модификации и коррекции для нахождения порождающей матри-
цы генератора тестов. Сформулированы задачи синтеза тестовых последо-
вательностей с заданной переключательной активностью, показаны пути их
решения и существующие ограничения.
СПИСОК ЛИТЕРАТУРЫ
1. Jha N.K., Gupta S. Testing of Digital Systems. Cambridge, UK: Cambridge Univer-
sity Press, 2003.
2. Ярмолик В.Н. Контроль и диагностика вычислительных систем. Минск: Бест-
принт, 2019.
3. Bushnell M.L., Agrawal V.D. Essentials of Electronic Testing for Digital, Memory
& M ixed-Signal VLSI Circuits. N.Y.: Kluwer Academic Publishers, 2000.
4. Sharma A.K. Semiconductor Memories: Technology, Testing, and Reliability. Lon-
don: John Wiley & Sons, 2002.
5. Wang S., Gupta S.K. An automatic test pattern generator for minimizing switching
activity during scan testing activity // IEEE Trans. Comp. Aided Des. Int. Circ.
Syst. 2002. Vol. 21. No. 8. P. 954-968.
6. Goor A.J., Kukner H., Hamdioui S. Optimizing memory BIST Address Generator
implementations // Proc.
6th Int. Conf. on Design & Tech. Integr. Syst. in
Nanoscale Era (DTIS). 2011. P. 572-576.
7. Pedram M. Power minimization in IC design: principles and applications // ACM
Tran. Design Aut. Elect. Syst. 1996. Vol. 1. P. 3-56.
8. Мурашко И.А., Ярмолик В.Н. Встроенное самотестирование. Методы миними-
зации энергопотребления. Минск: Бестпринт, 2008.
166
9.
Girard P., Guiller L., Landrault C., et al. A test vector ordering technique for
switching activity reduction during test operation // Proc. Ninth Great Lakes Symp.
VLSI. 1999. P. 24-27.
10.
Bellaouar A., Elmasry M. Low-Power Digital VLSI Design Circuits and Systems.
US: Springer,1996.
11.
Huang R., Sun W., Xu Y. et al. A Survey on Adaptive Random Testing // IEEE
Trans. Soft. Eng. 2015. Vol. 14. No. 8. P. 1-36.
12.
Mrozek I., Yarmolik V.N. Iterative antirandom testing // J. Elect. Test: Theory
Appl. 2012. Vol. 9. No. 3. P. 251-266.
13.
Chen T.Y., Kuo F.C., Merkel R.G. et al. Adaptive Random Testing: The ART of
test case diversity // J. Syst. Soft. 2010. Vol. 83. No. 1. P. 60-66.
14.
Mrozek I., Yarmolik V.N. Antirandom test vectors for BIST in Hardware / Software
systems // Fundamenta Informaticae. 2012. No. 119. P. 1-23.
15.
Ярмолик С.В., Ярмолик В.Н. Управляемые вероятностные тесты // АиТ. 2012.
№ 10. С. 142-155.
Yarmolik S.V., Yarmolik V.N. Controlled Random Tests // Autom. Remote Control.
2012. Vol. 73. No. 10. P. 1704-1714.
16.
Du X., Mukherjee N., Cheng W.T. et al. Full-speed field-programmable memory
BIST architecture // Proc. IEEE Intern. Test Conf. 2005. P. 1173-1182.
17.
Aswin A.M., Ganesh S.S. Implementation and validation of memory built in self-test
(MBIST) - survey // Int. J. Mech. Eng. Tech. 2019. Vol. 10. No. 3. P. 153-160.
18.
Ярмолик С.В., Ярмолик В.Н. Многократные неразрушающие маршевые тесты
с изменяемыми адресными последовательностями // АиТ. 2007. № 4. С. 126-137.
Yarmolik V.N., Yarmolik S.V. The Repeated Nondestructive March Tests with Vari-
able Address Sequences // Autom. Remote Control.
2007. Vol.
68. No. 4.
P. 126-137.
19.
Ярмолик В.Н., Шевченко Н.А. Формирование адресных последовательностей с
заданной переключательной активностью // Информатика. 2020. Т. 17. № 1.
С. 7-23.
20.
Соболь И.М. Точки, равномерно заполняющие многомерный куб. М.: Знание,
1985.
21.
Антонов И.А., Салеев В.М. Экономичный способ вычисления ЛП-последова-
тельностей // Журн. вычисл. матем. и матем. физ. 1979. Т. 19. No. 1. С. 243-245.
22.
Ярмолик С.В., Ярмолик В.Н. Квазислучайное тестирование вычислительных
систем // Информатика. 2013. No. 3(39). С. 65-81.
23.
Savage C. A survey of combinatorial Gray code // SIAM Review. 1997. Vol. 39.
No. 4. P. 605-629.
24.
Pomeranz I. An adjacent switching activity metric under functional broadside tests /
I. Pomeranz // IEEE Trans. Comput. 2013. Vol. 62. No. 4. P. 404-410.
25.
Кнут Д. Искусство программирования. Т. 4А. Комбинаторные алгоритмы. Ч. 1.
М.: Вильямс, 2013.
26.
McKay J.K.S. Algorithm 371: Partitions in natural order [A1] // Commun. ACM.
1970. Vol. 13. No. 1. P. 52.
27.
Stojmenović I, Zoghbi A. Fast algorithms for generating integer partitions // Int. J.
Comp. Math. 1998. Vol. 70. No. 2. P. 319-332.
167
28. Ferreira P., Jesus B., Armando J.V., Pinho J. The rank of random binary matrices
and distributed storage applications // IEEE Commun. Lett. 2013. Vol. 17. No. 1.
P. 151-154.
29. Shauchenka M. Address Sequence Generator for Memory BIST // SSRG - IJCSE.
2019. Vol. 6. No. 11. P. 22-26.
30. Shauchenka M. Address Sequence Generator for Memory BIST investigation // Int.
Science. J. Scient. Tech. Union Mech. Eng. - Math. Model. 2020. Vol. 4. No. 1.
P. 7-8.
Статья представлена к публикации членом редколлегии А.Н. Соболевским.
Поступила в редакцию 07.04.2020
После доработки 03.06.2021
Принята к публикации 29.08.2021
168