
- •Минимизация логических функций и их реализация на плм
- •3.1. Методы минимизации логических функций на основе прямых преобразований сднф
- •3.2. Метод испытания импликант
- •3.3. Визуальные методы минимизации логических функций
- •3.3.2. Метод минимизации полностью определенных логических функций с помощью карт Карно
- •3.3.3. Метод минимизации частично определенных логических функций с помощью карт Карно
- •Содержание
- •Минимизация логических функций и их реализация на плм
- •394026 Воронеж, Московский просп., 14
3.3. Визуальные методы минимизации логических функций
Метод импликантных матриц
Данные методы основаны на графическом представлении логических функций и способности человека быстро зрительно отыскивать некоторые геометрические фигуры. Одним из таких способов является метод импликантных матриц.
Импликантная матрица – это таблица, столбцы которой содержат элементарные конъюнкции (минтермы) СДНФ логической функции, а строки – найденные по методу Квайна импликанты.
Проиллюстрируем данный метод на примере рассматриваемой нами ранее логической функции , СДНФ которой определяется соотношением (3.1):
Составим
для этой функции импликантную матрицу
(табл.3.3), в которой
- элементарные конъюнкции из (3.1), а
- импликанты из выражения (3.3).
Таблица 3.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В импликантной матрице ставим “ ” на пересечении тех строк и столбцов матрицы, в которых импликанта может поглотить конъюнкцию. Для получения тупиковой ДНФ необходимо выбрать минимальное число таких импликант , которые в совокупности поглотили бы все элементарные конъюнкции . В результате этих действий получим две тупиковые формы логической функции .
(3.6)
(3.7)
3.3.2. Метод минимизации полностью определенных логических функций с помощью карт Карно
Метод минимизации логических функций с помощью карт Карно заключается в следующем: на карту Карно наносятся единичные и нулевые значения логических функций. Для получения ДНФ логической функции рассматриваются единичные значения функции, а для получения КНФ – нулевые.
Пусть
с помощью карты Карно задана логическая
функция
,
необходимо найти ее тупиковую ДНФ. Тогда
задача минимизации решается следующим
образом: среди единичных значений
логической функции
,
предварительно нанесенных на карту
Карно, отыскиваются прямоугольники
(квадраты) с числом клеток
,
где k=(n-1),…,0.
Задача минимизации состоит в том, чтобы
все единичные значения логической
функции покрыть минимальным количеством
прямоугольников максимальной площади,
величина которых равна
.
Для формирования тупиковых ДНФ в каждом
прямоугольнике находится соответствующая
импликанта, которая является одинаковой
для всех объединенных клеток карты
Карно. Найденные из каждого прямоугольника
импликанты соединяются знаком дизъюнкции.
Если необходимо найти тупиковую КНФ логической функции , то задача минимизации решается следующим образом: среди нулевых значений логической функции , предварительно нанесенных на карту Карно, отыскиваются прямоугольники (квадраты) с числом клеток , где k=(n-1),…,0. Задача минимизации состоит в том, чтобы все нулевые значения логической функции покрыть минимальным количеством прямоугольников максимальной площади, величина которых равна . Для формирования тупиковых КНФ в каждом прямоугольнике находят элементарные дизъюнкции логических переменных, которые являются общими для всех выделенных клеток карты Карно. Найденные из каждого прямоугольника дизъюнкции соединяются знаком конъюнкции.
При применении метода минимизации логических функций с помощью карт Карно необходимо помнить о том, что карты Карно обладают свойством цилиндричности, т.е. клетки, расположенные по краям карт Карно являются соседними в каждом столбце и каждой строке.
Минимизируем с помощью данного метода логическую функцию , СДНФ которой определяется соотношением (3.1):
Построим для функции карту Карно (рис.3.1).
ab c |
00 |
01 |
11 |
10 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
Рис. 3.1. Карта Карно функции
Определим
максимальный размер прямоугольника,
которым можно покрыть клетки карты.
Величина прямоугольников вычисляется
как
,
где k=(n-1),(n-2),…,0,
а n
– число аргументов, от которых зависит
логическая функция. В нашем случае n=3,
следовательно максимальный размер
прямоугольника равен
=
=4.
В карте Карно нет прямоугольника,
состоящего из четырех единиц, стоящих
рядом, поэтому объединять клетки карты
можно только по две, например так, как
показано на рис. 3.2.
Минтермы
функции образуют в карте три группы.
Одна группа состоит из двух минтермов
и
.
Общей импликантой у них является
.
В соответствии с теоремами алгебры
логики имеем:
+
=
=
,
то
есть переменная
из этой группы может быть исключена.
Вторая
группа состоит из двух минтермов
и
,
следовательно
,
то есть переменная
из этой группы может быть исключена.
Третья группа состоит из двух минтермов и , следовательно
,
то есть переменная
из этой группы может быть исключена.
c |
00 |
01 |
11 |
10 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
Рис. 3.2. Карта Карно функции
Объединяя знаком дизъюнкции найденные из каждого прямоугольника импликанты, получаем тупиковую ДНФ функции :
(3.8)
Объединить клетки карты Карно можно и другим образом (рис.3.3),
c |
00 |
01 |
11 |
10 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
Рис. 3.3. Карта Карно функции
тогда получим еще одну тупиковую ДНФ, реализующую функцию (3.9):
(3.9)