ДЕКОМПОЗИЦИЯ НА ОСНОВЕ УНИВЕРСАЛЬНЫХ СИСТЕМ ФУНКЦИЙ И ЕЁ ПРИМЕНЕНИЕ ПРИ ЛОГИЧЕСКОМ И ТОПОЛОГИЧЕСКОМ СИНТЕЗЕ СБИС С.А. Ложкин, А.Н. Готманов, Е.А. Попов, А.Е. Шиганов Московский государственный университет им. М.В. Ломоносова – факультет вычислительной математики и кибернетики, [email protected]. Традиционные методы декомпозиции и логического синтеза, разработанные в теории сложности схем (метод Шеннона [1], метод каскадов [2], метод О.Б. Лупанова [3] и др.), используют, как правило, разложение реализуемых булевых функций (БФ) по одной или нескольким булевым переменным (БП) и последующий синтез схем в стандартном базисе {&, V, ¬} на основе этих разложений. Указанные методы позволили установить сначала порядок роста вида 2 n/n (метод Шеннона), а затем и асимптотику 2n/n (метод О.Б. Лупанова) для так называемой функции Шеннона L(n), которая равна сложности самой сложной БФ от n БП, n=1,2,… .Данные методы и, в частности, различные модификации метода каскадов широко используются в конкретных алгоритмах декомпозиции и логического синтеза цифровых схем. В [4,5] была предложена и развита концепция универсальной относительно заданной “внешней” БФ φ(y1,…,yt) системы БФ, то есть такой системы БФ G от БП x1,…xn, которая позволяет любую БФ f(x1,…,xn) представить в виде f= φ(g1,…,gt), где gi входит в G при всех i, i=1,…,t. Там же были разработаны методы построения “компактных” универсальных систем БФ для различных “внешних” БФ φ и методы разложения по ним произвольных БФ. В теоретическом плане новые методы позволили получить существенно более точные оценки функции Шеннона L(n) для различных классов схем. В настоящей работе методы декомпозиции на основе универсальных систем БФ применяются для разработки методов логического синтеза СБИС. Эти методы оказались эффективными при декомпозиции и синтезе схем для БФ от n, n>5, БП. Так, при семи и более БП эти методы позволяют получать более “экономичные” схемы, чем метод каскадов [2] или методы [1,3]. Кроме того, новые методы дают возможность использовать в качестве внешней БФ разложения не только простейшие комбинации &, V, ¬, но и другие, по существу, произвольные БФ. Такая возможность может дать значительный эффект при синтезе схем на базе современных FPGA. Декомпозиция на основе универсальных систем БФ может сочетаться с другими методами декомпозиции для получения наилучших результатов. Так, разработанная и программно реализованная авторами комбинация метода универсальных систем БФ и метода каскадов позволила получить при реализации “случайных” БФ от 8 БП заметный (10-15 %) выигрыш в сложности синтезируемых схем по сравнению с алгоритмами логического синтеза системы SIS [6]. Предложенные методы допускают также модификации, ориентированные не столько на этап логического синтеза, сколько на последующие этапы размещения и трассировки СБИС. Рассмотрим сначала концепцию, которая лежит в основе предлагаемой авторами комбинации метода универсальных систем функций и метода каскадов. Проблема получения минимальных схемных представлений булевых функций является одной из наиболее вычислительно сложных задач. Теоретические исследования в данной области не позволяют получить эффективных точных алгоритмов решения. Более того, построение таких алгоритмов является, по-видимому, принципиально невозможным. Как следствие, при построении реальных систем логического синтеза предпочтение отдается методам эвристического характера. В качестве примера можно привести широко используемые алгоритмы последовательных эквивалентных преобразований схем. При этом в качестве начального приближения, как правило, используется тривиальная схема, моделирующая, например, ДНФ функции. Поведение таких алгоритмов, а также структура схемы на выходе оказываются одинаково непредсказуемы. Получение каких-либо надежных оценок эффективности также является невозможным. Неочевидное и слабо предсказуемое поведение используемых алгоритмов логического синтеза может также стать серьезным препятствием на пути построения эффективных систем сквозного синтеза СБИС. Большинство современных систем автоматизированного проектирования СБИС обладают трехуровневой структурой, соответствующей разделению общей задачи синтеза на три этапа: логический синтез (logic synthesis), привязка к библиотеке (mapping, мэппинг), размещение и трассировка соединений (placement and routing). Решение общей задачи при этом получается, как результат последовательного и независимого решения соответствующих подзадач на каждом из трех этапов. Однако, современный опыт построения и использования систем автоматизированного проектирования СБИС убедительно свидетельствует о том, что подобное “естественное” разбиение общей задачи синтеза во многих случаях не является адекватным. Так, например, близкое к 66 оптимальному решение задачи логического синтеза может оказаться (и, зачастую, оказывается) неприемлемым с точки зрения последующих этапов привязки, размещения и трассировки. При этом ухудшение сложностных характеристик, обусловленное использованием “близорукой” оптимизации на каждом из этапов может быть весьма значительным. В этой ситуации, авторам представляется разумным использовать на каждом из этапов менее изощренные алгоритмы решения, допускающие, однако, эффективное согласование. Из всех рассмотренных оптимизационных подзадач (логический синтез, мэппинг, размещение и трассировка) наиболее сложной, без сомнения, является задача логического синтеза. Именно в процессе ее решения происходит преобразование исходной системы БФ в схемное представление. Последующая обработка в основном связана с преобразованием уже полученного схемного представления в форму пригодную для реализации на кристалле. При этом качество окончательного решения задачи синтеза в основном зависит от структуры схемы на выходе алгоритма логического синтеза. По мнению авторов, задача эффективного согласования этапа логического синтеза с последующими этапами имеет решающий характер. Однако, существующие и широко применяемые алгоритмы логического синтеза, как правило, не допускают удовлетворительного решения указанной проблемы. Последнее обусловлено, прежде всего, сложным, эвристическим характером используемых методов. Математическая теория дискретных управляющих систем содержит множество методов синтеза принципиально противоположного характера, основанных на априорном выборе общей структуры получаемой схемы. Примером здесь может служить известный метод каскадов. Интерес представляют также т.н. асимптотически наилучшие методы синтеза, решающие задачу оптимизации схемной сложности в наихудшем случае при достаточно большом числе БП. Для многих известных классов схем в теории дискретных управляющих систем получены методы позволяющие для произвольной БФ f от n БП построить схему сложности не превосходящей при больших n значения функции Шеннона. Проблема здесь состоит в том, что сложность применяемых на практике булевых функций существенно меньше значения функции Шеннона. Для таких простых функций асимптотические методы синтеза, как правило, дают неудовлетворительный результат. Однако, асимптотическая теория синтеза содержит ряд идей и концепций, которые могут быть адаптированы для решения практических задач. Одной из таких концепций является понятие универсальных множеств функций. Во многих случаях задача синтеза схемы для БФ f(x1,...,xn) допускает эффективное сведение к задаче реализации системы БФ от меньшего числа переменных. Последние, как правило, являются т.н. остаточными функциями или, иначе, подфункциями функции f, т.е. функциями, которые могут быть получены из f подстановками констант вместо БП. Примером такого сведения может служить известное разложение функции по нескольким переменным: f x1 ,, xn f (0 , ,0, xk 1 ,, xn ) x1 xk f (1 , ,1, xk 1 ,, xn ) x1 xk k k Отметим только, что последнее представление допускает достаточно экономные схемные реализации (например, посредством метода каскадов). Предположим, что задача синтеза БФ f от n БП сводится к реализации системы БФ F от k, k < n БП. Если число различных БФ в F близко либо к числу всех функций от k переменных, либо к 1, то ситуация не требует дальнейших исследований. В первом случае уже при k > 3 всякая схемная реализация системы F будет иметь сложность, неприемлемую для большинства приложений. При k = 2,3 может быть использован т.н. универсальный многополюсник, для которого во многих классах схем известны реализации близкие к оптимальным. Во втором случае могут эффективно применяться какие-либо методы индивидуального синтеза. Однако, наиболее интересным и распространенным является случай, когда F содержит хотя и значительное количество функций, но существенно меньшее, чем число всех БФ от k БП. Одним из эффективных методов реализации таких систем являются универсальные множества функций. Зададимся некоторой БФ (y1,...,yp), существенно зависящей от всех своих переменных. Как упоминалось ранее, наличие -универсальной системы функций G позволяет всякую БФ h(x1,...,xk) из F реализовать суперпозицией вида (g1,...,gp), где функции gi принадлежат G. Основной выигрыш при этом достигается засчет того, что мощность множества G может быть много меньше мощности множества F. Тогда для реализации системы БФ F можно сначала построить подсхему, реализующуюю систему БФ G. После этого каждая БФ из F может быть реализована добавлением в схему ровно одного элемента . Заметим также, что в предлагаемой схеме ветвящимися по-существу являются только лишь выходы подсхемы, реализующей универсальную систему БФ G. Таким образом, помимо существенного выигрыша в комбинационной сложности схемы, этот подход позволяет также контролировать ветвление выходов элементов проектируемой схемы. Для простоты, при дальнейших рассмотрениях ограничимся классами схем типа схем из функциональных элементов. Использование излагаемого подхода, вообще говоря, возможно и для других классов схем (например, проводящего типа), однако сопряжено с рядом специфических проблем. 67 Идея универсальности множеств является достаточно общей и может быть адаптирована для использования в рамках различных существующих методов синтеза. Так, например, авторами был рассмотрен метод, комбинирующий каскадное разложение функции с использованием одной универсальной системы функций от 4-х переменных. Универсальные множества дают способ эффективной реализации систем булевых функций значительного размера. Алгоритмы, основанные на использовании универсальных множеств, просты в реализации и нетребовательны к машинному времени. F G Рис. 1. К понятию универсальности Схема для универсальной системы функций может вычисляться заранее, существенно повышая эффективность и не требуя дополнительных ресурсов во время выполнения. В целом, универсальные множества функций являются примером достаточно мощного прямого (в противоположность итерационным) метода синтеза. Таким образом, в рамках предлагаемого метода синтезируемая схема состоит из двух основных подсхем С и F, где подсхема С синтезируется по методу каскадов и представляет собой “сжатый” вариант разложения исходной функции по некоторым своим БП. Метод каскадов используется для сведения задачи синтеза исходной БФ к задаче синтеза множества ее подфункций от небольшого числа переменных (порядка 5). Указанное множество F реализуется с применением универсальной системы функций в рамках подсхемы F. Решение исходной задачи синтеза является результатом суперпозиции двух построенных подсхем. В соответствии с изложенным подходом, авторами была разработана программная реализация описанного метода синтеза в виде двух модулей: оптимизационного (O) и синтезного (S). Приведем краткое описание их структуры. Известно, что эффективность метода каскадов существенно зависит от выбора порядка переменных в разложении. Известно также, что задача отыскания оптимального порядка является NP-трудной. В рамках проекта для оптимизации каскадной части схемы использовался следующий подход. Зафиксируем некоторое малое натуральное число k (в рамках проекта в пределах от 3 до 7). Простым перебором определим множество Y, состоящее из k переменных функции таких, что число остаточных функций от этих переменных минимально. Далее будем применять простой алгоритм “жадной” оптимизации. На каждом шаге будем выбирать ту переменную, которая обеспечивает наименьшее число остаточных функций данного слоя. Выбор такой структуры алгоритма обусловлен соображениями о типичной структуре каскадного представления булевой функции. В частности, характерной ситуацией является наличие экспоненциально сложной нижней части схемы в сочетании с верхней частью приемлемой сложности. Для покрытия такого рода случаев при построении нижней части схемы используется полный переборный алгоритм. Это в самом начале позволяет отсечь целое семейство распространенных “плохих”' реализаций функции. Описанный алгоритм составляет первый программный модуль O, входящий в состав проекта. Входом для модуля O является система булевых функций, заданных системой интервалов в формате pla. На выходе формируется некоторое упорядочение булевских переменных для данной системы функций. Найденный порядок используется для построения “верхней” части С схемы . “Нижняя” часть F схемы , размер которой определяется выбором числа k на этапе оптимизации, конструируется отдельно. Для решения данной подзадачи предусмотрены две возможные стратегии: (1) полное завершение каскадной реализации схемы; (2) использование -универсального множества; Рассмотрим, сначала, более подробно задачу синтеза, возникающую для схемы F. К этому моменту верхняя каскадная часть С уже построена и для ее корректного функционирования необходимо обеспечить реализацию тех остаточных функций исходной системы, которые еще не реализованы в схеме С, но, в некотором смысле, используются для её построения. Обозначим эту систему функций через F. Если представлять схему С в виде части упорядоченной BDD [5] (усеченной BDD), то множество F соответствует вершинам BDD, из которых не исходит ни одной дуги. Для реализации системы F может быть использована любая из стратегий (1)-(2). Отметим, что вариант (1) в рамках проекта реализуется без каких-либо дополнительных усилий. Для этого построение BDD всегда происходит до конца, а затем осуществляется ее усечение с возможным 68 последующим применение стратегии (2). Рассмотрим подробнее алгоритмы, связанные с применением последней стратегии. В рамках проекта используется один конкретный случай -универсального множества для функции от четырех переменных: ( y1 , y 2 , y3 , y 4 ) y1 y 2 y3 y 4 ля данной функции удается построить множество функций G, универсальное в классе всех функций от 4-х переменных, и состоящее из 46 элементов (см. рис. 2), что является существенным упрощением стандартной универсальной системы. Сложность реализации данного множества в базисе &,, составляет порядка 140 элементов, что существенно проще, чем реализация универсального многополюсника (65532 элемента). Отметим, однако, что при использовании универсального множества для реализации всякой новой функции необходим новый функциональный элемент . Эффективность использования множества G можно повысить, сделав его универсальных в классе произвольной функции всех функций вида f ( x1 , x 2 , x3 , x 4 ) x5 , 0,1 . Реализация f ( x1 , x2 , x3 , x4 , x5 ) от 5-ти переменных происходит следующим образом. Разложим f по переменной x5. Каждая из компонент разложения реализуется с применением универсального множества G, а дизъюнкция указанных компонент дает исходную функцию f. Рис. 2. Структура универсального множества G Определенный интерес представляет сравнение сложностных характеристик описанного выше метода с уже существующими методами эвристического характера. Простое сравнение результатов на тестовых БФ показало 10-15% улучшение сложности по сравнению с использованием стандартных алгоритмов системы SIS (espresso, algerbraic). Так, например, была рассмотрена разреженнная система из 90 БФ от 80 БП. При этом алгоритмами системы SIS было получено схемное представление со сложностью 1500 литералов, в то время как алгоритм с применением метода каскадов и универсального множества давал результат 1150 литералов. xi6 xi1 xi 2 xi3 G xi 4 xi n C xi5 F Рис. 3. Структура схемы на выходе алгоритма 69 f Предложенный алгоритм синтеза исключительно прост и может быть положен в основу алгоритма сквозного синтеза со специализированными алгоритмами мэппинга, размещения и трассировки. Прежде всего, отметим, что единственной степенью свободы схемы, синтезируемой алгоритмом, является порядок переменных в каскадной части. Выбор конкретного порядка можно подчинить значению некоторой совокупности функционалов, достаточно хорошо аппроксимирующих такие топологические характеристики схемы, как длина соединений, максимальная кратность ветвления и т.п. Верхняя часть схемы С, как правило, имеет “кусочнодревовидную” структуру. Для таких схем существуют эффективные алгоритмы вложения в плоские решетки. В силу тех же самых соображений возможно применение эффективных специализированных алгоритмов мэппинга. Изложенный подход является лишь одним шагом на пути создания реальных алгоритмов сквозного проектирования СБИС. Авторы, однако, уверены, что упрощение используемых методов оптимизации с одновременной интеграцией всех этапов общей задачи синтеза может решить многие существующие проблемы в области построения больших интегральных схем. Во многих случаях качество топологической реализации логической схемы зависит от количества ветвящихся элементов и от их расположения на схеме. Тогда в процессе синтеза схем одним из наиболее важных этапов становится размещение ветвящихся узлов схемы. Так как функции, которые вычисляются в этих узлах, используются в схеме несколько раз, то для правильного функционирования схемы потребуется усиление выходного сигнала ветвящихся элементов. По сравнению с обычными элементами, усилители имеют бóльшие размеры, и, следовательно, в зависимости от соотношения между числом вершин без ветвления выходного сигнала и числом ветвящихся вершин в схеме, площадь схемы может значительно варьироваться при различных значениях этого соотношения. Заметим, что в таких классических моделях для представления булевых функций, как схемы из функциональных элементов (СФЭ) или формулы, никак не отражен тот факт, что практическая реализация ветвящихся элементов существенно сложнее реализации прочих узлов схемы. В этом смысле, например, модель клеточных схем [7], в которой площадь коммуникационных элементов ветвления сравнима с размерами функциональных элементов, является более интересной с прикладной точки зрения. Однако, в связи с тем, что при синтезе оптимальных клеточных схем, по сути, процесс логического синтеза сочетается с размещением элементов и трассировкой соединений между ними, эффективное использование модели клеточных схем представляется перспективной задачей, которая, видимо, потребует пересмотра многих концепций синтеза СБИС. Рассмотрим реализацию БФ схемами из функциональных элементов в базисе Б={&,,¬}. Так как площадь оптимальной по числу узлов схемной реализации функции определяются, как правило, количеством ветвящихся элементов, то в большинстве случаев при понижении этого количества, площадь соответствующей схемы уменьшается несмотря на то, что общее число функциональных элементов (ФЭ) возрастает. Для получения схемы, оптимальной по площади при использовании определенных алгоритмов размещения и трассировки, необходимо знать зависимость числа ФЭ в асимптотически оптимальной схеме от числа ветвящихся вершин. Этот вопрос исследуется в работе [8], результаты которой приводятся ниже. Для того, чтобы иметь возможность реализовать произвольную функцию с помощью СФЭ необходимо, чтобы все входные вершины схемы можно было ветвить [8]. Это утверждение, по видимому, переносится на многие другие классы БФ, которые используются в приложениях. Предельным случаем класса СФЭ с минимальным числом ветвящихся вершин является класс формул, однако, использование этого класса в процессе логического синтеза СБИС во многих случаях не является эффективным. Поэтому будем исследовать класс U тех СФЭ, в которых ветвятся все входные, а также некоторое количество внутренних вершин. Будем считать, что если схема имеет n входов, то общее количество ветвящихся вершин не превосходит t, где t=t(n)>n. Для СФЭ через L() обозначим количество функциональных элементов в , а через D() – максимальное число элементов на ориентированном пути из входа в выход схемы. Для БФ f введем сложность (соответственно, глубину) её реализации L(f,t)=min L() (соответственно, D(f,t)=min D()) где минимум берется по всем СФЭ из рассматриваемого класса U, реализующим f. Функция L(n,t) = max L(f,t) (соответственно, D(n,t) = max D(f,t)), где максимум берется по всем функциям f от n БП, называется функцией Шеннона для сложности реализации (соответственно, глубины реализации) БФ. Функция L(f,t) характеризует минимальное количество ФЭ в схеме из класса U, достаточное для реализации произвольной функции от n переменных. Утверждение 1 [8]. Если t(n) ≥ n + n/g(n), где log g(n) = o(loglog n), и t(n) по порядку не превосходит 2n/n3, то справедливы следующие равенства: 2n L(n,t(n))= (1 + o(1)), log t(n) D(n,t(n))= n + log log log t(n) + O(1). 70 x1 … xn-m xn-m+1 … xn G … μ Рис. 4. Структура асимптотически оптимальной схемы В доказательстве утверждения используется разложение произвольной функции f из класса всех БФ от n БП по ее (n-m) переменным, где m по порядку равно loglog t(n), а каждая подфункция, которая возникает в этом разложении, реализуется с использованием некоторого фиксированного универсального множества G, состоящего из функций, зависящих от m переменных. Структура асимптотически оптимальной схемы приведена на рис. 4. Схема μ отвечает за реализацию мультиплексорной функции от (n-m) адресных переменных. Входные вершины x1,…,xn, а также выходные вершины подсхемы G, которая отвечает за реализацию функций из G, ветвятся. Заметим, что при подходящей реализации подсхемы G, конструкция схемы на рис. 4 будет более простой, и, следовательно, и более применимой на практике, по сравнению со структурой формул, которые используются в известных оптимальных методах синтеза. Утверждение 1 легко переносится на случай некоторого специального класса БФ Q, отличного от класса всех функций, если для этого класса справедливо, что подфункции, которые получаются при разложении произвольной функции f из класса Q, принадлежат этому классу. Так как в построениях, используемых в утверждении 1, явно указываются ветвящиеся вершины, то топологический синтез схемы, полученной для произвольной функции, представляет собой декомпозицию, состоящую из двух этапов. Первый этап состоит в размещении на схеме ветвящихся узлов с учетом их количества, а также физических параметров усилителей. Все остальные вершины схемы связаны некоторыми деревьями, поэтому вторым шагом при синтезе схемы является укладка этих деревьев и трассировка соединений между вершинами. Изложенные выше соображения предполагается включить в разрабатываемую систему синтеза СБИС. ЛИТЕРАТУРА 1. 2. 3. 4. 5. 6. 7. 8. Shannon C.E. The synthesis of two-terminal switching circuits // Bell Syst. Techn. J. – 1949. – V.28. № 1. – P. 59-98. Поваров Г.Н. Метод синтеза вычислительных и управляющих контактных схем // Автоматика и телемеханика. – 1957. – Т. 18. – № 2. – С. 145-162. Лупанов О.Б. Об одном методе синтеза схем // Изв. вузов. Радиофизика. – 1958. – № 1. – С. 120140. Ложкин С.А. Оценки высокой степени точности для сложности управляющих систем из некоторых классов //Математические вопросы кибернетики. Вып. 6. – М.:Наука. – 1996. – С. 189214. Ложкин С.А. Лекции по основам кибернетики. – М.:Издательский отдел ф-та ВМиК МГУ. – 2004. – 256 с. http://www-cad.eecs.berkeley.edu/software.html. Hromkovic J., Lozhkin S.A., Rybko A.I., Sapozenko A.A., Skalikova N.A. Lower bounds on the area complexity of Boolean circuits // Theoretical Computer Science 97. – 1992. – P. 285-300. Шиганов А.Е. Оценки высокой степени точности для сложности реализации функций из некоторых классов схемами из функциональных элементов с ограничением на ширину ветвления // Курсовая работа. – факультет ВМиК МГУ им. М.В. Ломоносова. – 2005. 71