Научная статья УДК 519.714.5
doi:10.24151/1561-5405-2024-29-5-658-678 EDN: GIOVEJ
Выбор блочных покрытий при схемной реализации разреженных систем дизъюнктивных нормальных форм
булевых функций
П. Н. Бибило, С. Н. Кардаш, В. И. Романов
Объединенный институт проблем информатики Национальной академии наук Беларуси, г. Минск, Беларусь
Аннотация. Для матричных форм разреженных систем дизъюнктивных нормальных форм (ДНФ) булевых функций троичная матрица, задающая элементарные конъюнкции, содержит большую долю неопределенных значений, соответствующих в алгебраической записи отсутствующим литералам булевых переменных, а булева матрица, задающая вхождения конъюнкций в ДНФ функций, содержит большую долю нулевых значений. В работе рассмотрена проблема выбора лучших способов схемной реализации в заказных цифровых СБИС разреженных систем ДНФ полностью определенных булевых функций. Установлено, что для таких систем ДНФ достаточно эффективным способом технологически независимой оптимизации является двухэтапный способ, включающий в себя на первом этапе блочное покрытие системы ДНФ блоками (подсистемами ДНФ) меньшей размерности, на втором этапе - минимизацию многоуровневых представлений подсистем функций блоков в классе бинарных диаграмм решений либо в классе булевых сетей. Показано, что выбор лучшего блочного покрытия основан на переборе покрытий с ограниченным числом входных переменных блоков покрытия.
Ключевые слова: система булевых функций, дизъюнктивная нормальная форма (ДНФ), минимизация ДНФ, Binary Decision Diagram (BDD), булева сеть, разложение Шеннона, блочное покрытие системы ДНФ, синтез логической схемы, заказная СБИС, VHDL
Для цитирования: Бибило П. Н., Кардаш С. Н., Романов В. И. Выбор блочных покрытий при схемной реализации разреженных систем дизъюнктивных нормальных форм булевых функций // Изв. вузов. Электроника. 2024. Т. 29. № 5. С. 658-678. https://doi.org/10.24151/1561-5405-2024-29-5-658-678. - EDN: GIOVEJ.
© П. Н. Бибило, С. Н. Кардаш, В. И. Романов, 2024
Original article
Selection of block coverage for schematic implementation of sparse systems of disjunctive normal forms of Boolean functions
P. N. Bibilo, S. N. Kardash, V. I. Romanov
United Institute of Informatics Problems of the National Academy of Sciences of Belarus, Minsk, Belarus
Abstract. For matrix forms of sparse systems of disjunctive normal forms (DNF), the ternary matrix specifying elementary conjunctions contains a large proportion of undefined values corresponding to missing literals of Boolean variables in algebraic notation, and the Boolean matrix specifying the occurrences of conjunctions in DNF of functions contains a large proportion of zero values. In this work, the problem of selection of best ways of circuit implementation in custom digital VLSI of sparse DNF systems of fully defined Boolean functions is considered. It has been established that for such DNF systems, an effective method of technologically independent optimization is a two-stage method, including at the first stage block coverage of the DNF system with blocks
(DNF subsystems) of smaller dimension, and at the second stage minimization of multilevel representations of subsystems of block functions in the class of binary decision diagrams or in the class of Boolean networks. It was demonstrated that the selection of best block coverage is based on item-by-item examination of coverages with a limited number of input variables of the blocks of coverage.
Keywords: Boolean function system, disjunctive normal form (DNF), DNF minimization, Binary Decision Diagram (BDD), Boolean network, Shannon expansion, block coverage of DNF system, logic synthesis, ASIC, custom VLSI, VHDL
For citation: Bibilo P. N., Kardash S. N., Romanov V. I. Selection of block coverage for schematic implementation of sparse systems of disjunctive normal forms of Boolean functions. Proc. Univ. Electronics, 2024, vol. 29, no. 5, pp. 658-678. https://doi.org/ 10.24151/1561-5405-2024-29-5-658-678. - EDN: GIOVEJ.
Введение. Проблема эффективной реализации комбинационной логики заказных СБИС по-прежнему является актуальной при создании средств автоматизированного проектирования. Это обусловлено постоянно растущей размерностью решаемых задач синтеза логических схем, изменениями библиотек проектирования, связанными с новыми технологиями производства кристаллов [1, 2], ужесточением требований к энергопотреблению. Для решения задач логического проектирования совершенствуются известные методы и появляются новые модели структур данных для функциональных описаний систем булевых функций, являющихся математическими моделями комбинационных схем [2-5]. Проектирование типовых комбинационных устройств и устройств управляющей логики ведется различными способами.
Методы и средства проектирования типовых устройств комбинационной логики (сумматоров, умножителей, компараторов, дешифраторов и т. д.) опираются на алго-
ритмическое проектирование с использованием функционально-структурных и иерархических описаний и привязываются к базису проектирования - библиотекам синтеза схем заказных СБИС либо к структурам программируемых элементов FPGA. Например, для FPGA развиваются специальные методы проектирования умножителей [6], компараторов [7], модулярных умножителей [8], продолжаются исследования в области проектирования сумматоров [9].
Логическое проектирование нерегулярных схем управляющей логики в базисе библиотечных логических элементов заказных СБИС обычно проводится в два этапа. На первом этапе осуществляется технологически независимая оптимизация, на втором -технологическое покрытие (technology mapping) минимизированных функциональных описаний систем булевых функций описаниями поведения базисных логических элементов. На втором этапе также решаются оптимизационные задачи, связанные с выбором фрагментов в оптимизированных описаниях и нахождением тех логических элементов, которые могут реализовать выбранные фрагменты [10].
Важнейшим является первый этап, на котором выбирается форма представления системы булевых функций и осуществляется минимизация этой формы. По результату выполнения первого этапа определяются основные параметры синтезированной на втором этапе логической схемы - площадь, временная задержка и энергопотребление. Для сокращения энергопотребления используются специальные методы, такие как dock'gating [11], сохранение в регистрах элементов памяти значений неиспользованных сигналов [12], создаются системы управления питанием [13]. Для повышения быстродействия схем развиваются методы и средства конвейеризации, особенно при реализации цифровых систем в сложных FPGA [14]. Разнообразные формы описаний исходных систем булевых функций требуют проведения комбинированных способов технологически независимой оптимизации, это в первую очередь касается задач большой размерности, когда на первом этапе проводится разложение задачи оптимизации на ряд подзадач.
В настоящей работе рассматривается одна из классических форм описания функционирования комбинационных схем - система дизъюнктивных нормальных форм (ДНФ) [15] полностью определенных булевых функций - и выделяется класс разреженных систем ДНФ. Показывается, что для разреженных систем ДНФ достаточно эффективным способом технологически независимой оптимизации является двухэтапный способ, включающий в себя блочное покрытие системы ДНФ и последующую минимизацию блоков покрытия на основе многоуровневых BDD-представлений (Binary Decision Diagram - бинарная диаграмма решений) либо многоуровневых представлений в виде булевых сетей, так как результат блочного покрытия системы ДНФ - логическая сеть подсистем ДНФ меньшей размерности. Описываются соответствующие эксперименты по схемной реализации промышленных примеров разреженных систем ДНФ. Показывается эффективность предлагаемого способа при синтезе комбинационных схем в базисе проектирования заказных КМОП СБИС, позволяющего ограничивать при блочном покрытии размерность блоков покрытия, использовать разные критерии выбора лучших покрытий и применять различные программы минимизации многоуровневых представлений подсистем функций, описывающих блоки покрытия.
BDDI-минимизация систем булевых функций. Графовые BDD-представления систем функций строятся на основе разложения Шеннона. Разложением Шеннона булевой функцииf=fx),x = (xi, x2,..., xn), по переменной xi называется представление
f=fx) = *ifX-iA xn)vXfX-i,1,xn) • (1)
Функции f = f(Xi,..., Xii, 0, xn) , f1 = f(Xi,..., XJ_1,\,X1+1,..., xn) в правой части (1)
называются кофакторами (cofactors) разложения по переменной xt. Они получаются из функции f подстановкой вместо переменной Xi константы 0 и 1 соответственно. Каждый из кофакторов f0 и f1 может быть разложен по одной из переменных из множества {xi,..., xi-\, xi+1,., xn}. Процесс разложения кофакторов заканчивается, когда все n переменных будут использованы для разложения либо когда все кофакторы выродятся до констант 0, 1.
BDDI (Binary Decision Diagram with Inverse cofactors) - ориентированный бесконтурный граф, задающий последовательные разложения Шеннона системы булевых функций f(x) =f1(x),..., f m(x)), x = (x1, x2,..., xn) по всем ее переменным x1,., xn при заданном порядке (перестановке) переменных, по которым проводятся разложения, при условии нахождения пар взаимно инверсных кофакторов [16]. Вершине графа BDDI соответствует пара взаимно инверсных кофакторов, найденных среди всех кофакторов системы булевых функций при разложениях Шеннона по одной и той же переменной.
Под BDDI-минимизацией понимается сокращение числа логических выражений (логических уравнений), соответствующих графовому BDDI-представлению, что сводится к поиску лучшей перестановки переменных для разложений Шеннона, для которой число вершин графа BDDI (число логических уравнений) будет наименьшим. Построение логических уравнений, соответствующих графу BDDI, осуществлялось программой BDD_Builder [16]. Примеры (рисунки) графов BDDI- и Bool-представлений и соответствующих им логических уравнений приведены в [16].
Bool-минимизация систем булевых функций. Bool-представление системы булевых функций соответствует булевой сети (ориентированному бесконтурному графу), функциями вершин которой могут быть логические операции «конъюнкция» либо «дизъюнкция» над литералами (булева переменная либо ее инверсия) булевых переменных. Вершина булевой сети имеет две заходящие дуги и может иметь одну либо две исходящие дуги, соответствующие результату операции (прямой выход) и инверсированному результату операции (инверсный выход). При этом предполагается, что доступны как прямые, так и инверсные значения входных переменных. Логическая минимизация булевых сетей (Bool-минимизация) на основе разложения Шеннона заключается в поиске такой перестановки переменных разложения, при которой число литералов в булевой сети является наименьшим. В булевой сети разложение Шеннона записывается в виде трех формул
f (*) = W0 v wi, wo = Xf0 , wi = Xf • (2)
Формулы (1) и (2) представляют собой отдельное разложение Шеннона и содержат одинаковое число логических операторов, а число используемых в них литералов различно.
После разложения Шеннона по очередной переменной минимизация булевой сети сводится к следующему: ищутся вершины булевой сети, опирающиеся на одинаковые подсети, после чего проводится сокращение сети и находятся уравнения, соответствующие редуцированной сети [16].
Раздельные BDDI- и Bool-минимизации для выделенных подсистем системы булевых функций (либо для отдельных функций системы, когда подсистема состоит из одной функции) заключается в нахождении своей перестановки переменных разложения Шеннона для каждой из подсистем функций, в то время как при BDDI- и Bool-минимизациях, используемых в данной работе, находится одна и та же перестановка
переменных разложения для всех функций выделенной подсистемы. Таким образом, подсистемы минимизируются раздельно, однако функции каждой отдельной подсистемы минимизируются совместно. Выделение подсистем осуществляется на основе блочного покрытия исходной системы ДНФ булевых функций.
Блочное покрытие системы ДНФ булевых функций. Пусть (Тх, В) - пара матриц, задающая матричную форму системы ДНФ булевых функций /(х) =(/(х),..., /"(х)), х = (XI, х2,..., хп), где Тх - троичная матрица, задающая общие элементарные конъюнкции; В - булева матрица, единичные элементы которой отмечают вхождения элементарных конъюнкций в ДНФ функций [15]. Система ДНФ
/ Х ^^^ Х Х ^^ ;
/ Х^ Ху Х^ Х9 V Х4 Х5 Х6 Х8 X Хо V X X ;
/ ^^ ^Х^ ^Х^ ^Х^ Х ^Х^ Хо ^Х^ Х ^Х^ Х Х ^^ ^Х^ ^Х^ ;
^х^ ^Х^ ^^ ^Х^ Х ^^ ^Х^ Х О ^Х О Х Х ;
/5= _ _ •
у Х2 Х8 Х9 V Х1Х8 Х10 ;
/ = XJХ2х8х9XJ0 V xj х2 х8 х10 V х2 х8 х9
задается парой матриц (T, B), приведенных в табл. 1.
Система ДНФ булевых функций DNF system of Boolean functions
(3)
Таблица 1 Table 1
Номер Троичная матрица T Булева матрица B
строки Xi Х2 Х3 Х4 Х5 Хб Х7 Х8 Х9 Х10 f1 f2 f3 f 4f5 f6
1 1 1.....0 1 1 0 0 0 0 0 1
2 ---- 1 1 0 0 0 - 0 1 1 1 0 0
3 - - - 0 1 0 - 1 1 1 0 1 1 1 0 0
4 0 0 ----- 1 - 1 0 0 0 1 0 1
5 1 0 - 0 1..... 1 0 1 0 0 0
6 - 1 1 - 0..... 1 0 1 0 0 0
7 - 1.....1 0 - 0 0 0 0 1 1
8 1......0 - 1 0 0 0 1 1 0
9 0 - - 1 1 ----- 1 0 1 0 0 0
10 - - - 1 1 - - 1 - - 0 1 0 1 0 0
Число
литералов 81
Площадь 160
Число п переменных равно 10 (п = 10), число функций т = 6, ДНФ заданы на к = 10 общих элементарных конъюнкциях, число ё операторов дизъюнкции в (3) равно 15 (ё = 15). Площадь Q(Tx, В) пары матриц будем вычислять по следующей формуле и выражать в числе бит:
Q(Tx, В) = (п + т)к.
Рассмотрим систему ДНФ, каждая элементарная конъюнкция которой включает в себя не более I литералов. Это значит, что в каждой строке троичной матрицы Т находится не более I определенных 0, 1 элементов (остальные элементы равны «-»). Рассмотрим пару подматриц (^ , ), где ^ - строчная (образованная некоторыми
строками матрицы Tx) подматрица матрицы Tx; - подматрица матрицы B, заданная на том же подмножестве строк, что и ^ . Назовем пару ( ^ , ) блоком H.. Множество {Hi,..., Hv} = {(Г„ , ),.. ,(ТИ , )} блоков назовем блочным дизъюнктивным
н1 H1 Hv Hv
покрытием (или блочным покрытием) пары матриц (Tx, B), если каждый единичный элемент матрицы B входит только в одну из подматриц , а каждая строка матрицы
Tx входит хотя бы в одну из подматриц ^ , i = 1,..,,v. Легко видеть, что пара (Тн , )
задает соответствующую систему ДНФ булевых функций. Рассмотрим три пары подматриц (три блока Hi, H2, H3), заданных в табл. 2-4, образующих блочное покрытие системы ДНФ из табл. 1. Блочному покрытию соответствует логическая схема (рисунок). В табл. 2-4 используется текстовая запись логических уравнений для BDDI- и Bool-представлений, при этом функция /14 записана как f41, аналогично для функций f\, f23, f24.
Блок H1 имеет площадь 32 бит, блок H2 - 27 бит, блок H3 - 21 бит. Суммарная площадь трех блоков составляет 80 бит, что в два раза меньше площади (160 бит) системы ДНФ, заданной в табл. 1. Блочное покрытие позволяет сокращать суммарную площадь блоков и уменьшает число входных переменных блоков по сравнению с исходным (одноблочным) заданием системы ДНФ.
Таблица 2
Формы задания подсистемы булевых функций блока Hi
Table 2
Forms for specifying the Boolean function subsystem of block H1
Система ДНФ
Номер строки Троичная матрица Тн Булева матрица Вн BDDI-представление Bool-представление
Xi Х2 Х% Х9 Х10 fxf5 f6
1 1 1 0 1 1 0 0 1 f5=Ax10*s1+x10*s2; f41=W8+W9;
4 0 0 1 - 1 1 0 1 f6=Ax10*s1+x10*s4; W8=x8*W10;
7 - 1 1 0 - 0 1 1 f41=x10*s0; W9=Ax8*W17;
8 1 - 0 - 1 1 1 0 s4=Ax8*s10+x8*s11; s2=Ax8*x1+x8*s5; s0=Ax8*x1+x8*s9; s1=x8*s5; s9=Ax1*Ax2; s11=Ax1*s14+x1*s5; s10=x1*s12; s14=Ax2+x2*Ax9; s5=x2*Ax9; s12=x2*x9; f5=W13+W9; W13=x8*W15; f6=W18+W19; W18=x8*W20; W19=Ax8*W22; W22=x2*W23; W10=Ax2*W25; W15=x2*Ax9; W20=W15+W10; W17=x1*x10; W23=x1*W33; W25=Ax1*x10; W33=x10*x9;
Число
литералов 25 39 32
Площадь 32 - -
Таблица 3
Формы задания подсистемы булевых функций блока H2
Table 3
Forms for specifying the Boolean function subsystem of block H2
Система ДНФ
Номер строки Троичная матрица Тн Булева матрица Вн BDDI-представление Bool-представление
Х4 Х5 Хб Х7 Xg Х9 г2 г3 г4 J f f2
2 - 1 1 0 0 0 1 1 1 f2=s14; f2=W9+W10;
3 0 1 0 - 1 1 1 1 1 s14=x5*s0; W9=x8*W11;
10 1 1 - - 1 - 1 0 1 f42=s14; f31=x5*s1; s1=Ax4*s3+x4*s4; s0=Ax4*s3+x4*s6; s4=Ax8*s7; s6=Ax8*s7+x8; s3=Ax8*s7+x8*s9; s9=Ax6*x9; s7=x6*s11; s11=Ax9*Ax7; W10=Ax8*W13; f31=W14+W10; W14=x8*W25; f42=W9+W10; W11=W24+W25; W24=x4*x5; W25=Ax4*W28; W13=Ax9*W37; W28=x9*W42; W42=x5*Ax6; W37=x5*W48; W48=Ax7*x6;
Число
литералов 36 29 28
Площадь 27 - -
Таблица 4
Формы задания подсистемы булевых функций блока H3
Table 4
Forms for specifying the Boolean function subsystem of block H3
Система ДНФ
Номер строки Троичная матрица Тн Булева матрица Вн BDDI-представление Bool-представление
Х\ Х2 Х3 Х4 Х5 f Й
5 1 0 - 0 1 1 1 f41=s13; f41=W7+W8;
6 - 1 1 - 0 1 1 s13=Ax1*s0+x1*s1; W7=x5*W9;
9 0 - - 1 1 1 1 f32=s13; s1=Ax4*s4+x4*s5; s0=Ax4*s5+x4*s7; s5=Ax5*s8; s7=Ax5*s8+x5; s4=Ax5*s8+x5*Ax2; s8=x2*x3; W8=Ax5*W11; f32=W7+W8; W9=W17+W18; W17=x1*W19; W18=Ax1*x4; W19=Ax2*Ax4; W11=x2*x3;
Число
литералов 20 25 18
Площадь 21 - -
Логическая схема, соответствующая блочному покрытию (см. табл. 2-4) системы ДНФ Logic diagram corresponding to block coverage (Tables 2-4) of DNF system
Разреженные системы ДНФ и предлагаемый подход. Под разреженностью а троичной матрицы Тх будем понимать отношение числа неопределенных элементов «-» к числу всех элементов этой матрицы и выражать это отношение в процентах. Например, троичная матрица Тх (см. табл. 1) содержит 62 неопределенных значения «-», общее число элементов матрицы Тх равно 100 (матрица состоит из 10 столбцов и 10 строк), следовательно, а = 62 %.
Под разреженностью Р булевой матрицы В будем понимать долю ее нулевых элементов, выраженную в процентах. В булевой матрице В (см. табл. 1) число нулевых элементов равно 39, следовательно, Р = 39/60 = 0,65, что составляет 65 %. Чем большее значение имеют параметры а и Р, тем более разреженной является матричная форма системы ДНФ.
Предлагаемый способ схемной реализации разреженных систем ДНФ состоит в переборе блочных покрытий и минимизации подсистем функций блоков в классе ДНФ либо в классе многоуровневых BDDI- либо Bool-представлений. Перебор блочных покрытий предлагается осуществлять, задавая каждый раз ограничение на число входных переменных блоков покрытия, так как вычислительная сложность минимизации представлений подсистем функций во многом определяется размерностью булева пространства - числом входных переменных блока. При этом минимизация рассматриваемых алгебраических форм подсистем булевых функций может выполняться как для функций по отдельности (раздельная минимизация), так и для всех функций вместе - совместная минимизация всех функций рассматриваемой подсистемы. Ограничение на число входных переменных блока при блочном покрытии должно быть больше либо равно числу литералов в самой «длинной» (состоящей из максимального числа литера-
лов) элементарной конъюнкции, входящей в систему ДНФ. Отличительная особенность разреженных систем ДНФ состоит в том, что элементарные конъюнкции являются «короткими», т. е. включают в себя мало литералов по сравнению с общим числом n аргументов, от которых зависят все функции системы.
Исходные данные для экспериментов. Примеры систем ДНФ (табл. 5) - это разреженные системы ДНФ (Combinational Multi-Level Examples), взятые из библиотеки примеров LGSynth91 и переведенные в матричные формы систем ДНФ булевых функций. Пример i2c взят из библиотеки примеров «The EPFL Combinational Benchmark Suite» (http://lsi.epfl.ch/benchmarks). Основными критериями выбора примеров являлись практическая размерность (десятки аргументов и функций) и возможно большая разреженность матричных заданий систем ДНФ.
Функциональные описания примеров С8, DALU, LAL, PM1, SCT, TTT2, X1, X3, X4 не содержат инверсий литералов входных переменных, т. е. троичные матрицы Tx для этих примеров содержат только 1 и «-». В табл. 5 используются следующие обозначения: n -число аргументов; m - число функций; к - число общих элементарных конъюнкций; d -число дизъюнкций в системе ДНФ булевых функций; а - разреженность (в процентах) троичной матрицы Tx; Р - разреженность (в процентах) булевой матрицы B.
Рассмотрим матричную форму примера Apex5. Троичная матрица Tx включает в себя 117 столбцов (переменных) и 1227 строк (элементарных конъюнкций), площадь этой матрицы 117 х 1227=143 559, матрица Tx содержит 136 453 неопределенных элементов «-», разреженность этой матрицы 136 453/143 559 = 0,95, т. е. 95 %. Булева матрица включает в себя 88 столбцов (функций) и 1227 строк, площадь этой матрицы 88 х 1227 = 107 976, данная матрица содержит 101 759 нулевых элементов, разреженность этой матрицы 101 759/107 976 = 0,943, т. е. 94,3 %. Среди рассмотренных пример Alu4 является наименее разреженным: доли неопределенных элементов в троичной матрице Tx и нулевых элементов в булевой матрице B меньше половины.
Таблица 5
Параметры разреженных систем ДНФ булевых функций
Table 5
Parameters of sparse DNF systems of Boolean functions
Имя примера n m k d a P
C8 28 18 70 103 89,5 78,0
DALU 75 16 194 1145 94,0 58,7
LAL 26 19 117 67 83,8 71,8
PM1 16 13 42 27 83,6 70,0
SCT 19 15 64 76 98,9 63,3
TTT2 24 21 222 203 80,7 71,9
Alu4 14 8 1 028 1 020 45,2 40,3
Apex5 117 88 1 227 1 142 95,0 94,3
I2c 147 142 1 357 1 251 98,6 97,8
X1 51 35 324 289 87,0 78,0
X3 135 99 915 523 92,4 93,9
X4 94 71 371 277 94,5 90,8
Эксперименты. Сначала (кроме эксперимента 1) выполнялась программа поиска лучшего блочного покрытия системы ДНФ булевых функций. При этом осуществлялось последовательное нахождение блочных покрытий с заданным ограничением на
число p входов отдельного блока. Критериями выбора лучшего блочного покрытия при переборе покрытий выбраны: суммарная площадь элементов сети (систем ДНФ), соответствующих блочному покрытию; суммарное число литералов булевых переменных в элементах блочного покрытия.
Если критерий выбора лучшего блочного покрытия - площадь, то перебор блочных покрытий осуществлялся быстро, так как для блоков покрытия не применялись процедуры минимизации. Если критерием выбора лучшего покрытия - число литералов, то блоки покрытия минимизировались в классе ДНФ (выполнялась двухуровневая минимизация) либо для каждого из элементов сети выполнялась BDDI-минимизация и после выполнения процедур минимизации подсчитывалось число литералов.
Для обоснования выбора блочного покрытия по критерию минимальности суммарного числа литералов построены графики зависимости площади схемы из библиотечных КМОП-элементов от числа литералов в алгебраических формульных BDDI- либо Bool-представлениях систем функций. Такие графики линейной зависимости площадей схем из КМОП-элементов от числа вершин графа BDDI либо от суммарного числа литералов в BDDI-представлениях приведены в [17]. После того как лучшее (по числу литералов или по площади) блочное покрытие выбрано, выполняли заключительную BDDI-минимизацию либо Bool-минимизацию элементов сети. В двух экспериментах полученное минимизированное BDDI-представление дополнительно минимизировали еще и в классе булевых сетей - выполняли Bool-минимизацию (эксперименты 7 и 11).
На заключительном этапе экспериментов после логической минимизации описания представлений систем функций конвертировали в VHDL-описания и подавали на вход синтезатора LeonardoSpectrum - выполнялся синтез логических схем в библиотеке проектирования заказных КМОП СБИС и выдавались отчеты о суммарной площади (Area) элементов схемы и отчеты о максимальной задержке (Delay). Синтезатор LeonardoSpectrum [18] перерабатывает входное описание, выполняет свою логическую минимизацию, получает внутреннее описание, по которому и синтезируется схема. Библиотекой синтеза являлась библиотека проектирования заказных цифровых КМОП СБИС, состав библиотеки приведен в работе [12].
Проведено одиннадцать экспериментов, различающихся критериями выбора лучшего покрытия, программами минимизации, выполняемыми при переборе покрытий, и программами заключительной минимизации блоков выбранного покрытия (табл. 6). Например, BDDI-минимизация блоков найденного блочного покрытия используется в экспериментах 5, 7, 9, 11, а Bool-минимизация - в экспериментах 2, 3, 6, 7, 10, 11.
BDDI-минимизацию выполняли для матричных форм, Bool-минимизацию - для логических уравнений, задающих те же системы функций. Программу блочного покрытия выполняли только для матричных представлений, обработку многоблочных логических сетей осуществляли с помощью стратегий системы логической оптимизации FLC2 [19]. Перечислим программы системы FLC2, участвующие в экспериментах. Перебор блочных покрытий осуществляли программой AutoDecomp. BDDI-минимизацию систем ДНФ выполняли с помощью программы BDD_Builder [16], Bool-минимизацию - c помощью модификации программы BoolNet_Opt [16]. Совместную минимизацию систем булевых функций в классе ДНФ выполняли программой Minim [20].
Для решения задачи нахождения блочного покрытия системы ДНФ использовали программу RAZ_Area [21]. В реализованном варианте программы RAZ_Area блочного покрытия предполагается, что каждый единичный элемент матрицы B покрывается только одной из подматриц BH. Входным параметром программы RAZ_Area является число входных переменных блока покрытия p. Для примеров систем ДНФ, использованных в экспериментах, диапазоны перебираемых входных переменных блоков приведены в табл. 7.
Таблица 6
Структура экспериментов
Table 6
Structure of experiments
Эксперимент Выбор блочного покрытия Заключительная минимизация блоков покрытия
Минимизация блоков покрытия Критерий выбора
BDDI ДНФ Суммарное число литералов Площадь блочного покрытия BDDI ДНФ Bool
1 - - - - - - -
2 + - + - - - +
3 - + + - - + +
4 - - - + - - -
5 - - - + + - -
6 - - - + - - +
7 - - - + + - +
8 - - + - - - -
9 - - + - + - -
10 - - + - - - +
11 - - + - + - +
Примечание: «+» - выполняется соответствующая процедура минимизации либо используются критерии выбора лучшего покрытия (при переборе блочных покрытий); «-» - соответствующая процедура либо указанный в столбце критерий выбор не используется; в эксперименте 1 разбиения на блоки не было, поэтому во всех столбцах «-».
Таблица 7
Перебор числа p входных переменных блоков покрытия программой AutoDecomp
Table 7
Enumerating the number p of input variables blocks covered with AutoDecomp program
Имя Число
примера входных переменных
Начало Шаг Конец
С8 12 1 25
DALU 20 1 70
LAL 14 1 23
PM1 8 1 14
SCT 10 1 18
TTT2 15 1 21
Alu4 14 1 14
Apex5 25 1 50
I2c 25 75
X1 25 1 45
X3 25 1 75
X4 15 1 50
Эксперимент 1. Для систем функций, заданных логическими уравнениями, логическая оптимизация не выполнялась, исходные описания сразу конвертировались в VHDL-описания.
В экспериментах 2-11 в качестве исходной информации применяли матричную форму разреженной системы ДНФ булевых функций.
Эксперимент 2. Нахождение лучшего блочного покрытия по критерию числа литералов. При переборе покрытий для элементов каждого блочного покрытия выполнялась BDDI-минимизация, для всех элементов выбранного лучшего блочного покрытия выполнялась заключительная Bool-минимизация.
Эксперимент 3. Нахождение лучшего блочного покрытия по критерию числа литералов. При переборе покрытий для элементов каждого блочного покрытия выполнялась совместная минимизация системы функций блока в классе ДНФ, минимизированные ДНФ подсистем функций блоков выбранного блочного покрытия записывались в виде логических уравнений и к ним применялась заключительная Bool-минимизация.
Эксперимент 4. Нахождение лучшего блочного покрытия по критерию минимальной суммарной площади элементов сети.
Эксперимент 5. Нахождение лучшего блочного покрытия по критерию минимальной суммарной площади элементов сети. Затем элементы выбранного лучшего покрытия подвергались заключительной BDDI-минимизации.
Эксперимент 6. Нахождение лучшего блочного покрытия по критерию минимальной суммарной площади элементов сети. Затем элементы выбранного лучшего покрытия подвергались заключительной Bool-минимизации.
Эксперимент 7. Нахождение лучшего блочного покрытия по критерию минимальной суммарной площади элементов сети. Затем элементы выбранного лучшего покрытия подвергались двойной минимизации: сначала BDDI-минимизации, затем полученное минимизированное BDDI-представление подвергалось Bool-минимизации.
Эксперимент 8. Для систем функций, заданных в матричной форме, находилось лучшее блочное покрытие по критерию минимального суммарного числа литералов элементов покрытия.
Эксперимент 9. Нахождение лучшего блочного покрытия по критерию минимального суммарного числа литералов элементов покрытия. Затем элементы выбранного лучшего покрытия подвергались заключительной BDDI-минимизации.
Эксперимент 10. Нахождение лучшего блочного покрытия по критерию минимального суммарного числа литералов элементов покрытия. Затем элементы выбранного лучшего покрытия подвергались заключительной Bool-минимизации.
Эксперимент 11. Нахождение лучшего блочного покрытия по критерию минимального суммарного числа литералов элементов покрытия, затем элементы выбранного лучшего покрытия подвергались двойной минимизации: сначала BDDI-минимизации. Затем полученное минимизированное BDDI-представление подвергалось Bool-минимизации.
Результаты экспериментов и их обсуждение. Для системы ДНФ функций рассматриваемого примера (см. табл. 1) результаты экспериментов для заказных СБИС даны в табл. 8. Обозначения, используемые в табл. 8-15, следующие: Z - число литералов в алгебраическом задании системы булевых функций; Scover - суммарная площадь элементов (систем ДНФ) блочного покрытия; Area - суммарная площадь элементов схемы в условных единицах; Delay - временная задержка схемы, нс; p - число входов блока;
r - число блоков после разбиения системы функций на подсистемы (случай r = 1 соответствует совместной реализации системы); # - улучшение параметра площади либо задержки по сравнению с базовым решением; * - лучшее решение по всем экспериментам.
Таблица 8
Результаты экспериментов 1, 2, 4 для системы ДНФ булевых функций
Table 8
Results of experiments 1, 2, 4 for the DNF system of Boolean functions
Эксперимент 1 (базовое решение) Эксперимент 2 Эксперимент 4 Р
Исходное описание Выбор лучшего покрытия Заключительная Bооl-минимизация блоков Блочное покрытие (без оптимизации блоков)
Area Delay Z Z Area Delay с ^ cover Area Delay
8 643 2,74 93 78 *#8 493 #2,64 80 8 643 *#2,63 6
104 - - - 141 - - 7
107 - - - 140 - - 8
Таблица 9 Результаты эксперимента 1
Table 9
Results of experiment 1
Имя примера Схемная реализация (базовые решения)
Z Area Delay
С8 204 *21 500 *2,20
DALU 1 404 106 249 10,79
LAL 529 *26 343 3,80
PM1 124 *10 764 2,58
SCT 253 20 406 3,20
TTT2 1 263 43 652 *3,85
Alu4 7 875 487 848 9,94
Apex5 7 106 *188559 8,77
I2c 7 112 280 601 9,12
X1 2 148 67 546 *3,99
X3 5 045 203 659 6,75
X4 2 649 *95 781 5,38
Число лучших базовых решений 5 3
Таблица 10
Результаты эксперимента 2
Table 10
Results of experiment 2
Имя примера Выбранные параметры блочного покрытия Схемная реализация
Р Z r Z Area Delay
C8 17 213 18 241 22 275 #2,02
DALU 45 1 234 16 1 054 #50 979 #4,89
LAL 17 536 19 497 26 829 #3,73
PM1 10 172 14 147 10 931 #2,38
SCT 13 370 17 338 #19 926 #3,18
TTT2 21 827 10 810 48 434 4,27
Alu4 14 3 469 8 3 504 *#313 172 #7,72
Apex5 35 5 623 95 6 427 284 022 #8,21
I2c 75 5 774 81 4 459 #257 617 9,97
X1 45 1 249 18 1 555 71 848 4,42
X3 39 3 598 120 3 883 212 598 8,35
X4 33 2 748 50 2 970 123 156 5,80
Число улучшенных базовых решений 4 7
Таблица 11
Результаты эксперимента 3
Table 11
Results of experiment 3
Имя примера Выбранные параметры блочного покрытия Схемная реализация
Р Z r Z Area Delay
C8 17 204 18 258 22 091 2,20
DALU 45 1 404 16 1 154 #54 595 #6,38
LAL 22 531 18 579 27 710 #3,25
PM1 12 126 12 153 11 171 #2,49
SCT 17 253 7 394 29 552 5,32
TTT2 21 1 263 10 684 *#38 898 4,19
Alu4 14 5 167 8 3 758 #352 544 #8,58
Apex5 31 7 051 101 6 272 237 312 9,52
I2c 65 5 425 76 4 639 *#251033 9,22
X1 30 1 990 22 1 541 75 503 5,86
X3 29 5 084 122 4 144 229 360 10,60
X4 50 2 659 37 3 172 129 808 8,47
Число улучшенных базовых решений 4 4
Таблица 12
Результаты экспериментов 4, 5 выбора блочного покрытия по площади блоков
Table 12
Results of experiments 4, 5 - selection of block coverage based on block area
Имя примера Выбранные параметры блочного покрытия (для экспериментов 4, 5, 6, 7) Эксперимент 4 Эксперимент 5
Схемная реализация
Р Z r с ^cover Z Area Delay Z Area Delay
C8 12 208 21 402 208 22 220 2,36 266 22 169 2,20
DALU 26 1 445 34 4 538 1 445 #54 282 *#4,28 1 315 #65 526 #5,29
LAL 14 541 24 1 247 541 27 214 #3,53 588 27 710 *#3,25
PM1 8 137 18 283 137 11 099 #2,44 196 11 127 *#2,20
SCT 10 269 23 610 269 #*18615 *#2,75 397 #19 301 #2,93
TTT2 16 1 281 16 3 172 1 281 45 399 4,38 956 51 609 4,64
Alu4 14 7 875 8 14 378 7 875 507 507 #9,67 3 469 #373 163 10,53
Apex5 25 7 334 238 15 713 7 334 195 534 9,09 8 277 236 904 #8,14
I2c 25 7 218 104 22 867 7 218 295 584 #8,88 5 884 #277 426 #7,06
X1 27 2 173 24 6 501 2 173 #67 364 #3,94 1 638 81 038 5,23
X3 26 5 142 157 12 149 5 142 218 384 #6,69 4 370 *#194418 *#5,19
X4 17 2 776 76 5 119 2 776 96 579 5,41 3 354 108 821 #5,16
Число улучшенных базовых решений 3 8 - 5 8
Таблица 13
Результаты экспериментов 6, 7 выбора блочного покрытия по площади блоков
Table 13
Results of experiments 6, 7 - selection of block coverage based on block area
Имя Эксперимент 6 Эксперимент 7
примера Схемная реализация
Z Area Delay Z Area Delay
C8 294 21 734 2,20 336 21 656 2,20
DALU 1 219 #52 642 #5,21 1 298 #50 421 #4,38
LAL 593 27 582 #3,56 647 28 090 4,10
PM1 195 11 188 #2,44 215 10 881 #2,38
SCT 400 #19 926 #3,18 434 #19 301 #2,93
TTT2 998 52 753 4,36 1 045 55 939 5,26
Alu4 3 714 #345 329 *#8,30 3 440 #340 492 10,19
Apex5 7178 300 388 7,58 9 130 285 685 #7,11
I2c 5 682 283 944 #7,79 6 982 #279 000 #7,54
X1 1 607 71 257 4,94 1 731 72 646 4,93
X3 4 352 209 780 #6,02 4 614 206 912 #6,12
X4 2 776 96 579 5,41 3 649 114 954 #5,05
Число улучшенных базовых решений 3 7 - 4 7
Таблица 14
Результаты экспериментов 8, 9 выбора блочного покрытия по числу литералов
Table 14
Results of experiments 8, 9 - selection of block coverage by the number of literals
Выбранные параметры Эксперимент 8 Эксперимент 9
Имя примера блочного покрытия
(для экспериментов 8, 9, 10, 11) Схемная реализация
Р Z r с ^cover Z Area Delay Z Area Delay
C8 17 204 18 465 204 22 460 2,91 213 22 460 2,20
DALU 45 1 404 16 7 034 1 404 #51 961 #4,45 1243 #67 033 #6,22
LAL 22 531 18 1 357 531 27 180 #3,53 546 27 710 *#3,25
PM1 12 126 12 353 126 11 099 #2,44 178 11 947 #2,38
SCT 17 253 7 844 253 #19 831 #3,15 385 #20 216 3,42
TTT2 21 1 263 10 3 594 1263 44 930 4,38 827 63 015 5,64
Alu4 14 7 875 8 14 378 7 875 507 507 #9,67 3 469 #373 163 10,53
Apex5 35 7 129 95 20 689 7 129 197 253 *#6,83 5623 212 386 #7,83
I2c 60 7 143 76 27 186 7 143 294 222 #7,51 5884 317 184 #8,58
X1 44 2 152 18 9 516 2 152 *#66 458 3,99 1681 83 237 4,54
X3 29 7 190 122 13 511 7 190 226 743 7,34 4344 204 189 #5,69
X4 50 2 659 37 7 439 2 659 100 501 *#4,00 3134 136 760 7,37
Число улучшенных базовых решений 3 8 - 3 6
Таблица 15
Результаты экспериментов 10, 11 выбора блочного покрытия по числу литералов
Table 15
Results of experiments 10, 11 - selection of block coverage by the number of literals
Имя примера Эксперимент 10 Эксперимент 11
Схемная реализация
Z Area Delay Z Area Delay
C8 256 22 091 2,20 282 22 778 2,59
DALU 1 144 *#49 082 #5,22 1 154 #53 099 #5,32
LAL 541 27 582 3,56 619 27 710 *#3,25
PM1 126 11 099 2,44 189 11 082 2,38
SCT 420 28 084 4,12 400 #20 149 3,18
TTT2 874 46 749 4,76 902 39 345 4,50
Alu4 3 714 #345 329 8,30 3 440 #340 492 10,19
Apex5 6 512 277 226 9,33 6 672 197 220 8,41
I2c 4 939 #275 021 *#7,01 6 256 #275 362 #8,35
X1 1 686 69 064 4,42 1 651 73 042 5,89
X3 4 338 242 518 8,94 4 336 #202 163 5,22
X4 3 194 123 776 7,69 3 582 156 391 7,12
Число улучшенных базовых решений 3 2 - 5 3
В эксперименте 2 (см. табл. 8) строились три блочных покрытия (для p = 6, 7, 8), для каждого из них выполнялась BDDI-минимизация, выбиралось покрытие (для p = 6) с меньшим числом (93) литералов, в результате проведенной заключительной Bool-минимизации блоков выбранного покрытия число литералов сокращалось до 78, результирующая логическая схема имела площадь 8493 усл. ед. и задержку 2,46 нс.
В эксперименте 4 выбиралось покрытие с наименьшей суммарной площадью блоков (Scover = 80), для выбранного покрытия выполнялся синтез схемы, при этом никакой оптимизации блоков не проводилось. В результате получена схема площадью 8493 усл. ед. и задержкой 2,63 нс. Если сравнивать параметры трех полученных схем, то в эксперименте 2 получена схема, площадь которой наименьшая (символ *) и площадь которой была меньше, чем у базового решения (символ #). В эксперименте 4 получена схема с наименьшей (для данных трех экспериментов) задержкой (символ *) и задержка этой схемы меньше, чем у базового решения, поэтому значение 2,63 в табл. 8 сопровождается двумя символами «*#».
Проведенные эксперименты показывают, что в семи примерах систем ДНФ из двенадцати (см. табл. 7) применение предлагаемого подхода позволяет получить лучшее решение по площади схем, чем непосредственная реализация исходных (неминимизи-рованных) описаний систем ДНФ, улучшение задержки оказалось возможным в девяти случаях.
Эксперименты 2 и 3, в которых после построения каждого блочного покрытия для каждого блока проводилась BDDI-минимизация (эксперимент 2) или совместная минимизация в классе ДНФ (эксперимент 3), являются трудоемкими, особенно когда требуется BDDI-минимизация блоков с большим числом входных переменных. Поэтому сокращение времени нахождения лучшего покрытия возможно либо при ограничении числа входных переменных блоков, либо (как это сделано в экспериментах 4 и 8) при более простом выборе лучшего покрытия. В эксперименте 4 лучшее покрытие выбиралось по критерию меньшей суммарной площади блоков, в эксперименте 8 - по меньшей сумме числа литералов в блоках покрытия.
Отметим, что время BDDI-минимизации не ограничивалось в отличие от Bool-минимизации, когда один блок обрабатывался 1 мин. Улучшение качества решений (площади схемы), получаемых Bool-минимизацией, возможно при увеличении времени обработки одного блока. Например, увеличение времени обработки одного блока до 5 мин (вместо 1 мин) при Bool-минимизации в эксперименте 6 позволило существенно уменьшить площадь только для двух примеров Apex5, Dalu. При оптимизации в течение 1 мин для одного блока для примера Apex5 получена площадь 300 388 усл. ед., при времени обработке в течение 5 мин площадь уменьшилась и составила 284 474, а для примера Dalu при выделенной 1 мин для обработки одного блока площадь равна 52 642, а при 5 мин площадь стала меньше и равна 49 026.
Эксперименты 4 и 8 показывают, что при выполнении только одного этапа (блочного покрытия) уже возможно уменьшение площади схемы и увеличение ее быстродействия по сравнению с базовым решением, в котором не ведется предварительная оптимизация. Оценивая результаты экспериментов 4-11, можно сделать вывод о том, что перебор блочных покрытий с различным числом входов и многоуровневая либо двухуровневая минимизация блоков для каждого перебираемого блочного покрытия - трудоемкая задача, особенно когда блоки имеют большое число входных переменных.
Таким образом, для схемной реализации разреженных систем ДНФ целесообразно находить лучшее блочное покрытие, быстро оценивая покрытие по общей площади се-
ти либо по суммарному числу литералов в сети, а затем проводить однократную (и менее трудоемкую) BDDI- или Bool-минимизацию блоков найденного покрытия.
Выполнение дополнительной Bool-минимизации для уже минимизированных BDDI-представлений блоков позволяет улучшить решение по площади схемы (см. табл. 13). При этом увеличение выделяемого времени для Bool-минимизации ведет к перебору большего числа перестановок входных переменных блоков покрытия и позволяет сокращать число литералов и, следовательно, сокращать площадь схемы. Экспериментально установлено, что сокращение времени BDDI-минимизации возможно при сравнении кофакторов, заданных не в виде полиномов Жегалкина, а в виде матричных ДНФ-описаний. Сравнение полиномов Жегалкина и нахождение инверсных кофакторов эффективно для ограниченной размерности входных переменных соответствующих булевых функций (кофакторов). Если же говорить о временных задержках результирующих логических схем из КМОП-элементов, то в результате применения блочного покрытия и оптимизации блоков на основе многоуровневых представлений задержки получаемых схем меньше, чем задержки схем, соответствующих базовым решениям.
Улучшение результатов многоуровневой минимизации функций блока (^ , )
возможно при реализации многократного покрытия единичного значения в матрице B несколькими подматрицами с целью уменьшения числа различных ДНФ в блоке
(^ , ). Улучшение результатов - площадей и задержек - схемной реализации разреженных систем ДНФ возможно также при использовании комбинированных процедур [22] многоуровневой минимизации и для смешанных стратегий минимизации подсистем функций блоков, когда для различных блоков одного и того же покрытия применяется не одна и та же процедура (программа) минимизации, так сделано в проведенных экспериментах, а выбирается своя комбинированная процедура минимизации, позволяющая получать лучшее решение именно для этого блока. Кроме того, можно в качестве заключительной минимизации использовать совместную либо раздельную минимизацию систем функций в классе ДНФ. Все это открывает возможности для дальнейших исследований по схемной реализации не только разреженных систем ДНФ, но и других классов ДНФ большой размерности, например так называемых блочных систем ДНФ.
Заключение. Система FLC2 [19] включает в себя разнообразные программы логической минимизации различных форм представлений систем булевых функций. В FLC2 можно провести эффективную технологически независимую оптимизацию разреженных систем ДНФ, используя программы как блочного покрытия, так и блочного разбиения систем ДНФ, выделяя подсистемы функций, для которых целесообразно проводить совместную логическую минимизацию. После блочного разбиения либо покрытия системы ДНФ булевых функций для логической минимизации могут быть использованы представления проектных данных для блоков покрытия не только в виде бинарных диаграмм решений и булевых сетей, но и других структур данных.
Литература
1. Amaru L., Gaillardon P.-E., Mitra S., De Micheli G. New logic synthesis as nanotechnology enabler // Proceedings of the IEEE. 2015. Vol. 103. No. 11. P. 2168-2195. https://doi.org/10.1109/JPROC.2015.2460377
2. Amaru L. G. New data structures and algorithms for logic synthesis and verification. Cham: Springer, 2017. XVI, 156 p.
3. Soeken M., Amaru L. G., Gaillardon P.-E., De Micheli G. Optimizing majority-inverter graphs with functional hashing // 2016 Design, Automation & Test in Europe Conference and Exhibition (DATE). Dresden: IEEE, 2016. P. 1030-1035.
4. Soeken M., Amaru L. G., Gaillardon P.-E., De Micheli G. Exact synthesis of majority-inverter graphs and its applications // IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 2017. Vol. 36. No. 11. P. 1842-1855. https://doi.org/10.1109/TCAD.2017.2664059
5. Гуров C. И. Мажоритарная алгебра для синтеза комбинационно-логических схем. Обзор // Таврический вестник информатики и математики. 2020. № 2 (47). С. 39-60. EDN: CNJUKV.
6. Böttcher A., Kumm M. Towards globally optimal design of multipliers for FPGAs // IEEE Transactions on Computers. 2023. Vol. 72. No. 5. P. 1261-1273. https://doi.org/10.1109/TC.2023.3238128
7. Соловьев В. В. Проектирование на программируемых логических интегральных схемах быстрых компараторов большой разрядности // Проблемы разработки перспективных микро- и наноэлектронных систем (МЭС). 2016. № 3. С. 198-205. EDN: WWZKPP.
8. Gorodecky D., Sousa L. Two-operand modular multiplication to small bit ranges // Advanced Boolean techniques: Selected papers from the 15th International Workshop on Boolean Problems / eds R. Drechsler, S. Huhn. Cham: Springer, 2023. P. 111-122. https://doi.org/10.1007/978-3-031-28916-3_8
9. Solomko M., Tadeyev P., Nazaruk V., Khariv N. Optimal performance of 16-bit acyclic adders of binary codes // Eastern-European Journal of Enterprise Technologies. 2019. Vol. 3. No. 4 (99). P. 21-36. https://doi.org/10.15587/1729-4061.2019.168485
10. Mailhot F., Di Micheli G. Algorithms for technology mapping based on binary decision diagrams and on Boolean operations // IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 1993. Vol. 12. No. 5. P. 599-620. https://doi.org/10.1109/43.277607
11. Kaxiras S., Martonosi M. Idle-unit switching activity: clock gating // Computer architecture techniques for power-efficiency / S. Kaxiras, M. Martonosi. Williston, VT: Morgan & Claypool, 2008. P. 51-57.
12. Авдеев Н. А., Бибило П. Н. Автоматизированное проектирование цифровых операционных устройств с пониженным энергопотреблением // Программная инженерия. 2021. Т. 12. № 2. С. 63-73. https://doi.org/10.17587/prin.12.63-73. - EDN: VSVBVZ.
13. Шашков А. С. Проектирование цифровых систем с пониженным энергопотреблением с применением технологии UPF-описания подсистемы питания // Информатика. 2015. № 3 (47). С. 90-104. EDN: ZWZPJX.
14. Тарасов И. Е. ПЛИС Xilinx. Языки описания аппаратуры VHDL и Verilog, САПР, приемы проектирования. М.: Горячая линия - Телеком, 2020. 538 с.
15. Закревский А. Д. Логический синтез каскадных схем. М.: Наука, 1981. 416 c.
16. Бибило П. Н., Ланкевич Ю. Ю. Экспериментальное сравнение эффективности алгоритмов оптимизации BDD-представлений систем булевых функций // Программные продукты и системы. 2020. № 3. С. 449-463. EDN: SAITXW.
17. Бибило П. Н. Бинарные диаграммы решений в логическом проектировании. М.: URSS: ЛЕНАНД, 2024. 560 с.
18. Бибило П. Н. Системы проектирования интегральных схем на основе языка VHDL: StateCAD, ModelSim, LeonardoSpectrum. М.: СОЛОН-Пресс, 2005. 384 с.
19. Бибило П. Н., Романов В. И. Система логической оптимизации функционально-структурных описаний цифровых устройств на основе продукционно-фреймовой модели представления знаний // Проблемы разработки перспективных микро- и наноэлектронных систем (МЭС). 2020. № 4. С. 9-16. https://doi.org/10.31114/2078-7707-2020-4-9-16. - EDN: ZHOFRS.
20. Торопов Н. Р. Минимизация систем булевых функций в классе ДНФ // Логическое проектирование: сб. науч. тр. Минск: Ин-т техн. кибернетики НАН Беларуси, 1999. Вып. 4. С. 4-19.
21. Кардаш С. Н. Построение блочных разбиений систем булевых функций на основе задачи покрытия булевых матриц // BIG DATA и анализ высокого уровня: сб. науч. ст. IX Междунар. науч.-практ. конф. (Минск, 17-18 мая 2023 г.): в 2 ч. Ч. 2. Минск: БГУИР, 2023. С. 326-330. EDN: OGQMZK.
22. Бибило П. Н., Ланкевич Ю. Ю., Романов В. И. Логическая минимизация многоуровневых представлений систем булевых функций // Информационные технологии. 2023. Т. 29. № 2. С. 59-71. https://doi.org/10.17587/it.29.59-71. - EDN: RGJEJU.
Статья поступила в редакцию 31.01.2024 г.; одобрена после рецензирования 20.02.2024 г.;
принята к публикации 16.08.2024 г.
Информация об авторах
Бибило Петр Николаевич - доктор технических наук, профессор, заведующий лабораторией Объединенного института проблем информатики Национальной академии наук Беларуси (Беларусь, 220012, г. Минск, ул. Сурганова, 6), [email protected]
Кардаш Сергей Николаевич - кандидат технических наук, старший научный сотрудник Объединенного института проблем информатики Национальной академии наук Беларуси (Беларусь, 220012, г. Минск, ул. Сурганова, 6), [email protected]
Романов Владимир Ильич - кандидат технических наук, доцент, ведущий научный сотрудник Объединенного института проблем информатики Национальной академии наук Беларуси (Беларусь, 220012, г. Минск, ул. Сурганова, 6), [email protected]
References
1. Amaru L., Gaillardon P.-E., Mitra S., De Micheli G. New logic synthesis as nanotechnology enabler. Proceedings of the IEEE, 2015, vol. 103, no. 11, pp. 2168-2195. https://doi.org/10.1109/JPROC.2015.2460377
2. Amaru L. G. New data structures and algorithms for logic synthesis and verification. Cham, Springer, 2017. xvi, 156 p.
3. Soeken M., Amaru L. G., Gaillardon P.-E., De Micheli G. Optimizing majority-inverter graphs with functional hashing. 2016 Design, Automation & Test in Europe Conference and Exhibition (DATE). Dresden, IEEE, 2016, pp. 1030-1035.
4. Soeken M., Amaru L. G., Gaillardon P.-E., De Micheli G. Exact synthesis of majority-inverter graphs and its applications. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2017, vol. 36, no. 11, pp. 1842-1855. https://doi.org/10.1109/TCAD.2017.2664059
5. Gurov S. I. Majority algebra for the synthesis of combinatorial logic schemes. Review. Tavricheskiy vestnik informatiki i matematiki = Taurida Journal of Science Theory and Mathematics, 2020, no. 2 (47), pp. 39-60. (In Russian). EDN: CNJUKV.
6. Böttcher A., Kumm M. Towards globally optimal design of multipliers for FPGAs. IEEE Transactions on Computers, 2023, vol. 72, no. 5, pp. 1261-1273. https://doi.org/10.1109/TC.2023.3238128
7. Salauyou V. V. Designing on FPGA and SoC high-performance binary comparators of a big dimensionality. Problemy razrabotki perspektivnykh mikro- i nanoelektronnykh sistem (MES) = Problems of AdvancedMi-cro- andNanoelectronic Systems Development (MES), 2016, no. 3, pp. 198-205. EDN: WWZKPP.
8. Gorodecky D., Sousa L. Two-operand modular multiplication to small bit ranges. Advanced Boolean techniques: Selected papers from the 15th International Workshop on Boolean Problems, eds R. Drechsler, S. Huhn. Cham, Springer, 2023, pp. 111-122. https://doi.org/10.1007/978-3-031-28916-3_8
9. Solomko M., Tadeyev P., Nazaruk V., Khariv N. Optimal performance of 16-bit acyclic adders of binary codes. Eastern-European Journal of Enterprise Technologies, 2019, vol. 3, no. 4 (99), pp. 21-36. https://doi.org/ 10.15587/1729-4061.2019.168485
10. Mailhot F., Di Micheli G. Algorithms for technology mapping based on binary decision diagrams and on Boolean operations. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1993, vol. 12, no. 5, pp. 599-620. https://doi.org/10.1109/43.277607
11. Kaxiras S., Martonosi M. Idle-unit switching activity: clock gating. Computer architecture techniques for power-efficiency, by S. Kaxiras, M. Martonosi. Williston, VT, Morgan & Claypool, 2008, pp. 51-57.
12. Avdeev N. A., Bibilo P. N. Design of digital operational units with low power consumption. Pro-grammnaya ingeneria = Software Engineering, 2021, vol. 12, no. 2, pp. 63-73. (In Russian). https://doi.org/ 10.17587/prin.12.63-73. - EDN: VSVBVZ.
13. Shashkov A. S. Design of low-power electronic systems using UPF power intent specification technology. Informatika = Informatics, 2015, no. 3 (47), pp. 90-104. (In Russian). EDN: ZWZPJX.
14. Tarasov I. E. FPGA Xilinx. Hardware description languages VHDL and Verilog, CAD, design techniques. Moscow, Goryachaya liniya - Telekom Publ., 2020. 538 p. (In Russian).
15. Zakrevskiy A. D. Logic synthesis of cascade circuits. Moscow, Nauka Publ., 1981. 416 p. (In Russian).
16. Bibilo P. N., Lankevich Yu. Yu. Experimental investigation of effectiveness of algorithms for minimizing BDD representations of Boolean function systems. Programmnyye produkty i sistemy = Software and Systems, 2020, no. 3, pp. 449-463. (In Russian). EDN: SAITXW.
17. Bibilo P. N. Binary decision diagrams in logical design. Moscow, URSS, LENAND Publ., 2024. 560 p. (In Russian).
18. Bibilo P. N. Integrated circuit design systems based on the VHDL Language: StateCAD, ModelSim, LeonardoSpectrum. Moscow, SOLON-Press, 2005. 384 p. (In Russian).
19. Bibilo P. N., Romanov V. I. The system of logical optimization of digital circuits functional structural descriptions based on production-frame knowledge representation model. Problemy razrabotki perspektivnykh mikro- i nanoelektronnykh sistem (MES) = Problems of Advanced Micro- and Nanoelectronic Systems Development (MES), 2020, no. 4, pp. 9-16. (In Russian). https://doi.org/10.31114/2078-7707-2020-4-9-16. -EDN: ZHOFRS.
20. Toropov N. R. Minimization of systems of Boolean functions in the DNF class. Logicheskoye proyek-tirovaniye, proceedings. Minsk, Institute of Technical Cybernetics of the Academy of Sciences of Belarus, 1999, iss. 4, pp. 4-19. (In Russian).
21. Kardash S. N. Construction of block partitions of systems of Boolean functions based on the problem of covering Boolean matrixes. BIG DATA i analiz vysokogo urovnya = BIG DATA and Advanced Analytics, proceedings of 9th International res.-to-pract. conf. (Minsk, May 17-18, 2023), in 2 parts. Pt. 2. Minsk, BSUIR, 2023, pp. 326-330. (In Russian). EDN: OGQMZK.
22. Bibilo P. N., Lankevich Yu. Yu., Romanov V. I. Logical minimization of multilevel representations of Boolean function systems. Informatsionnyye tekhnologii = Information Technologies, 2023, vol. 29, no. 2, pp. 59-71. (In Russian). https://doi.org/10.17587/it.29.59-71. - EDN: RGJEJU.
The article was submitted 31.01.2024; approved after reviewing 20.02.2024;
accepted for publication 16.08.2024.
Information about the authors
Petr N. Bibilo - Dr. Sci. (Eng.), Prof., Head of Laboratory, United Institute of Informatics Problems of the National Academy of Sciences of Belarus (Belarus, 220012, Minsk, Surganov st., 6), [email protected]
Sergei N. Kardash - Cand. Sci. (Eng.), Senior Scientific Researcher, United Institute of Informatics Problems of the National Academy of Sciences of Belarus (Belarus, 220012, Minsk, Surganov st., 6), [email protected]
Vladimir I. Romanov - Cand. Sci. (Eng.), Assoc. Prof., Leading Scientific Researcher, United Institute of Informatics Problems of the National Academy of Sciences of Belarus (Belarus, 220012, Minsk, Surganov st., 6), [email protected]