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


1. Введение

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

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

min min P,
SЭs W

где S - множество возможных структурных реализаций схемы, W=(W1,...,Wn) - размеры транзисторов схемы. При этом должен быть выполнен ряд ограничений: ограничение на максимальную задержку схемы, ограничения на размеры транзисторов (минимальные размеры, дискретность изменения размеров) и, возможно, некоторые другие ограничения. Существуют различные модификации указанной задачи, о некоторых их них речь пойдет ниже. Главные вопросы, возникающие в связи с приведенной задачей, таковы:

  • Как рассчитать мощность, потребляемую схемой (достаточно точно и достаточно быстро, поскольку такой расчет должен повторяться внутри оптимизационного цикла)?
  • Как описать пространство возможных структурных реализаций схемы и двигаться по этому пространству?
  • Мы будем рассматривать главным образом комбинационные схемы. Что касается последовательностных схем, то рассматривая такую схему как конечный автомат (рис.1), мы видим, что требование работоспособности схемы на заданной тактовой частоте приводит к ограничению на максимальную задержку каждого комбинационного пути. Поэтому задачу минимизации мощности для такой схемы можно, в некотором приближении, решать отдельно для каждой комбинационной подсхемы (более сложные формулировки задачи минимизации мощности для последовательностных схем в данной работе не рассматриваются).

    Picture_1

    Рисунок 1.
    Модель последовательностной схемы в виде конечного автомата.

    Данная работа имеет следующую структуру. В разделе 2 описаны методы расчета мощности в КМОП-схемах, прежде всего ориентированные на использование в оптимизационной задаче. Раздел 3 посвящен методам решения задачи параметрической оптимизации мощности. Наконец, в разделе 4 мы рассматриваем задачу структурной оптимизации низкомощных КМОП-схем.

    2. Методы расчета мощности в цифровых КМОП-схемах

    Существуют два основных подхода к расчету потребляемой мощности в КМОП-схемах.

    В первом из них, вероятностном, конкретные времена переключений входов схемы не рассматриваются. Учитываются только средние частоты переключений входов. В этом случае мощность оценивается только исходя из средних частот переключения выходов логических вентилей, переключения внутренних узлов вентилей в расчет не берутся. Этот подход был использован на этапе логического синтеза для оптимизации задержек [1] и мощности [2, 3] КМОП-схем.

    Преимуществами вероятностного подхода являются независимость от конкретных тестовых последовательностей и быстрое время счета. В ряде работ [4-6] развивались более сложные версии вероятностных алгоритмов, учитывающие глитчи (паразитные переключения узлов схемы) и корреляции между сигналами в схеме. Однако при таких усложнениях данный метод теряет свою производительность.

    Второй подход к расчету мощности связан с использованием того или иного вида моделирования схемы для конкретной тестовой последовательности входных сигналов. Этот подход в целом значительно более точен, чем вероятностный, однако требует входной тестовой последовательности, либо задаваемой разработчиками схемы, либо генерируемой автоматически (например, с использованием генератора случайных чисел [7]).

    Безусловно, детальное электрическое моделирование (с помощью программ типа SPICE), равно как и его упрощенные варианты [8,9], не могут использоваться для оперативного расчета мощности в достаточно больших схемах. Детальное электрическое моделирование может успешно использоваться для генерации моделей мощности и задержек для библиотеки стандартных ячеек, с целью последующего применения этих моделей при оптимизации схем, построенных на основе этой библиотеки [10].

    Моделирование на уровне логических вентилей может использоваться для оперативного расчета мощности в задачах оптимизации, ввиду своей высокой производительности, однако точность его весьма невысока. Трудность оперативного и одновременно точного расчета мощности заключается в том, что во многих комбинационных схемах мощность, рассеиваемая за счет глитчей, достигает 20-70% полной мощности [11]. Точность же расчета глитчевой мощности крайне чувствительна к точности расчета задержек в схеме [12].

    Оптимальное сочетание точности и быстроты счета может быть, на наш взгляд, достигнуто при использовании методов переключательного моделирования для оценки мощности КМОП-схем [13-15]. Очень эффективная реализация алгоритма переключательного моделирования для расчета мощности, основанная на использовании SP-BDD модели КМОП-схемы (об этой модели см. подробнее в разделе 4), описана в работе [16]. Типичные результаты тестирования этого алгоритма показаны на рис. 2 в сравнении с одной из наиболее популярных программ расчета мощности (PowerMill фирмы EPIC; указанная программа также использует переключательное моделирование). Эксперименты проводились на рабочей станции HP с использованием случайных тестовых последовательностей длиной 2000. Разница в значениях мощности, даваемых обоими алгоритмами, не превышает нескольких процентов, однако алгоритм [16] работает на 1-2 порядка быстрее, что делает его крайне удобным инструментом для расчета мощности, в том числе в задачах оптимизации КМОП-схем.

    Picture_2

    Рисунок 2.
    Производительность алгоритма в сравнении с программой PowerMill.

    В заключение данного раздела отметим, что возможен также комбинированный подход [17], при котором моделируется лишь часть схемы, другая же часть, включающая слабо коррелированные входы схемы, обрабатывается с помощью вероятностной модели (что повышает производительность моделирования).

    3. Параметрическая оптимизация

    Параметрическая оптимизация, или нахождение оптимальных размеров транзисторов КМОП-схемы, - это давно и широко используемый вид оптимизации на схемном уровне. Существует несколько вариантов задачи параметрической оптимизации, различающихся типом оптимизируемой схемы.

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

    Б. Оптимизация схемы, разработанной на основе библиотеки параметризованных ячеек. Каждая параметризованная ячейка содержит группы (линейки) транзисторов одинакового размера, для которого ищется оптимальное значение.

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

    Один из наиболее простых и вместе с тем надежных подходов к задаче параметрической оптимизации типа А реализован в известном алгоритме TILOS [18]. В этой работе показано, что при некоторых упрощающих предположениях задержка, мощность и площадь КМОП-схемы являются выпуклыми функциями размеров транзисторов (функциями специального вида - так называемыми позиномами). Выпуклость целевой функции и ограничений гарантирует то, что локальный минимум в задаче оптимизации является одновременно и глобальным минимумом. Это позволяет построить простой и надежный алгоритм оптимизации, основанный на итерационном нахождении транзистора, к размеру которого целевая функция и ограничения наиболее чувствительны на данном шаге, и целенаправленном изменении этого размера.

    Дальнейшее развитие этого подхода, связанное с использованием более реалистических моделей, а также методов выпуклой оптимизации, можно найти в работе [19]. Известны и другие работы, использующие аналитические модели для мощности и задержек, а также непрерывное изменение размеров транзисторов [20, 21].

    Задача параметрической оптимизации типа Б (для схем, разработанных на основе библиотек параметризованных ячеек) была исследована в работе [22]. Метод проектирования схем на основе библиотек параметризованных ячеек имеет те же преимущества, что и проектирование на стандартных ячейках (короткое время проектирования, высокая продуктивность синтеза и верификации топологии). В то же время этот метод обладает гибкостью метода прямой компиляции транзисторной схемы в топологию [23-25]. В работе [22] показано, что параметрическая оптимизация мощности КМОП-схем на параметризованных ячейках по своим результатам лишь незначительно уступает оптимизации схем с индивидуальными размерами транзисторов. С другой стороны, время решения задачи для схем на параметризованных ячейках в несколько раз меньше (за счет снижения размерности задачи).

    Для задачи типа В (оптимизация схемы на стандартных ячейках) также известен ряд работ, использующих непрерывную аппроксимацию для указанной дискретной задачи [26-28]. В работе [29] данная задача рассматривается с использованием уточненной модели задержки схемы, учитывающей только истинные пути сигнала. Используемый алгоритм устранения ложных путей основан на применении ADD (Algebraic Decision Diagram, модификация BDD - диаграммы двоичных решений, см. также [30]).

    Наиболее эффективный, на наш взгляд, подход к задаче типа В предложен в работе [31], где отмечаются общие недостатки традиционных подходов:

  • используемые упрощенные модели задержек и мощности, как правило, нереалистичны, т.е. имеют недостаточную точность (это особенно недопустимо для моделей задержки);
  • многие методы предполагают непрерывность решаемой задачи, а затем проектируют полученное решение на ближайшую точку дискретного пространства состояний схемы; полученное таким образом решение часто нарушает ограничения задачи;
  • некоторые методы исходят из произвольных предположений о критерии оптимальности, например, минимизируя взвешенное произведение мощности и задержки, тогда как в действительности исходная задача - есть задача минимизации мощности при ограничении на задержку;
  • некоторые методы предполагают выпуклость целевой функции и ограничений, либо наличие единственного локального минимума, тогда как эти предположения становятся неверными при использовании более точных моделей.
  • В работе [31] используются достаточно точные табличные модели задержек библиотечных вентилей, полученные с помощью детального электрического моделирования. При этом для мощности может использоваться более грубая модель, например определение переключательной активности узлов схемы с помощью логического моделирования с нулевой задержкой. Разработан оригинальный алгоритм минимизации мощности, основанный на комбинаторной оптимизации и использующий шаги с одновременным изменением большого числа вентилей. Приведенные экспериментальные результаты показывают, что данный алгоритм приводит к заметному снижению мощности (до 30% и более при достаточно богатой библиотеке вентилей), в том числе для больших схем и за разумное время.

    4. Структурная оптимизация

    Структурная оптимизация низкомощных КМОП-схем - это новое направление в оптимизации низкомощных схем, которое начало развиваться в последние 2-3 года. До сих пор оптимизация структуры низкомощных цифровых схем была уделом логического синтеза и не проводилась на уровне транзисторной схемы.

    Оптимизация низкомощной цифровой СБИС может проводиться на различных уровнях ее описания, начиная с системного и архитектурного уровней (верх иерархии) и кончая логическим и схемным уровнями (низ иерархии) [32]. Оптимизация на логическом уровне (логический синтез) обычно включает две стадии. Технологически независимая стадия содержит манипуляции с булевыми функциями, которые могут быть представлены в форме логических уравнений, BDD, сети простых логических вентилей, и т. д. [2, 33, 34]. Технологически зависимая стадия осуществляет отображение булевых функций в библиотеку оптимизированных логических вентилей [2, 3].

    Оптимизация на схемном уровне использует значительно более точные модели мощности, площади и задержки, однако при этом поиск оптимума производится в довольно бедном пространстве состояний схемы, поскольку к этому виду оптимизации по традиции относятся лишь параметрическая оптимизация (см. выше) и переупорядочение транзисторов (до последнего времени применявшееся, впрочем, лишь для оптимизации быстродействия схем [35]).

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

    На сегодняшний день имеется лишь несколько работ, посвященных структурной оптимизации низкомощных схем на схемном уровне. Простейшим видом такой оптимизации следует считать проектирование оптимальных буферов [36,37], поскольку при этом меняются не только размеры транзисторов, но и структура этих буферов. В этой задаче используются весьма точные аналитические модели.

    Работы [38, 39] используют переупорядочение транзисторов в pull-up/pull-down цепях КМОП-вентилей как инструмент оптимизации низкомощных схем. Показано, что переупорядочение транзисторов приводит к заметному снижению мощности (в среднем на 10-15%) без увеличения задержки, либо с незначительным ее увеличением.

    Примером структурной оптимизации, использующей более глубокие преобразования схемы, является работа [40]. В этой работе описан алгоритм, использующий структурные преобразования с заменой некоторых сигналов в схеме эквивалентными с учетом несущественных комбинаций сигналов на входах вентилей (don't cares). Пример такого преобразования показан на рис.3. Данный алгоритм способен приводить к значительному снижению мощности, потребляемой схемой (до 26%).

    Picture_3

    Рисунок 3.
    Пример преобразования схемы, используемого в алгоритме:
    А - исходная схема, В - преобразованная схема.

    Очень эффективный алгоритм структурной оптимизации низкомощных КМОП-схем предложен в работе [41]. Этот алгоритм использует широкий набор структурных преобразований схемы и основан на оригинальном SP-BDD представлении. Поскольку это представление, впервые введенное в работах [38,42], является общей основой ряда алгоритмов структурной оптимизации [38,41] и быстрых моделей мощности и задержки для КМОП-схем [16], приведем краткое описание этого представления и его приложений.

    Под КМОП-вентилем мы понимаем здесь классический КМОП-вентиль, с последовательно-параллельными и логически комплементарными pull-up/pull-down цепями. Первоначально SP-BDD модель была разработана для представления булевой функции и электрической схемы последовательно-параллельной цепи (SP-цепи). Здесь мы предполагаем, что SP-цепь - это pull-up или pull-down цепь КМОП-вентиля.

    SP-цепь - это двухполюсная цепь, терминалы которой будем называть источником (терминал с постоянным потенциалом питания или земли) и выходом (терминал с переменным потенциалом). SP-цепь обычно определяется рекурсивно, с использованием операций последовательного и параллельного соединения двух SP-цепей. SP-цепь реализует булеву функцию. Если мы рассмотрим состояние каждого транзистора SP-цепи как независимую переменную (1 - проводит, 0 - не проводит), то булева функция имеет значение 1, если SP-цепь проводит, и значение 0 в противном случае.

    На множестве транзисторов SP-цепи существует частичный порядок. Пусть a, b - транзисторы SP-цепи. Будем говорить, что a

  • отношение "<" есть отношение частичного порядка;
  • электрическая схема SP-цепи полностью определяется указанным частичнным порядком.
  • Далее, мы можем естественным образом определить линейный порядок "<<", содержащий частичный порядок "<": если SP-цепь содержит SP-цепи X и Y, соединенные параллельно, то

    либо a<
    либо b<

    Если мы дополнительно потребуем транзитивность "<<", то легко показать, что "<<" - отношение линейного порядка.

    Используем теперь ROBDD (редуцированную упорядоченную BDD) [43] для представления булевой функции SP-цепи. Для заданной булевой функции и заданного порядка ее аргументов существует единственная ROBDD. Если в качестве порядка аргументов взять линейный порядок "<<", мы получим SP-BDD (это одно из возможных определений SP-BDD).

    Легко показать [38,42], что SP-BDD имеет минимальный размер среди всех ROBDD для булевой функции заданной SP-цепи. Поскольку SP-BDD содержит частичный порядок "<", она описывает также электрическую схему SP-цепи.

    SP-BDD для заданной SP-цепи не единственна, если последняя содержит параллельные ветви. Но если мы рассмотрим КМОП-вентиль, то существует единственный линейный порядок для pull-up цепи, являющийся в то же время линейным порядком для соответствующих транзисторов pull-down цепи. Следовательно, SP-BDD для pull-up цепи и для этого линейного порядка является каноническим представлением для КМОП-вентиля.

    Пример КМОП-вентиля и его SP-BDD дан на рис. 4.

    Picture_4

    Рисунок 4.
    КМОП-вентиль и его SP-BDD.

    Нетрудно увидеть, что каждая вершина SP-BDD соответствует входу вентиля и паре транзисторов (по одному из pull-up и pull-down цепи). Комбинационная КМОП-схема может быть представлена как упорядоченная сеть SP-BDD.

    SP-BDD модель КМОП-схем была использована в работе [16] для разработки быстрого алгоритма расчета мощности на основе переключательного моделирования (см. раздел 2). В работе [38] эта модель, как уже указывалось, была использована для построения алгоритма структурной оптимизации КМОП-схемы методом переупорядочения транзисторов.

    Алгоритм переупорядочения осуществляет в pupd-цепях (pull-up/pull-down цепях) последовательность элементарных перестановок. Все элементарные перестановки, возможные из текущего состояния pupd-цепи, упорядочены в силу упорядоченности SP-BDD. Поэтому выбор следующей возможной элементарной перестановки осуществляется простым способом.

    Трудно точно предсказать, как элементарная перестановка двух произвольных SP-цепей повлияет на мощность и задержки. Поэтому для определения этого влияния в данной версии алгоритма производится вычисление мощности и задержек до и после элементарной перестановки (или нескольких элементарных перестановок, производимых одновременно в различных вентилях). При этом используются быстрые алгоритмы расчета мощности и задержек, также основанные на SP-BDD модели.

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

    Мы приводим здесь типичные результаты тестирования алгоритма переупорядочения. Использованные тестовые схемы содержали pupd-цепи различного размера. Для каждой схемы оптимизация по размерам транзисторов, минимизирующая мощность при ограничениях на задержки, производилась дважды: до и после переупорядочения. Оба результата сравнивались между собой.

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

    Результаты тестирования приведены в таблице 1. Эти результаты показывают высокую эффективность алгоритма переупорядочения (средний выигрыш в мощности в результате переупорядочения составляет 13%, в некоторых случаях - значительно больше).

    Таблица 1.
    Результаты параметрической оптимизации до и после переупорядочения.

    Схема
    Исходная мощность
    Конечная мощность
    Уменьшение
    nand4
    15.9
    13.3
    17 %
    c17
    14.1
    13.8
    2 %
    mx
    41.4
    40.3
    3 %
    ao221h
    46.4
    43.3
    7 %
    ao221s
    46.1
    39.5
    14 %
    ao321h
    63.2
    51.8
    18 %
    ao321s
    69.5
    50.5
    27 %
    gate7
    55.7
    46.4
    17 %

    Надо отметить, что схемы AO221H и AO221S являются различными реализациями одной и той же булевой функции. То же справедливо для схем AO321H и AO321S. Это показывает, что использование в низкомощных схемах сложных КМОП-вентилей с инвертором на выходе является более предпочтительным, чем использование нескольких вентилей примерно равной сложности, реализующих ту же булеву функцию.

    Пример исходного и конечного (после переупорядочения) КМОП-вентиля показан на рис. 5.

    Picture_5

    Рисунок 5.
    Исходная схема (gate7) и результат переупорядочения.

    Как уже указывалось, SP-BDD модель легла также в основу эффективного алгоритма структурной оптимизации низкомощных КМОП-схем [41]. Этот алгоритм использует большое разнообразие структурных преобразований схемы, осуществляемых под управлением оригинальной процедуры моделируемого отжига. Алгоритм значительно улучшает параметры схем, предварительно синтезированных лучшими программами логического синтеза. Простой пример результата структурной оптимизации показан на рис. 6.

    Picture_6

    Рисунок 6.
    Исходная схема (c17) и результат структурной оптимизации низкомощной схемы, основанной на использовании SP-BDD модели.

    Результаты тестирования данного алгоритма на схемах большего размера приведены в таблице 2 [41].

    Таблица 2.
    Результаты структурной оптимизации низкомощных КМОП-схем.

    Benchmark Name
    Delay Constrain t (ns)
    Synopsis Result
    SP-BDD Resynthesis without delay control
    SP-BDD Resynthesis with delay control
    Num. of Trans.
    Power (nJ)
    Num. of Tran.s
    Power (nJ)
    CPU time (sec)
    Num. of Trans.
    Power (nJ)
    CPU time (sec)
    1) C1355
    27.46
    2308
    592.0
    1790
    454.9
    3383.2
    1904
    437.6
    499.84
    21.97
    629.1
    526.2
    463.4
    17.77
    698.3
    No Sol.
    502.4
    2) C1908
    40.42
    3482
    636.3
    1636
    428.1
    745.75
    1690
    426.2
    638.96
    32.34
    640.2
    445.9
    436.8
    24.86
    653.6
    480.4
    454.9
    23.13
    716.9
    No Sol.
    526.2
    3) cla
    22.97
    1008
    366.5
    690
    340.1
    199.60
    820
    348.9
    180.75
    18.38
    370.1
    353.8
    352.2
    14.70
    378.1
    384.5
    361.6
    11.76
    389.8
    481.4
    378.2
    10.21
    470.6
    No Sol.
    445.7
    4) cla1
    24.57
    956
    357.9
    728
    333.0
    301.79
    838
    342.6
    197.83
    19.66
    362.7
    347.9
    346.3
    15.73
    369.9
    377.5
    354.5
    12.58
    392.2
    494.9
    381.4
    10.70
    493.6
    No Sol.
    485.5
    5) cnt_0
    24.01
    352
    85.0
    246
    80.0
    81.15
    298
    79.5
    94.75
    19.21
    91.9
    92.2
    83.6
    15.37
    92.3
    116.8
    87.8
    12.30
    111.2
    173.6
    105.8
    11.86
    138.0
    No Sol.
    124.8
    6) cnt_1
    23.67
    372
    81.4
    272
    73.8
    102.16
    294
    72.5
    71.02
    18.94
    84.4
    79.1
    76.3
    15.15
    87.6
    91.6
    83.2
    12.12
    104.2
    133.6
    98.7
    11.49
    136.8
    No Sol.
    117.0

    5. Заключение

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


    Литература

    1. B.Kick. "Timing Correction in Logic Synthesis", Proc. of 1st Int. Conf. "VLSI and Computers", 1987, p. 299.

    2. C.Y.Tsui, M.Pedram, A.M.Despain. "Technology Decomposition and Mapping Targeting Low Power Dissipation", DAC-93, p. 68.

    3. V. Tiwari, P.Ashar, S.Malik. "Technology Mapping for Low Power", DAC-93, p. 74.

    4. R.Marculescu, D.Marculescu, M.Pedram. "Switching Activity Analysis Considering Spatiotemporal Correlations", ICCAD-94, p. 294.

    5. R.Marculescu, D.Marculescu, M.Pedram. "Efficient Power Estimation for Highly Correlated Input Streams", DAC-95, p. 628.

    6. H.Mechta, M.Borah, R.M.Owens, M.J.Irwin. "Accurate Estimation of Combinational Circuit Activity", DAC-95, p. 618.

    7. V.Saxena, F.N.Najm, I.N.Hajj. "Monte-Carlo Approach for Power Estimation in Sequential Circuits", ED&TC-97, p. 416.

    8. Y.H.Kim, S.H.Hwang, A.R.Newton. "Electrical-Logic Simulation and Its Applications", IEEE Trans. on CAD, 1989, v. 8, p. 8.

    9. R.A.Saleh, A.R.Newton. "Mixed-Mode Simulation", 1990.

    10. D.Rabe, B.Timmermann, W.Nebel. "CMOS Library - Characterization for Power Consumption", PATMOS-94, p. 94.

    11. F.N.Najm. "Feedback, Correlation, and Delay Concerns in the Power Estimation of VLSI Circuits", DAC-95, p. 612.

    12. F.N.Najm, M.Y.Zhang. "Extreme Delay Sensitivity and the Worst-Case Switching Activity in VLSI Circuits", DAC-95, p. 623.

    13. J.P.Hayes. "A Unified Switching Theory with Applications to VLSI Design", Proc. IEEE, 1982, v. 70, p. 1140.

    14. R.E.Bryant. "A Switch-Level Model and Simulator for MOS Digital Systems", IEEE Trans. on Computers, 1984, v. 33, p. 160.

    15. C.M.Huizer. "Power Dissipation Analysis of CMOS VLSI Circuits by Means of Switch-Level Simulation", Proc. of 16th European Solid-State Circuit Conf., 1990, p. 61.

    16. S.Gavrilov, A.Glebov, S.Rusakov, D.Blaauw, L.Jones, G.Vijayan. "Fast Power Loss Calculation for Digital Static CMOS Circuits", ED&TC-97, p. 411.

    17. D.I.Cheng, K.T.Cheng, D.C.Wang, M.Marek-Sadowska. "A New Hybrid Methodology for Power Estimation", DAC-96, p. 439.

    18. J.P.Fishburn, A.E.Dunlop. "TILOS: A Posynomial Programming Approach to Transistor Sizing", ICCAD-85, p. 326.

    19. S.S.Sapatnekar, V.B.Rao, P.M.Vaidya, S.M.Kang. "An Exact Solution to the Transistor Sizing Problem for CMOS Circuits Using Convex Optimization", IEEE Trans. on CAD, 1993, v. 12, p. 1621.

    20. B.Hoppe, G.Neuendorf, D.Schmitt-Landsiedel. "Optimization of High-Speed CMOS Logic Circuits with Analytical Models for Signal Delay, Chip Area and Dynamic Power Dissipation", IEEE Trans. on CAD, 1990, v. 9, p. 236.

    21. M.Borah, R.M.Owens, M.J.Irwin. "Transistor Sizing for Minimizing Power Consumption of CMOS Circuits under Delay Constraint", Int. Symp. On Low Power Design, 1995, p. 167.

    22. A.L.Glebov, A.A.Lialinsky, S.G.Rusakov. "Optimization of CMOS Circuits Based on Parameterized Cells", PATMOS-94, p. 178.

    23. Y.C.Hsieh, C.Y.Hwang, Y.L.Lin, Y.C.Hsu. "LiB: A CMOS Cell Compiler", IEEE Trans. on CAD, 1991, v. 10, p. 994.

    24. D.G.Baltus, J.Allen. "SOLO: A Generator of Efficient Layout from Optimized MOS Circuit Schematics", DAC-88, p.445.

    25. D.G.Boyer. "Symbolic Layout Compaction Review", DAC-88, p. 383.

    26. M.Berkelaar, J.Jess. "Gate Sizing in MOS Digital Circuits with Linear Programming", EDAC-90, p. 217.

    27. M.Berkelaar, P.Buurman, J.Jess. "Computing the Entire Active Area/Power Consumption versus Delay Trade-off Curve for Gate Sizing with a Piecewise Linear Simulator", ICCAD-94, p. 474.

    28. D.S.Chen, M.Sarrafzadeh. "An Exact Algorithm for Low Power Library-Specific Gate Resizing", DAC-96, p. 783.

    29. R.I.Bahar, G.D.Hachtel, E.Macii, F.Somenzi. "A Symbolic Method to Reduce Power Consumption of Circuits Containing False Paths", ICCAD-94, p. 368.

    30. R.I.Bahar, H.Cho, G.D.Hachtel, E.Macii, F.Somenzi. "Timing Analysis of Combinational Circuits Using ADD's", ED&TC-94.

    31. O.Coudert. "Gate Sizing: a General Purpose Optimization Approach", ED&TC-96, p. 214.

    32. S.Devadas, S.Malik. "A Survey of Optimization Techniques Targeting Low Power VLSI Circuits", DAC-95, p. 242.

    33. S.Iman, M.Pedram. "Logic Extraction and Factorization for Low Power", DAC-95, p.248.

    34. J.P.Fishburn. "A Depth-Decreasing Heuristic for Combinational Logic; or How to Convert a Ripple-Carry Adder into Carry-Lookahead Adder or Anything In-Between", DAC-90, p. 361.

    35. B.S.Carlson, S.J.Lee. "Delay Optimization of Digital CMOS VLSI Circuits by Transistor Reordering", IEEE Trans. on CAD, 1995, v. 14, p. 1183.

    36. S.Caufape, J.Figueras. "Power Optimization of Delay Constrained CMOS Bus Drivers", ED&TC-96, p. 205.

    37. S.Turgis, N.Azemad, D.Auvergne. "Design and Selection of Buffers for Minimum Power-Delay Product", ED&TC-96, p. 224.

    38. A.L.Glebov, D.Blaauw, L.G.Jones. "Transistor Reordering for Low Power CMOS Gates Using SP-BDD Representation", Int. Symp. on Low Power Design, 1995, p.161.

    39. E.Musoll, J.Cortadella. "Optimizing CMOS Circuits for Low Power Using Transistor Reordering", ED&TC-96, p. 219.

    40. B.Rohfleisch, A.Kolbl, B.Wurth. "Reducing Power Dissipation after Technology Mapping by Structural Transformations", DAC-96, p.789.

    41. A.Glebov, S.Gavrilov, D.Blaauw, G.Vijayan, S.Pullela, S.Moore. "Library-Less Synthesis for Static CMOS Circuits", submitted for ICCAD-97.

    42. A.L.Glebov. "BDD Based Algorithms for Series-Parallel Network Representation and Manipulation", Russian Workshop-94, Moscow, p.32.

    43. R.E.Bryant. "Graph-Based Algorithms for Boolean Function Manipulation", IEEE Trans. on Computers, 1986, v. 35, p.677.