Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2005_podyak / кафедра 15.doc
Скачиваний:
48
Добавлен:
27.03.2015
Размер:
343.55 Кб
Скачать

2.3.4 Минимизация Булевых функций.

Ранее были рассмотрены две основных формы представления функции Буля- СДНФ и СКНФ, использование которых позволяет продолжить процесс дальнейшего преобразования логического уравнения с целью его минимизации.

Цель минимизации логической функции (будем считать, что она представлена в СДНФ, наиболее распространенной для этих целей) состоит в том, чтобы привести ее к наиболее компактной форме записи, позволяющей реализовать ее в выбранном элементном базисе с учетом требований к проектируемому цифровому устройству. Преобразования и упрощения исходных Булевых функций имеют в своей основе алгебраические действия, свойственные алгебре Буля, ее аксиомы и теоремы, которые используются в следующих методах:

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

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

2. Метод минимизации с помощью карт Карно. При большом числе минтермов, входящих в состав функции Буля, непосредственная процедура алгебраических преобразований для минимизации может оказаться достаточно утомительной и неполной. Применение для этих же целей карт Карно позволяет с большей достоверностью получить минимальную запись функции и избежать возможных ошибок. Здесь оказывается очень полезным принцип кодирования карт, позволяющий легко обнаружить минтермы с одинаковыми значениями переменных от которых функция не зависит. Поясним сказанное примером рис. 2.7, на котором изображена карта Карно с помещенными в ее клетки единичными значениями функции Буля, записанной в форме СДНФ В карте обведены группы минтермов, удовлетворяющие упомянутой выше особенности. Например, одна из групп включает два минтермаи, которые можно объединить (склеить) получить укороченную сумму. Аналогичную процедуру можно провести с минтермами, образующими полный квадрат, сумма которых не зависит от значений переменных В,С; с минтермами, входящими в полный столбец и суммой, не зависящей от СDи т. д. Это позволяет сократить число членов суммы минтермов и получить минимизированное выражение записанной в карту Карно Булевой функции:

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

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

  1. Выделяются блоки, заполненные единицами

Рис. 2.7 2. Блок должен быть прямоугольным и содержать 2, 4, 8 и т.д. клеток

3 Блок должен быть возможно большим, а их количество наименьшим

4. Клетки, находящиеся симметрично относительно горизонтальной и вертикальной осей симметрии карты Карно считаются соседними

5. Одна и та же клетка может входить в несколько блоков

  1. Не доопределенные функции записываются в клетки карты с любым значением, способствующим ее минимизации

  2. Функция выписывается из карты Карно в виде суммы минтермов, описывающих выделенные блоки, элементы которых удовлетворяют правилу склеивания

  3. Инверсное значение функции можно получить, если по тем же правилам выделять блоки, заполненные нулями

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

Соседние файлы в папке 2005_podyak