Карта Карно


Карта Карно ( KM или K-map ) — это метод упрощения выражений булевой алгебры . Морис Карно представил ее в 1953 году [1] [2] как усовершенствование диаграммы Вейча Эдварда В. Вейча 1952 года, [3] [4] , которая была повторным открытием логической диаграммы Аллана Марканда 1881 года [5] , также известной как диаграмма Марканда . [4] , но теперь основное внимание уделяется его полезности для коммутации цепей. [4] Диаграммы Вейча поэтому также известны как диаграммы Маркана-Вейча .[4] и карты Карно как карты Карно–Вейча ( карты KV ).

Карта Карно снижает потребность в обширных вычислениях, используя возможности человека по распознаванию образов. [1] Он также позволяет быстро выявлять и устранять потенциальные условия гонки .

Требуемые логические результаты переносятся из таблицы истинности на двумерную сетку, где в картах Карно ячейки упорядочены в коде Грея , [6] [4] , и каждая позиция ячейки представляет собой одну комбинацию входных условий. Ячейки также известны как minterms, в то время как каждое значение ячейки представляет соответствующее выходное значение логической функции. Выявляются оптимальные группы единиц или нулей, которые представляют собой термины канонической формы логики в исходной таблице истинности. [7] Эти термины можно использовать для записи минимального логического выражения, представляющего требуемую логику.

Карты Карно используются для упрощения реальных логических требований, чтобы их можно было реализовать с использованием минимального количества логических вентилей. Выражение суммы произведений (SOP) всегда может быть реализовано с использованием логических элементов И , передающих логический элемент ИЛИ , а выражение произведения сумм (POS) приводит к логическим элементам ИЛИ, передающим логический элемент И. Выражение POS дает дополнение функции (если F — функция, то ее дополнение будет F'). [8] Карты Карно также можно использовать для упрощения логических выражений при разработке программного обеспечения. Логические условия, используемые, например, в условных операторах., может стать очень сложным, что затрудняет чтение и сопровождение кода. После минимизации канонические выражения суммы произведений и произведений сумм могут быть реализованы напрямую с использованием логических операторов И и ИЛИ. [9]

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

Ниже приведены две разные записи, описывающие одну и ту же функцию в неупрощенной булевой алгебре с использованием логических переменных A , B , C , D и их инверсий.


Пример карты Карно. На этом изображении фактически показаны две карты Карно: для функции ƒ с использованием minterms (цветные прямоугольники) и для ее дополнения с использованием maxterms (серые прямоугольники). На изображении E () означает сумму minterms, обозначенную в статье как .
K-карта нарисована на торе и на плоскости. Клетки, отмеченные точками, являются соседними.
Построение К-карты. Вместо выходных значений (крайние правые значения в таблице истинности) на этой диаграмме показано десятичное представление входных ABCD (крайние левые значения в таблице истинности), поэтому это не карта Карно.
В трех измерениях прямоугольник можно согнуть в тор.
Диаграмма, показывающая две K-карты. K-карта для функции f(A, B, C, D) показана цветными прямоугольниками, соответствующими минтермам. Коричневая область представляет собой перекрытие красного квадрата 2×2 и зеленого прямоугольника 4×1. K-карта для обратной функции f показана серыми прямоугольниками, которые соответствуют maxterms.
Значение для ABCD = 1111 заменяется на «безразлично». Это полностью удаляет зеленый член и позволяет красному члену быть больше. Это также позволяет синему обратному члену смещаться и становиться больше.
Опасности гонки присутствуют на этой диаграмме.
Диаграмма выше с согласованными терминами, добавленными во избежание расовых опасностей.