Научная статья на тему 'Реализация булевых функций комбинационными схемами с помощью функциональных грамматик'

Реализация булевых функций комбинационными схемами с помощью функциональных грамматик Текст научной статьи по специальности «Математика»

CC BY
235
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГРАММАТИКА / КОМБИНАЦИОННЫЕ СХЕМЫ / ДЕКОМПОЗИЦИЯ БУЛЕВЫХ ФУНКЦИЙ / GRAMMAR / COMBINATION CIRCUITS / DECOMPOSITION OF BOOLEAN FUNCTIONS

Аннотация научной статьи по математике, автор научной работы — Чимитов Василий Валерьевич, Могнонов Петр Борисович

В статье предлагается метод декомпозиции булевых функций с помощью функциональных грамматик. Рассматриваются основные вопросы построения функциональных грамматик для реализации булевых функций комбинационными схемами. Демонстрируется порождающая способность функциональных грамматик на примере синтеза комбинационной схемы.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Realization of Boolean Functions by Combination Circuits using Functional Grammars

In the article, we propose a method for decomposing Boolean functions using functional grammars. The main problems of constructing functional grammars for implementation of Boolean functions by combinational circuits are considered. The generative ability of functional grammars is demonstrated using the example of combination circuit synthesis.

Текст научной работы на тему «Реализация булевых функций комбинационными схемами с помощью функциональных грамматик»

УДК 519.714.5

doi: 10.18101/2304-5728-2017-3-64-72

РЕАЛИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ КОМБИНАЦИОННЫМИ СХЕМАМИ С ПОМОЩЬЮ

ФУНКЦИОНАЛЬНЫХ ГРАММАТИК

© Чимитов Василий Валерьевич

аспирант,

Восточно-Сибирский государственный университет технологий и управления

Россия, 670013, г. Улан-Удэ, ул. Ключевская, 40В

E-mail: [email protected]

О Могиоиов Петр Борисович

кандидат технических наук, доцент,

Восточно-Сибирский государственный университет технологий и управления

Россия, 670013, г. Улан-Удэ, ул. Ключевская, 40В

E-mail: [email protected]

В статье предлагается метод декомпозиции булевых функций с помощью функциональных грамматик. Рассматриваются основные вопросы построения функциональных грамматик для реализации булевых функций комбинационными схемами. Демонстрируется порождающая способность функциональных грамматик на примере синтеза комбинационной схемы.

Ключевые слова: грамматика; комбинационные схемы; декомпозиция булевых функций.

Введение

При современных темпах развития полупроводниковых технологий существенно усложняются функции, возлагаемые на средства их автоматического проектирования. Сложность и высокая стоимость разработки цифровых систем стимулируют развитие новых более универсальных методов и средств автоматизации проектирования цифровых устройств.

Теоретические основы и общеизвестные классические методы логического проектирования представлены в работах [1; 2]. В работе [3] дан обзор, где задачу логического проектирования сводят к задаче декомпозиции булевых функций. В работе [4] рассматриваются методы логического синтеза структур программируемых логических интегральных схем, а в [5] предложена методика синтеза комбинационных схем с использованием искусственных сетей. В этом подходе решение задачи логического проектирования сводится к обучению исходно избыточной бинарной многослойной нейронной сети. При этом наиболее «естественной» средой для реализации такого подхода является нейрокомпьютер, построенный из цифровых компонентов, обеспечивающих возможность настройки его на конкретные задачи, представленные в нейросетевом базисе.

В. В. Чимитое, П. Б. Могноное. Реализация булевых функций комбинационными схемами с помощью функциональных грамматик

В данной работе предлагается метод синтеза комбинационной схемы, реализующей заданную булеву функцию с помощью аппарата функциональных грамматик. Этот аппарат в дальнейшем позволит автоматизировать процесс генерации программ на языке описания аппаратуры на основе функционального представления цифрового устройства.

1. Функциональная грамматика, определение и свойства

В работах [6; 7] вводится тезис о том, что любая предметно-ориентированная теория является полиморфной программой, написанной на специализированном естественном языке. Согласно данному подходу с использованием функциональных грамматик можно рассматривать любую теорию как алгебраическую систему (М,^,/2,...,/я), где M — множество, в разных теориях имеющее различное название: базис элементов, структура данных, семантическая структура, глубинная структура и т. п. При этом всякое предложение естественного языка является закодированной суперпозицией (или множеством суперпозиций) функций fi.

В качестве функциональной грамматики понимается множество формальных грамматик следующего вида:

G = {Vt,Vn,P,F,S), где VT — конечное множество терминальных символов, V,- — конечное множество нетерминальных символов, F — конечное множество функций вывода; Р - конечное множество правил вывода, множество упорядоченных пар следующего вида: А—> a{f},AeVT а — цепочка символов из VTyjVN, f — функция / е 1< . S — начальный символ

Для решения задачи синтеза цифрового устройства приведем функциональную грамматику G0, используя некоторые разделы теории проектирования цифровых систем и дискретной математики. В качестве входных данных функциональной грамматики рассматривается система булевых функций в дизъюнктивной нормальной форме, представленных операциями: —1 (отрицание), гл (конъюнкция), и (дизъюнкция). Выводу функциональной грамматики будет соответствовать суперпозиция функций. Существует несколько вариантов использования полученного результата:

1. Вывести суперпозицию функций на понятном пользователю языке, либо на одном из языков описания аппаратуры (HDL — hardware description language).

2. Вычислить суперпозицию функций с заданными исходными параметрами для моделирования работы цифрового устройства.

Построение функциональной грамматики начинается с составления алфавита V = VT u VN . Для этого выделим основные понятия для системы булевых функций, сопоставив им символы алфавита (табл. 1).

Таблица 1

Алфавит символов грамматики

№ Понятие теории проектирования цифровых сис- Символ алфа-

тем и дискретнои математики вита

1 Исходное задание <3адание>

2 Базис операций <Базис>

3 Система булевых функций , /2,..., /т } <СБФ>

4 Булева функция /т, т = 0, N <Функция>

5 Выходной аргумент функции / <Выход>

6 Дизъюнкция, логическая сумма логических произведений аргументов функции <Дизъюнкция>

7 Конъюнкция, логическое произведение аргументов функции <Конъюнкция>

8 Аргумент функции <Аргумент>

9 Буквенное обозначение аргумента функции <Символ>

Алфавит символов примет следующий вид:

^ | < Задание >, < СБФ >, < Базис >, < Функция >, < Выход >, | [< Дизъюнкция >, < Конъюнкция >, < Аргумент >, < Символ >\ Для символов из алфавита составим правила вывода: < Задание > —>< СБФ >;<Базис > {/0}

< СБФ >< Фунция >,< СБФ >;{/} | < Функция >;{/2}

< Функция > —>< Выход > = < Дизъюнкция > {/3}

< Дизъюнкция >->-.< Дизъюнкция > {/4} |

< Конъюнкция >+< Дизъюнкция >{/5} |< Конъюнкция > {/2}

< Конъюнкция >—>—.< Конъюнкция > {/4} |

< Аргумент > ■ < Конъюнкция > {/6} |< Аргумент > {/2} < Аргумент >->-.< Символ > {/4}| < Символ > {/2}

< Символ >—>а\Ь |с |г{/7} < Выход >—>< Символ > {/2} <&змс >->И,НЕ \ ИЛИ,НЕ\И,ИЛИ,НЕ\И-НЕ\ИЛИ-НЕ{/8] Функции :

/о = (Функх.знач у)знач : (Х)е\а1Х /1=(функх,у)функ:(Х,¥)Х,¥

/2 = (функх)функ : (Х)Х /з =(функх,у)функ:(Х,¥)Х(¥)

В. В. Чимитое, П. Б. Могноное. Реализация булевых функций комбинационными схемами с помощью функциональных грамматик

/4 = (ткош^ф^х)функ-.{Т :4,Х)/4°(Х,Х) |(Г :3,Х)/5°(Х,Х)|

(Т: 0\\\2,Х)Г?{Х) /5 = (конт I, функ х, у) функ :(Т :4,X,У)/4° (/4° (X, 7), /4° (X, 7)) \

(Т: 1|2,Х,7)/2°(Х,7) /6 = (конШ,функх,у)функ: (Г:4,X,7)/4°(/4°(X,X),/4°(X,X)) |

(Г: 3, X, 7) /5° (/5° (X, 7), /5° (X, 7)) | (Г: 1, X, 7)(/2° (X), (7))) |

(Г : 01 2, X, 7)/3° (X, 7) /7 = (текст х) функ : (Х)Х /8 = (конт ^ текст х) конт :(М:ИМЕ')М : 0\(М,'ИЛИ,НЕ')М: 11 (М, 'И,ИЛИ,НЕ')М : 2(М,'И-НЕ')М: 3 | (М,'ИЛИ - НЕ')М: 4

Базисные функции :

= (знач х)знач: (Х)НЕ(Х) /2° = (знач х,у)зшч: (X, У)ИЛИ(Х.7) /з° = (знач х,у)знач: (X, У)И(Х,7) /4° = (щчх,у)щч: (X,У)ИЛИ - НЕ(Х,7) /5° = (знач х, у)знач :(Х.У)И-НЕ(Х, 7)

Память грамматики используется для записи базиса операций, который указывает пользователь в исходных данных. Память грамматики выглядит следующим образом:

М->0|1|2|3|4|е,

где е - пустое множество.

Таким образом, была составлена функциональная грамматика, способная при подаче на вход пользователем системы булевых функций провести простейшую декомпозицию и на выходе построить структурное описание комбинационной схемы в соответствии с указанным базисом операций.

2. Пример разбора логических выражений

В качестве примера рассмотрим простейшую реализацию системы булевых функций комбинационной схемой на логических элементах И,ИЛИ,НЕ.

Р = а-Ь-с + а-Ь-с;

= Ь ■ с + а ■ с;

На вход функциональной грамматики должна быть подана следующая последовательность: система булевых функций, представленная символа-

67

ми алфавита грамматики и базис элементов, в котором необходимо построить структурное описание схемы.

р = _,(</)._,(£)._,(С)+ _,(£,).ь.С5 5 = ъ■ -,(с) + а• с; И,ИЛИ,НЕ.

На первом шаге работы заданная функциональная грамматика произведет синтаксический разбор входной информации (рис. 1, 2). Согласно правилам входная последовательность будет рассматриваться как два нетерминала < СБФ > и < Базис >, разделенные символом «,». Первый нетерминал развернется в ветку разбора системы булевых функций, при этом в каждом узле разбора выставляя соответствующую функцию грамматики. Второй нетерминал развернется в текстовую последовательность, в нашем случае — И, ИЛИ, НЕ.

На втором этапе будет производиться выполнение выставленных во время разбора функций. Следует отметить, что функции, определяющие структурное описание схемы, не имеют доступа к расположенному в другой ветви разбора значению базиса элементов. Поэтому результатом выполнения функций будет синтаксически разобранная, но не выполненная суперпозиция. Таким образом, будет построена суперпозиция, описывающая логику работы проектируемого устройства, которая в качестве аргумента будет передана функции /0. Вычисление значений функций будет произведено лишь после выполнении функция /8, которая запишет в модель памяти грамматики значение соответствующего базиса.

Рис. 1. Дерево синтаксического разбора функции Р

В. В. Чимитое, П. Б. Могноное. Реализация булевых функций комбинационными схемами с помощью функциональных грамматик

Рис. 2. Дерево синтаксического разбора функции Л'

Рассмотрим принцип работы функций на примере

/1=(функх,у)функ:(Х,¥)Х,¥

Представленная функция состоит из двух частей: заголовка и тела. Заголовок, в свою очередь, так же разделен на две части: в скобках задаются типы и имена параметров, за скобками объявляется тип возвращаемого значения. Для функции /г объявлено два параметра, имеющие тип функ,

результатом будет так же тип функ .

Каждому параметру и вырабатываемому результату функции должен быть указан один из четырех типов: знач, функ, текст или конт [8].

Если параметр имеет тип знач, то при обращении аргумент будет рассматриваться как значение выполненной суперпозиции. Если функ, то аргумент подается на вход в виде синтаксически разобранной, но не вычисленной суперпозиции. Если текст , то аргумент рассматривается как последовательность символов. Если конт , то значение аргумента берется из общей памяти.

Продолжим рассмотрение функции , расположенной в верхней части дерева разбора (рис. 1). В теле функции в скобках указаны формальные параметры Хи ¥, которые в процессе вычисления будут отождествлены с фактическим аргументом. Поскольку в заголовке ^ аргумент имеет тип

функ, то фактический параметр будет являться не выполненная суперпозиция нижестоящих функций. Результат работы /, будет следующим: ¿(/з(/2(/7™/5(/6(/4(/7(«)),т^

/2(/4(/7(с)))),/2(/6(/2(/7(«)),/2(/2(/7(с))))))))))). В ветви разбора базиса операций находится узел, которому соответствует функция:

/8 = (конттекстх)конт :(М:И,НЕ')М : 0 |(М,'ИЛИ,НЕ')М: 11 (М, 'И,ИЛИ,НЕ')М : 2(М,'И-НЕ')М: 3 | (М,'ИЛИ - НЕ')М: 4 Представленной функции в заголовке указаны два аргумента: (конт и х текст. Фактическими параметрами функции будут текущее значение памяти М равное е и текст И, ИЛИ, НЕ . Возвращаемым значением указан тип конт, обозначающий, что вычисленное значение функции будет записано в память М . В теле функции с помощью условных операторов производится выбор значения базиса. Результатом работы является число 2, записанное в память М .

Теперь рассмотрим следующую выше в дереве разбора функцию

/о = (функ х, знач у) знач : (X) еуа1Х. Она имеет два аргумента х и у, имеющие тип функ и знач. В теле

функции используется лишь один формальный параметр, поэтому параметр у в процессе вычислений участвовать не будет. В теле функции используется операция еуа1, необходимая для вычисления полученной в качестве аргумента суперпозиции. Во время ее выполнения функции /[. /-. /1- произведут обращение к памяти и в зависимости от полученного значения, в описание схемы будет добавлен узел из логических элементов И,ИЛИ,НЕ.

Таким образом, получим результат:

Р(ИЛИ(И(НЕ(а),И(НЕф),НЕ(с))),И(НЕ(а),Иф,с)))),

8(ИЛИ(Иф,НЕ(с)),И(а,с))) Данному описанию соответствует следующая комбинационная схема:

В. В. Чгшитов, П. Б. Могнонов. Реализация булевых функций комбинационными схемами с помощью функциональных грамматик

Рис. 3. Результат синтеза комбинационной схемы

Заключение

Предложенная функциональная грамматика осуществляет многоблочную последовательную разделительную декомпозицию булевых функций. Реализован механизм, позволяющий строить комбинационные схемы на различных базисах логических элементов. Данный механизм демонстрирует порождающую способность функциональной грамматики.

При усовершенствовании системы путем расширения списка базисов элементов, введением системы их преобразования, дополнительных функций можно реализовать как традиционные методы декомпозиции, так и решать задачи синтеза схем с учетом различных ограничений на структуру для программируемых логических интегральных схем. С использованием памяти функциональной грамматики данные ограничения могут управлять процессом вычисления суперпозиции функций.

Литература

1. Глушков В. М. Синтез цифровых автоматов. М.: Физматгиз, 1962. 476 с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. Майоров С. А., Новиков Г. П., Немолочнов О. Ф. Проектирование цифровых вычислительных машин: учеб. пособие для вузов. М.: Высшая школа, 1972. 344 с.

3. Perkowski М. А., Grygiel S. А Survey of Literature on Functional Decomposition. Version IV (Technical Report). Portland, USA: Portland State University, Department of Electrical Engineering, 1995. 188 p.

4. Соловьев В. В. Синтез комбинационных и последовательных схем на программируемых логических устройствах // Управляющие системы и машины. 1997. № 1/3. С. 66-71.

5. Басалин П. Д., Белокрылов П. Ю., Згурский Д. С. Синтез схем произвольной комбинационной логики в нейросетевом базисе с применением метода имитации отжига // Вестник ННГУ. 2008. № 5. С. 126-130.

6. Кравченко В. А., Могнонов П. Б., Чнмнтов Д. Н. Представление знаний в функциональных грамматиках // Вестник СибГАУ. 2011. № 5 (38). С. 55-61.

7. Кравченко В. А., Ширапов Д. Ш. Построение баз знаний для решения задач методом функциональных грамматик // Вестник БГУ. 2015. № 9. С. 96-102.

8. Тузов В.А. Математическая модель языка. Л.: Изд-во Ленингр. унта, 1984. 176 с.

REALIZATION OF BOOLEAN FUNCTIONS BY COMBINATION CIRCUITS USING FUNCTIONAL GRAMMARS

Vasiliy V. Chimitov Research Assistant,

East-Siberian State University of Technology and Management 40v Kluchevskaya, Ulan-Ude 670033, Russia E-mail: [email protected]

Petr B. Mognonov Cand. Sci., A/Prof.,

East-Siberian State University of Technology and Management 40v Kluchevskaya, Ulan-Ude 670033, Russia E-mail: [email protected]

In the article, we propose a method for decomposing Boolean functions using functional grammars. The main problems of constructing functional grammars for implementation of Boolean functions by combinational circuits are considered. The generative ability of functional grammars is demonstrated by the example of combination circuit synthesis. Keywords: grammar; combination circuits; decomposition of Boolean functions.

i Надоели баннеры? Вы всегда можете отключить рекламу.