Оптимизация логики - Logic optimization

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

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

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

Мотивация

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

С появлением логического синтеза одной из самых больших проблем, с которыми столкнулась отрасль автоматизации проектирования электроники (EDA), было найти наиболее простое схемное представление данного описания проекта. Хотя двухуровневая логическая оптимизация долгое время существовала в форме алгоритма Куайна-МакКласки , за которым позже последовал эвристический минимизатор логики Espresso , быстро увеличивающаяся плотность микросхем и широкое распространение языков описания оборудования для описания схем формализовали оптимизацию логики. домен в том виде, в каком он существует сегодня.

Методы

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

Классификация

Сегодня логическая оптимизация делится на несколько категорий:

На основе представления схемы
Двухуровневая логическая оптимизация
Многоуровневая логическая оптимизация
На основе характеристик схемы
Последовательная логическая оптимизация
Комбинационная логическая оптимизация
По типу исполнения
Графические методы оптимизации
Табличные методы оптимизации
Алгебраические методы оптимизации

Графические методы

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

Минимизация логического выражения

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

Для случая, когда логическая функция задается схемой (то есть мы хотим найти эквивалентную схему минимально возможного размера), проблема неограниченной минимизации схемы долгое время предполагалась как -полная , и результат был окончательно доказан в 2008 году. но есть эффективные эвристики, такие как карты Карно и алгоритм Куайна – Маккласки, которые облегчают этот процесс.

Методы минимизации логической функции включают:

Минимизатор эвристической логики эспрессо

Другой подход к этому вопросу используется в алгоритме ESPRESSO, разработанном Brayton et al. в Калифорнийском университете в Беркли . Это представляет собой ресурс и производительность эффективный алгоритм направлен на решение эвристических опасности -free проблемы логики минимизации два уровня.

Вместо того, чтобы расширять логическую функцию в minterms, программа манипулирует «кубиками», итеративно представляя термины продукта в обложках ON-, DC- и OFF-. Хотя не гарантируется, что результат минимизации будет глобальным минимумом , на практике он очень близок, в то время как решение всегда лишено избыточности . По сравнению с другими методами этот метод существенно более эффективен, сокращая использование памяти и время вычислений на несколько порядков. Его название отражает способ мгновенного приготовления чашки свежего кофе. Вряд ли есть какие-либо ограничения на количество переменных, выходных функций и членов комбинационного функционального блока. В общем, например, десятки переменных с десятками выходных функций легко обрабатываются.

Входными данными для ESPRESSO является функциональная таблица желаемой функциональности; Результатом является свернутая таблица, описывающая либо ВКЛ., либо ВЫКЛ. функции, в зависимости от выбранных опций. По умолчанию термины продукта будут использоваться в максимально возможной степени для нескольких функций вывода, но программе можно дать указание обрабатывать каждую из функций вывода отдельно. Это позволяет эффективно реализовывать двухуровневые логические массивы, такие как PLA (программируемый логический массив) или PAL (программируемая логика массива).

Алгоритм ESPRESSO оказался настолько успешным, что был включен в качестве стандартного шага минимизации логической функции практически в любой современный инструмент синтеза логики . Для реализации функции в многоуровневой логике результат минимизации оптимизируется путем факторизации и отображается на доступные базовые логические ячейки в целевой технологии, независимо от того, касается ли это программируемой пользователем вентильной матрицы (ПЛИС) или специализированной интегральной схемы ( ASIC).

Сравнение двухуровневых и многоуровневых представлений

В то время как двухуровневое представление схем строго относится к уплощенному представлению схемы с точки зрения СОП ( суммы произведений ), что более применимо к реализации проекта в PLA, многоуровневое представление является более подходящим вариантом. общий вид схемы в терминах произвольно связанных SOP, POS ( произведение сумм ), факторизованной формы и т.д. Алгоритмы логической оптимизации обычно работают либо в структурном (SOP, факторизованная форма), либо в функциональном ( двоичные диаграммы решений , ADD ) представлении схемы.

Если у нас есть две функции F 1 и F 2 :

Вышеупомянутое двухуровневое представление занимает шесть элементов продукта и 24 транзистора в CMOS Rep.

Функционально эквивалентным многоуровневым представлением может быть:

Р = В + С .
F 1 = AP + AD .
F 2 = А'П + А'Е .

В то время как количество уровней здесь равно 3, общее количество терминов и литералов продукта уменьшается из-за совместного использования термина B + C.

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

Пример

Оригинальный и упрощенный пример схемы

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

Схему можно упростить (свести к минимуму), применив законы булевой алгебры или используя интуицию. Поскольку в примере указано, что истинно, когда ложно, и наоборот, можно сделать вывод, что это просто означает . В терминах логических вентилей неравенство просто означает вентиль XOR (исключающее ИЛИ ). Поэтому . Тогда две схемы, показанные ниже, эквивалентны:


Правильность результата можно проверить с помощью таблицы истинности .

Смотрите также

использованная литература

дальнейшее чтение