
- •Кафедра автоматизированных и вычислительных систем
- •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)