Как составлять карты карно. Схемотехника. Минимизация логических функций

) по так называемым картам Карно.

Карты Карно — это другое графическое представление таблиц истинности. Структура таких карт для функции двух, трех и четырех переменных имеет вид:

Каждая клетка такой таблицы содержит значение логической функции x при фиксированном значении всех ее аргументов a 3 , a 2 , a 1 , a 0 т.е. Изображает одну из строчек таблицы истинности. Соответствующий аргумент считается истинным для данной клетки, если эта клетка входит в строки или столбцы, помеченные сбоку или снизу символом этого аргумента, в противном случае аргумент для данной клетки считается ложным. Сокращенную ДНФ записывают по прямоугольным группам смежных клеток карты содержащих единицу. Допустимое число клеток в группе равно 2 n , n=1,2,3,…

Правило записи сокращенной ДНФ аналогичны правилам записи ДСНФ и отличаются только тем, что в элементарных произведениях не указываются те аргументы, которые истинны лишь для половины клеток соответствующей группы.

Запишем, для примера, ДНФ в последующей карте Карно:

Сокращенная ДНФ для данного случая имеет вид:

При выделении прямоугольных групп клеток следует иметь в виду, что:

1. выделение групп часто неоднозначно, а, следовательно, неоднозначно и решение задачи синтеза;

2. группы должны быть как можно больше, а число групп как можно меньше;

3. группы могут пересекаться, т.е. иметь общие клетки

4. с точки зрения формирования прямоугольных групп, карты трех и четырех переменных следует считать трехмерными. Карму функции с тремя переменными следует рассматривать как цилиндр со склеенными правым и левым краями. Поэтому на плоском рисунке карты прямоугольные группы смежных клеток могут оказаться разорванными. Например:

В прямоугольной группе смежных клеток на нашем рисунке сокращенной ДНФ соответствует слагаемое.

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

По карте Карно можно записать также и сокращенную КНФ . Она записывается по прямоугольным группам смежных клеток содержащих нули. Прямоугольные группы выделяются также как и при записи ДНФ . Правило записи сокращенной КНФ аналогичны правилам записи КСНФ и отличаются только тем, что в элементарных суммах не учитываются те аргументы, которые истинны лишь для половины клеток соответствующей группы.

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

Логика работы цифрового устройства описывается таблицей истинности, в которой показывается, какие логические уровни будут присутствовать на выходе цифровой схемы при заданных логических уровнях на входе этой схемы. Для того чтобы синтезировать схему с заданной логикой работы необходимо составить булево уравнение (в случаи если у схемы предполагается один выход) или систему уравнений (в случаи если выходов у схемы больше одного). Рассмотрим два способа составления уравнений из таблицы истинности: прямым и методом карт Карно.

Способ первый: составление уравнений из таблицы истинности прямым способом.

При составлении булевых уравнений прямым способом нужно учитывать, что получившиеся уравнения могут быть не минимально возможными.

Выделим алгоритм составления уравнения по таблице истинности:

  • 1. Выделим те строки, в которых функция принимает истинное значение;
  • 2. Составим для этих строк минтермы операндов;
  • 3. Соединим минтермы при помощи операции дизъюнкции.

Рассмотрим пример.

Составим уравнение для устройства, имеющего один выход y, три входа x 0 , x 1 , x 2 . Логика работы устройства описана в таблицы 8.

Таблица 8 - Описание работы устройства

Составим функцию для строки три. В этой строке x 0 и x 2 принимают ложные значения, x 1 принимает истинное значение. Соединим эти операнды при помощи конъюнкции (элемент И):

Такая функции (принимающая истинное значения), в которую входит конъюнкция переменных или их отрицания называется минтермом.

Составим минтерм для строки пять:

Так как имеется два минтерма, соединим их при помощи дизъюнкции (элемент ИЛИ):

Что и будет уравнением устройства описанной таблицей истинности 8.

Выделим алгоритм составления системы уравнений по таблице истинности:

  • 1. Определим количество выходов, следовательно, и количество уравнений в системе;
  • 2. Для каждого из выходов составим уравнение:
  • 2.1 Выделяем те строки, в которых функция принимает истинное значение;
  • 2.2 Составлим для этих строк минтермы операндов;
  • 2.3 Если минтермов больше одного, то соединим минтермы при помощи операции дизъюнкции.
  • 3. Объединим полученные уравнения в систему.

Рассмотрим пример.

Пусть заданно устройство, логика работы которого описана в таблице 10. У устройства имеется два входа x 0 и x 1 , и два выхода y 1 , y 0 . Так как задано два выхода уравнения для каждого из выходов будут составляться отдельно. Составим систему уравнений, состоящую из двух уравнений.

Таблица 10 - Описание работы устройства

Выделим строки, в которых y 0 принимает истинные значения. y 0 принимает истинное значение только в одной строке, а именно в четвертой строке. Составим уравнение для y 0:

Выделим строки, в которых y 1 принимает истинные значения. Здесь имеется две строки: вторая и пятая. Для второй строки минтерм будет иметь вид. Для пятой. Объединим их с помощью операции ИЛИ, тем самым составив уравнение для y 1:

Остается составить систему уравнений, описывающую заданное устройство:

Способ второй: составление уравнений из таблицы истинности методом карт Карно.

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

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

Перед тем как привести примеры, отметим основные положения, которыми будем руководствоваться при объединении областей (групп):

  • 1. Область, которая подвергается объединению, должна состоять из логических единиц, при этом объединению подлежат только прямоугольные области, содержащие число логических единиц 2 n (т.е. 2 клетки, 4 клетки и т.д.).
  • 2. Клетки, находящиеся на границе карты, граничат между собой, и могут быть объединены.
  • 3. Все единицы должны быть объединены в какую-либо область, причем количество областей должно быть минимальным.
  • 4. Одна ячейка может быть включена в разные области.

Названные положения касаются только случая объединения областей, состоящих из логических единиц.

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

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

Пример 1. Составим уравнение содержащих два операнда (или их инверсию) по таблице истинности 11 посредствам карт Карно.

Таблица 11 - Карта Карно для двух операндов

Составим карту Карно, для этого преобразуем таблицу истинности к виду, показанному на рисунке 18.

Рис. 18.

Здесь, горизонтальная часть отводится операнду x 1 , которое принимает значение 0 и 1 (). Вертикальной части таблицы аналогично соответствует x 0 .

Выделим те строки таблицы истинности 11, где y принимает значение логической единицы: строки два и три. Заметим, что во второй строке x 0 и x 1 принимает значение 00 (), в третьей строке x 0 и x 1 принимает значение 10 ().

Проставим в карте Карно 18 на пересечениях x 0 x 1 единицы в тех местах, где и (рис. 19).

Рис. 19.

Выделим область согласно положениям объединения областей (Рис. 20).

Рис. 20.

Получена одна область, составим уравнение. Операнд меняет в области свое значение на инверсию. Неинвертированный операнд x 1 не входит в область. Единственный операнд, который не меняет своего значения в полученной области - . Тогда уравнение примет вид:

Заметим, что если составлять уравнение из таблицы 10 прямым способом, то получилось бы не минимизированное уравнение:

которое можно преобразовать к минимально возможной форме путем применения аксиом и свойств алгебры логики.

Пример 2. Составим уравнение содержащих три операнда (или их инверсию) по таблице истинности 12 посредствам карт Карно.

Таблица 12 - Карта Карно для трёх операндов

Составим карту Карно дл трех операндов (рис. 21).

Рис. 21.

Для трех операндов горизонтальная часть соответствует операндам x 1 x 2 , которые принимают значение 00, 01, 11, 10. Важно отметить, что порядок 00, 01, 11, 10 должен соблюдаться в точности, изменения его на другой порядок не допускается. Вертикальной части таблицы соответствует операнд x 0 , принимающей значение 1 и 0).

Заполним карту Карно. Аналогично предыдущему примеру: выделим строки в таблице истинности 12, где y принимает истинное значение (вторая, третья, четвертая, седьмая строки). Проставим единицы в те ячейки карты Карно, которые соответствуют значениям операндов в этих строках (рис. 22).

Рис. 22.

Выделим области согласно положениям объединения областей (Рис. 23).

Рис. 23.

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

Пример 4. Составим уравнение содержащих четыре операнда (или их инверсию) по таблице истинности 13 посредствам карт Карно.

Таблица 13 - Карта Карно для четырех операндов

Поскольку логическую функцию, даже такую простую, как Исключающее ИЛИ, можно реализовать различными способами, часто бывает нужно найти для нее самое простое решение, или, возможно, наиболее удобное схемное решение. Над этой проблемой бились многие светлые умы и в настоящее время существует несколько способов ее разрешения, включая алгебраические методы, реализуемые с помощью ЭВМ. При числе входов, не превышающем четырех, наилучшим методом является составление карты Карно. Этот метод позволяет также найти логическое выражение (если оно заранее неизвестно) по таблице истинности. Проиллюстрируем этот метод с помощью примера. Предположим, что требуется построить схему для мажоритарного подсчета голосов при баллотировке. Будем считать, что имеются три входа, работающие в положительной логике (на любом из них может быть 1 или 0) и выход (0 или 1). Выход равен 1, если 1 присутствует не менее чем на двух входах.

Шаг 1. Составим таблицу истинности

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

Рис. 8.27. Карта Карно.

Шаг 2. Составим карту Карно. Она представляет собой нечто очень близкое к таблице истинности, но содержит переменные, которые расположены по двум осям. Переменные должны быть расположены таким образом, чтобы при переходе от каждого квадрата к соседнему менялось бы состояние только одного входа (рис. 8.27).

Шаг 3. Отметим на карте группы, содержащие 1 (можно также использовать и группы, содержащие 0). Три овала на рис. 8.27 определяют логические выражения АВ, АС и ВС.

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

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

Некоторые комментарии к картам Карно.

1. Ищите группы, содержащие 2, 4, 8 и т.д. квадратов. Они имеют простые логические выражения.

2. Логика будет тем проще, чем крупнее блок вы опишете.

3. Состыкуйте края карты Карно. Например, карта на рис. 8.29 описывается выражением С.

4. Блок «единиц», содержащий один или два «нуля», лучше всего описывается с помощью группировки, показанной на рис. 8.30. Этому блоку соответствует логическое выражение .

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

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

Зачем это нужно?

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

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

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

Минимизация логических функций при помощи карт Карно

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

Карты Карно были изобретены в 1952 Эдвардом В. Вейчем и усовершенствованы в 1953 Морисом Карно, физиком из «Bell Labs», и были призваны помочь упростить цифровые электронные схемы.

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

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

Возможность поглощения следует из очевидных равенств

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

Как известно, булевы функции N переменных, представленные в виде СДНФ или СКНФ могут иметь в своём составе 2N различных термов. Все эти члены составляют некоторую структуру, топологически эквивалентную N–мерному кубу, причём любые два терма, соединённые ребром, пригодны для склейки и поглощения.

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

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

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

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

Для упрощения работы с булевыми функциями большого числа переменных был предложен следующий удобный приём. Куб, представляющий собой структуру термов, разворачивается на плоскость как показано на рисунке. Таким образом появляется возможность представлять булевы функции с числом переменных больше двух в виде плоской таблицы. При этом следует помнить, что порядок кодов термов в таблице (00 01 11 10) не соответствует порядку следования двоичных чисел, а клетки, находящиеся в крайних столбцах таблицы, соседствуют между собой.

Аналогичным образом можно работать с функциями четырёх, пяти и более переменных. Примеры таблиц для N=4 и N=5 приведены на рисунке. Для этих таблиц следует помнить, что соседними являются клетки, находящиеся в соответственных клетках крайних столбцов и соответственных клетках верхней и нижней строки. Для таблиц 5 и более переменных нужно учитывать также, что квадраты 4х4 виртуально находятся друг над другом в третьем измерении, поэтому соответственные клетки двух соседних квадратов 4х4 являются сосоедними, и соответствующие им термы можно склеивать.

Карта Карно может быть составлена для любого количества переменных, однако удобно работать при количестве переменных не более пяти. По сути Карта Карно - это таблица истинности составленная в 2-х мерном виде. Благодаря использованию кода Грея в ней верхняя строка является соседней с нижней, а правый столбец соседний с левым, т.о. вся Карта Карно сворачивается в фигуру тор (бублик). На пересечении строки и столбца проставляется соответствующее значение из таблицы истинности. После того как Карта заполнена, можно приступать к минимизации.

Если необходимо получить минимальную ДНФ, то в Карте рассматриваем только те клетки которые содержат единицы, если нужна КНФ, то рассматриваем те клетки которые содержат нули. Сама минимизация производится по следующим правилам (на примере ДНФ):

Далее берём первую область и смотрим какие переменные не меняются в пределах этой области, выписываем конъюнкцию этих переменных, если неменяющаяся переменная нулевая, проставляем над ней инверсию. Берём следующую область, выполняем то же самое что и для первой, и т. д. для всех областей. Конъюнкции областей объединяем дизъюнкцией.
Например(для Карт на 2-ве переменные):


Для КНФ всё то же самое, только рассматриваем клетки с нулями, не меняющиеся переменные в пределах одной области объединяем в дизъюнкции (инверсии проставляем над единичными переменными), а дизъюнкции областей объединяем в конъюнкцию. На этом минимизация считается законченной. Так для Карты Карно на рис.1 выражение в формате ДНФ будет иметь вид:

В формате КНФ:

Лекция №11

Упрощение логических выражений методом карт Карно

1. Куб Карно.

2. Принцип минимизации.

3. Порядок работы с картой Карно.

Куб Карно

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

Карты Карно были изобретены в 1952 Эдвардом В. Вейчем и усовершенствованы в 1953 Морисом Карно, физиком из «Bell Labs», и были призваны помочь упростить цифровые электронные схемы.

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

Принцип минимизации

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

Аналогично для КНФ:

Возможность поглощения следует из очевидных равенств

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

Как известно, булевы функции N переменных, представленные в виде СДНФ или СКНФ, могут иметь в своём составе 2 N различных термов. Все эти члены составляют некоторую структуру, топологически эквивалентную N –мерному кубу, причём любые два терма, соединённые ребром, пригодны для склейки и поглощения.

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

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

Таблица не верна. Верной будет: 1 1 0 0 1 1 0 0. Как видно из рисунка, для трёхмерного случая возможны более сложные конфигурации термов. Например, четыре терма, принадлежащие одной грани куба, объединяются в один терм с поглощением двух переменных:

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

Для упрощения работы с булевыми функциями большого числа переменных был предложен следующий удобный приём. Куб, представляющий собой структуру термов, разворачивается на плоскость как показано на рисунке. Таким образом, появляется возможность представлять булевы функции с числом переменных больше двух в виде плоской таблицы. При этом следует помнить, что порядок кодов термов в таблице (00 01 11 10) не соответствует порядку следования двоичных чисел, а клетки, находящиеся в крайних столбцах таблицы, соседствуют между собой.

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

Порядок работы с картой Карно

Исходной информацией для работы с картой Карно является таблица истинности минимизируемой функции. Таблица истинности содержит полную информацию о логической функции, задавая её значения на всех возможных 2 N наборах входных переменных X 1 ... X N . Карта Карно также содержит 2 N клеток, каждая из которых ассоциируется с уникальным набором входных переменных X 1 ... X N . Таким образом, между таблицей истинности и картой Карно имеется взаимно однозначное соответствие, и карту Карно можно считать соответствующим образом отформатированной таблицей истинности.

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

Рис. 2. Пример работы с картой Карно

Принципы склейки

· Склейку клеток карты Карно можно осуществлять по единицам (если необходимо получить ДНФ) или по нулям (если требуется КНФ).

· Склеивать можно только прямоугольные области с числом единиц (нулей) 2 n , где n - целое число. Для карт Карно с числом переменных более четырёх могут получаться более сложные области, о чём будет сказано в следующих разделах.

· Область, которая подвергается склейке должна содержать только единицы (нули).

· Крайние клетки каждой горизонтали и каждой вертикали также граничат между собой (топологически карта Карно для четырёх переменных представляет собой тор) и могут объединяться в прямоугольники. Следствием этого правила является смежность всех четырёх угловых ячеек карты Карно для N =4. Если во всех четырёх угловых ячейках стоят единицы (нули) они могут быть объединены в квадрат, как показано на рис. 2в.

· Все единицы (нули) должны попасть в какую-либо область.

· С точки зрения минимальности ДНФ (КНФ) число областей должно быть как можно меньше (каждая область представляет собой терм), а число клеток в области должно быть как можно больше (чем больше клеток в области, тем меньше переменных содержит терм. Терм размером 2 n ячеек содержит N n переменных).

· Одна ячейка карты Карно может входить сразу в несколько областей. Это следует из очевидного свойства булевых функций: повторение уже существующего слагаемого (сомножителя) не влияет на функцию:

· В отличие от СДНФ (СКНФ), ДНФ (КНФ) не единственны. Возможно несколько эквивалентных друг другу ДНФ (КНФ), которые соответствуют разным способам покрытия карты Карно прямоугольными областями.

Описание

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

Рис. 4.1. Метод скручивания карты Карно

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

Если необходимо получить минимальную ДНФ, то в Карте рассматриваем только те клетки которые содержат единицы, если нужна КНФ, то рассматриваем те клетки, которые содержат нули. Сама минимизация производится по следующим правилам (на примере ДНФ):

1. Объединяем смежные клетки, содержащие единицы, в область так, чтобы одна область содержала ( целое число = 0… ) клеток (помним про то, что крайние строки и столбцы являются соседними между собой), в области не должно находиться клеток, содержащих нули;

2. Область должна располагаться симметрично оси (ей) (оси располагаются через каждые четыре клетки);

3. Несмежные области, расположенные симметрично оси(ей), могут объединяться в одну;

4. Область должна быть как можно больше, а количество областей как можно меньше;

5. Области могут пересекаться;

6. Возможно несколько вариантов покрытия.

Далее берём первую область и смотрим, какие переменные не меняются в пределах этой области, выписываем конъюнкцию этих переменных; если неменяющаяся переменная нулевая, проставляем над ней инверсию. Берём следующую область, выполняем то же самое, что и для первой, и т. д. для всех областей. Конъюнкции областей объединяем дизъюнкцией.
Например (для Карт на 2 переменные):

Для КНФ всё то же самое, только рассматриваем клетки с нулями, неменяющиеся переменные в пределах одной области объединяем в дизъюнкции (инверсии проставляем над единичными переменными), а дизъюнкции областей объединяем в конъюнкцию. На этом минимизация считается законченной. Так для Карты Карно на рис.1 выражение в формате ДНФ будет иметь вид:

В формате КНФ:

Так же из ДНФ в КНФ и обратно можно перейти использовав Законы де Моргана.

Примеры:

Пример 1.

Упростить полученную СДНФ, используя склеивание, а так же применить карту Карно для получения ДНФ.

Применено свойство и склеивание по «z» и по «y».

Дизъюнкции в скобках получены по парам наборов переменных (0,0,0), (0,0,1) и (0,0,0), (0,1,0). Наборы в каждой паре отличаются только в одной позиции и называются соседними. После упрощения остаются совпадающие в паре переменные. Карты Карно представляют собой таблицу истинности, в которой соседние наборы переменных расположены рядом (метод скользящей единицы при этом нарушается).

Для нашей функции имеем

yz x

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

1) Каждый руг может содержать только 2 K (к = 0, 1, 2,…) единиц, например16, 8, 4, 2, 1.

2) Круги должны быть наибольшего размера.

3) Число кругов наименьшее, покрывающее все единицы.

4) Так как наборы (0,0) и (1,0) соседние. То края карты соединяются друг с другом.

5) По каждому из кругов составляется простая конъюнкция, входящая в ДНФ. При этом оставляются только те переменные, которые сохраняют свое значение во всем круге и как обычно, если х i = 1, то пишем х i , если х i = 0, то .

Построим круги для нашего примера.

yz x
1 1 1 2

Имеем две конъюнкции. Для первого круга и сохраняют свое значение, получаем . Во втором круге не меняется и , получаем . Окончательно .

Пример 2

У мальчика Коли есть мама, папа, дедушка и бабушка. Коля пойдёт гулять на улицу, если ему разрешат хотя бы двое родственников.
Для краткости обозначим родственников Коли через буквы:
мама - х1
папа - х2
дедушка - х3
бабушка - х4
Условимся обозначать согласие родственников единицей, несогласие - нулём. Возможность пойти погулять обозначим буквой f, Коля идёт гулять - f = 1, Коля гулять не идёт - f = 0.
Составим таблицу истинности:

Перерисуем таблицу истинности в 2-х мерный вид:

Переставим в ней строки и столбцы в соответствии с кодом Грея. Получили Карту Карно:

Заполним её значениями из таблицы истинности:

Минимизируем в соответствии с правилами:

1. 1. Все области содержат 2^n клеток;

2. 2. Так как Карта Карно на четыре переменные, оси располагаются на границах Карты и их не видно (подробнее смотри пример Карты на 5 переменных);

3. 3. Так как Карта Карно на четыре переменные, все области симметрично осей - смежные между собой (подробнее смотри пример Карты на 5 переменных);

4. 4. Области S3, S4, S5, S6 максимально большие;

5. 5. Все области пересекаются (необязательное условие);

6. 6. В данном случае рациональный вариант только один.

Теперь по полученной минимальной ДНФ можно построить логическую схему:

Из-за отсутствия в наличии шести - входового элемента ИЛИ, реализующего функцию дизъюнкции, пришлось каскадировать пяти- и двух-входовые элементы (D7, D8).

Составим мин. КНФ:

Заключение .

Для минимизации логических функций возможно использовать разные методы:

  • карта Карно (Вейча)
  • Квайна
  • Квайна- Мак-Класки
  • Петрика

Отличие метода карт Карно от карт Вейча заключается в способе обозначения строк и столбцов карт. У карт Карно строки и столбцы обозначаются с помощью кода Грея. Однако, принципиальной разницы между ними нет.

Метод минимизационных карт Карно (или карт Вейча) хорошо работает при числе аргументов 3,4 и даже 5 и обеспечивает простоту получения результата. Этот метод основан на зрительном анализе таблиц (карт) и не может быть применен для обработки вычислительной техникой.

Домашнее задание:

1. Минимизировать нижеприведённые функции, представленные картами Карно.

Не заполненные клетки соответствуют нулю. Переменные, обозначенные буквами, соответствуют прямому значению, а не обозначенные - инверсному.

Контрольные вопросы:

1. Определение куба Карно.

2. Кем и в каком году были изобретены карты Карно?

3. Основной метод минимизации логических функций?