УДК 519.714
Особенности автоматизации синтеза булевых функций
1 2 © А.А. Гурченков , Е.К. Егорова
1МГТУ им. Н.Э. Баумана, Москва, 105005, Россия 2МАТИ — РГТУ им. К.Э. Циолковского, Москва, 121552, Россия
Изложен оригинальный подход к автоматическому синтезу дискретных устройств в базисе микросхем. Методические установки этого подхода основываются на математическом и информационном описаниях булевых функций и их структурно-функциональной декомпозиции. Параллельная и последовательная декомпозиции по сложности (числу подформул) характеризуются одинаковым качеством, но по глубине лучшим качеством (меньшим или равным значением) обладает первая, поэтому для синтеза схем применена параллельная декомпозиция. В частности, предложен вычислительный метод для нахождения оценок сложности реализации произвольных булевых функций в базисе Жегалкина на основе параллельной декомпозиции. Метод позволяет оценить возможность минимизации числа транзисторов и времени задержки схемы. Для алгоритма рассмотрены несколько особых случаев с примерами. На основе этих особенностей внесены дополнения в алгоритм, в результате чего алгоритм стал универсальным.
Ключевые слова: булевы функции, показатели сложности, минимизация, декомпозиция, функциональные уравнения, схемы.
В данной работе применяется метод структурно-функциональной декомпозиции булевых функций и схем из функциональных элементов [1-5]. При использовании структурно-функциональной декомпозиции произвольной булевой функции, зависящей от любого конечного числа переменных, получены функционалы, позволяющие заранее подсчитывать показатели качества синтеза — число элементов и глубину схемы [2, 3, 6, 7]. Функционалы также могут быть использованы для оптимизации синтеза [1, 6, 8-10].
Для автоматического нахождения оценки здесь приводится алгоритм, позволяющий это легко сделать [5, 10]. Кроме того, рассмотрен ряд особых случаев, для обработки которых пришлось модифицировать построенный алгоритм. Для лучшего понимания работы алгоритма особые случаи подтверждены примерами.
Пусть X = {хь..., хп | — множество булевых переменных и произвольная булевой функции / ^) задается полиномом Жегалкина р(п) в базисе G3 (п — число переменных); т — длина полинома; Кг — монотонная элементарная конъюнкция ранга тг, г = 1, т. Вектор
г = (,...,г,...,гт) рангов полинома Жегалкина упорядочивается для алгоритма один раз, отношением " >". Получаем г >.. .> г >...> гт. Полином Жегалкина Р (п) представляется в виде табл. 1 (К,,') с числом строк (т +1) и числом столбцов (п +1). Первые т строк и п столбцов определяют полином Жегалкина, (т + 1)-я строка применяется для указания числа повторений букв в формуле и (п + 1)-й столбец — для рангов элементарной конъюнкции (ЭК) К,. Если х7 ], то К,,7 =1, иначе К,,7 = 0, , = 1, т, ' = 1, п, где под символом {Ki | понимаем множество переменных, образующих ЭК Ki.
Таблица 1
х\ х7 хп г
К г
К, хг,' =1 Г
Кт Гт
Р р Р' Рп Ьв
Для элементарного симметричного полинома Жегалкина р(п) шаг декомпозиции определяется с помощью рекуррентного соотношения
Р (п )=(( хпР^)® р ^.
Остаточные функции, рассматриваемые на множестве X ' = X \ {х7}, в алгоритме будем записывать соответственно как
р '=р^^ и р "=р^.
В алгоритме используются следующие параметры: гх = 1, 2,... — номер последней функции, записанной в табл. 2; 12 = 1, 2,... — номер последней прочитанной функции; ' = 'тах — индекс переменной х7 с максимальным числом р' повторений в табл. 1.
На основе множества рангов г, элементарных конъюнкций К1, . = 1, т , выносим за скобки переменную х' с максимальным числом повторений, при этом получается полином Р' длиной р'. Остаточные формулы записываются в табл. 2.
Таблица 2
№ п m F
1 п' :=п -1 m' := pj F'
2 п" :=п' ш" := ш - ш' F"
В алгоритме используются следующие параметры: Ь = 1, 2, ... — номер последней функции, записанной в табл. 2; Ь = 1, 2, ... — номер последней прочитанной функции; ] = jmax — индекс переменной Xj с максимальным числом pj повторений в табл. 1. Если сразу несколько переменных удовлетворяют этому условию, то, для сохранения упорядоченности рангов, выбираем из них переменную с минимальными индексами i иj.
Реализуемая формула F (п) (и получаемые остаточные) в общем случае разбивается на две более простые следующим образом: F(п) = xjmax F(п-1)л Ф F("-1^2. На каждом шаге остаточные формулы записываются в табл. 2, при этом значение ^ увеличивается на единицу
с каждой записанной формулой. На следующем шаге происходит чтение формулы из строки с номером t2, после чего значение t2 также увеличивается на 1. Алгоритм завершается, когда выполнится условие t2 > ^. Таким образом, будут получены суперпозиционная
формула F(п) и оценка числа подформул LF (F(п)) = N, где N находится в процессе работы алгоритма.
Шаг 1. Подготовка начальных данных.
Вводится полином F( п ) , для него подсчитываются п , m , Ьв. Составляется таблица, подсчитываются и упорядочиваются векторы г и р. Инициализируются переменные ^ := 0, Ь := 0, N := 0.
Шаг 2. Исходный полином записывается в таблицу. Счетчик записи увеличивается на единицу: ^ := ^ +1.
Шаг 3. Чтение из таблицы полинома с индексом ^.
t2 := t2 +1.
Шаг 4. Проверка m = 1.
Если формула состоит только из одной конъюнкции, то
N := N + (m -1);
^ := ^ +1.
Переход к шагу 9.
Шаг 5. Проверка р7тах = 1.
Если максимальный ранг равен единице, то формула представляет собой сложение по модулю 2п переменных. N := N + (п -1) ; Ь := к +1. Переход к шагу 9.
Шаг 6. Проверка Ьв = 3 . N := N + 2; ¿1 := Ь +1. Переход к шагу 9.
Шаг 7. Разложение.
Выделяется переменная х'тах и конъюнкции, содержащие эту переменную, копируются в формулу Р'. п' := п -1;
т : р'тах ;
N := N +1; ¿1 := Ь +1.
Шаг 8. Проверка т' Ф т .
Оставшиеся конъюнкции копируются в формулу Р .
п'' :=п -1;
т'' := т - т';
N := N +1;
¿1 := ¿1 +1.
Переход к шагу 9.
Шаг Р. Проверка ¿2 < ¿1. Переход к шагу 3. Шаг 10. Вывод результата.
Ьр (Р(п\Оз ):= N.
Пример 1. Рассмотрим случай, когда число конъюнкций т = 1. В этом случае формула представляет собой перемножение п переменных:
Р ( п) =
р — х^ х2 . • • хп.
Поскольку число подфункций на единицу меньше числа переменных, можно считать, что
ЬР = п -1.
Если в виде формулы данный случай не представляет особых сложностей, то в виде схемы может быть несколько вариантов размещения элементов.
Пусть
сЧ7) -
Р — Х\ Х2 Х3 Х4 Х5 Хб Х7.
Тогда возможны два случая:
• случай 1 (рис. 1):
Р(7) —((((((Х1Х2 )хз )Х4) х5) х6) Х7); (1)
• случай 2 (рис. 2):
Р(7) — ((Х1Х2)(ХзХ4))((Х5Хб ) Х7). (2)
Формула (1) и соответствующая ей схема имеют глубину БерР — 6, а формула (2) - БерР — 2 . Очевидно, что параллельная декомпозиция будет иметь преимущества по скорости быстродействия.
Пример 2. Еще одним особенным случаем является вариант, когда Хутах — 1. При этом все ранги равны единице, следовательно, формула состоит из п переменных, сложенных по модулю 2:
Р(п) — Х1 ф Х2 ф...ф Хп.
Аналогично примеру 1 имеем
Р(5) — Х1 ф Х2 ф Хз ф Х4 ф Х5;
F(5) -((( 0Х2)®(*3 ФХ4))фХ5). Пример 3. Пусть
F(2)- Х1 ф Х1Х2. (3)
Если вынести переменную с максимальным рангом за скобки, получим
F(2)= xi (1Ф Х2 ). (4)
Формулы (3) и (4) содержат одно и то же число операций. Следовательно, формулу (3) можно оставить в исходном виде, но при этом учесть число подформул.
Рассмотрим еще два случая, когда при разложении отсутствует одна из подформул.
Пример 4. Пусть
F(n)- x. ф F(n_1),2
1 ~ л. max w 1
Очевидно, что переменная x. max имеет число повторений
p.max -1, иначе существовала бы подформула F(n_1)'1. Но в таком
случае и остальные переменные повторяются всего один раз. Можно привести аналогичный пример:
F(4)- x1 ф x2x3x4. (5)
Для того чтобы избежать подобной ситуации, в алгоритме выполняется первоначальное упорядочивание по числу переменных в конъюнкциях. Таким образом, пример (5) приобретет следующий вид:
F(4) - x2x3x4 ф x1,
где максимальный ранг будет иметь переменная x2. Следовательно, единственный возможный вид формулы в таком случае
F(4) - Х1 ф Х2 ф Х3 ф Х4. Данный вид формулы разбирается в примере 2. Пример 5. Рассмотрим последний случай, когда
F(n) - x F(n^1),1 1 л. max 1
Пусть
F(4^ = x1x2 Ф Xix3 Ф x1x4 = Xi (x2 Ф x3 Ф x4 ).
В данном случае просто учитываем, что появляется всего одна остаточная подформула, а следовательно, увеличиваем значение счетчика записи всего на единицу: t1 = t1 +1.
Рассмотрены все актуальные частные случаи представления булевой формулы в виде полинома Жегалкина, которые могут вызывать проблемы при работе алгоритма [5]. Были внесены изменения в алгоритм для корректной обработки этих случаев.
ЛИТЕРАТУРА
[1] Поспелов Д.А. Логические методы анализа и синтеза схем. Москва, Энергия, 1974, 342 с.
[2] Чебурахин И.Ф. Синтез дискретных управляющих систем и математическое моделирование: алгоритмы, программы. Москва, Физматлит, 2004, 247 с.
[3] Чебурахин И.Ф. Математические модели для интеллектуализации синтеза дискретных логических управляющих устройств на основе цифровых интегральных схем. Известия РАН. Теория и системы управления, 2008, № 1, с. 68—77.
[4] Чебурахин И.Ф., Цурков В.И. Синтез дискретных логических устройств обработки информации на основе теории агентов. Мехатроника, автоматизация, управление, 2011, № 3, с. 27—34.
[5] Егорова Е.К., Чебурахин И.Ф. О минимизации сложности и автоматизации эффективного представления булевых функций в классах формул и схем. Известия РАН. Теория и системы управления, 2013, № 3, с. 121—129.
[6] Чебурахин И.Ф. Преобразования функциональных уравнений и показатели сложности булевых функций. Матер. IX Междунар. семинара «Дискретная математика и ее приложения». Москва, Изд-во МГУ, 2007, с. 126—129.
[7] Чебурахин И.Ф. Сложность симметрических полиномов Жегалкина.
Тр. XVII Междунар. школы-семинара «Синтез и сложность управляющих систем» им. акад. О.Б. Лупанова. Новосибирск, 2008, с. 180—185.
[8] Кудрявцев В.Б., Гасанов Э.Э., Подколзин А.С. Введение в теорию интеллектуальных систем. Москва, Изд-во МГУ, 2006, 208 с.
[9] Цурков В.И. Декомпозиция в задачах большой размерности. Москва, Наука, 1981, 324 с.
[10] Чебурахин И.Ф. Математические модели для минимизации и автоматизации синтеза дискретных управляющих систем. Мехатроника, автоматизация, управление, 2012, № 4, с. 5—13.
Статья поступила в редакцию 05.07.2013
Ссылку на эту статью просим оформлять следующим образом:
Гурченков А.А., Егорова Е.К. Особенности автоматизации синтеза булевых функций. Инженерный журнал: наука и инновации, 2013, вып. 12. URL: http:// engjournal.ru/ catalog/appmath/hidden/1167.html
Гурченков Анатолий Андреевич — д-р физ.-мат. наук, профессор кафедры «Высшая математика» МГТУ им. Н.Э. Баумана. Сфера научных интересов: управление и устойчивость вращающихся твердых тел с жидким наполнением. е-mail: challenge2005@mail.ru
Егорова Евгения Кирилловна родилась в 1988 г., окончила МАТИ — РГТУ им. К.Э. Циолковского в 2011 г. Ассистент кафедры «Прикладная математика и инфо-рмационные технологии» МАТИ — РГТУ им. К.Э. Циолковского. e-mail: eeniya@gmail.com