Меню
Бесплатно
Главная  /  Кашель у детей  /  Карты карно как объединять. Правила минимизации с использованием карт карно

Карты карно как объединять. Правила минимизации с использованием карт карно

Правила минимизации с использованием карт Карно

1. В карте Карно группы единиц (для получения ДНФ) и группы нулей (для получения КНФ) необходимо обвести четырехугольными контурами. Внутри контура должны находиться только одноименные значения функции. Этот процесс соответствует операции склеивания или нахождения импликант данной функции.

2. Количество клеток внутри контура должно быть кратно степени двойки (1, 2, 4, 8, 16...).

3. При проведении контуров крайние строки карты (верхние и нижние, левые и правые), а также угловые клетки, считаются соседними (для карт до 4-х переменных).

4. Каждый контур должен включать максимально возможное количество клеток. В этом случае он будет соответствовать простой импликанте (имплиценте). Число контуров должно быть минимальным.

5. Все единицы (нули) в карте (даже одиночные) должны быть охвачены контурами. Любая единица (нуль) может входить в контуры произвольное количество раз.

6. Число контуров должно быть минимальным. Множество контуров, покрывающих все 1 (0) функции образуют тупиковую ДНФ (КНФ). Целью минимизации является нахождение минимальной из множества тупиковых форм.

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

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

Рисунок 2.52 – Карта Карно двух переменных

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

Можно пойти другим путем, применяя операцию неполного склеивания, получим дизъюнкцию импликант:

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

По карте Карно получаем:

МКНФ: .

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

где 01, 10, 11 – минтермы, Х1 и 1Х – импликанты, они же простые импликанты. Остается одна простая иплицента (она же макстерм) 00. С 1 = {1Х, Х1}, С 0 = {00}.

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

Рисунок 2.53 – Карта Карно трех переменных

МДНФ: .

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

Рисунок 2.54 – Карта Карно четырех переменных

Для частично (не полностью) определенных функций рассмотрим пример на рис. 2.55. Неизвестные значения, обозначаемые Х участвуют в склеивании

Рисунок 2.55 – Карта Карно четырех переменных частично определенной функции

МДНФ: .

МКНФ: .

КП={C 0 , C 1 },

.

Если рассматривать запись результатов минимизации в кубическом виде, то при минимизации булевой функции по единичным значениям каждой конъюнкции ранга R соответствует куб ранга R, где каждой переменной без инверсии соответствует 1 в кубе, переменной с инверсией - 0, а на месте отсутствующей переменной ставиться X. Полученное множество кубов образует единичное покрытие C 1 (соответствующее ДНФ).

При минимизации булевой функции по нулевым значениям и представлении результатов минимизации в кубическом виде, нулевое покрытие C 0 формируется на основе КНФ. Таким образом, каждой дизъюнкции ранга R (из КНФ) соответствует куб ранга R, где каждой переменной без инверсии соответствует 0 в кубе, переменной с инверсией - 1, а на месте отсутствующей переменной ставиться X. Полученное множество кубов образует нулевое покрытие C 0 (соответствующее КНФ).

Особенностью изображения карт Карно для числа переменных более 4-х является то, что «математически» соседние столбцы карты Карно пространственно оказываются разнесенными. Таким образом, карта Карно для 5 переменных представляет собой две карты 4-х переменных, зеркально отображенные относительно центральной вертикальной линии (выделенной жирным тоном на рис. 2.56).

Рисунок 2.56 – Карта Карно пяти переменных

При этом столбцы одного цвета в правой и левой частях карты фактически оказываются соседними по переменной x 3 (соседние столбцы также указываются стрелками в нижней части карты). При выполнении склеиваний следует учитывать «соседство» указанных столбцов, особенно розовых и зеленых, которые пространственно разделены.


2.2.3 Минимизация систем булевых функций

Существует два подхода в минимизации систем булевых функций:

Минимизация каждой функции в отдельности;

Совместная минимизация функций системы.

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

Пусть в результате минимизации функций получены следующие МДНФ:

На рис. 2.57 показана реализация системы функций без учета общих частей (термов). Аппаратурные затраты по критерию Квайна без учета инверсий для данной реализации составляют C b = 18.

На рис. 2.58 показана реализация системы функций с объединением общих частей . Аппаратурные затраты по критерию Квайна без учета инверсий для данной реализации составляют C b = 14.Очевидно, что данная реализация является более простой (экономичной).

Рисунок 2.57 – Реализация системы функций без учета общих частей

Рисунок 2.58 – Реализация система функций с объединением общих частей

Данный метод не всегда эффективен. Ниже это будет проиллюстрировано примером.

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

1. Выписать все минтермы функций (можно в кубической форме), входящие в систему. Каждому минтерму присвоить признак, содержащий номера функций системы, в которые входит рассматриваемый минтерм, например, минтерм 0 (f 1 , f 3) 0000, минтерм 15 (f 1) 1111.



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

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

4. Произвести получение выражений МДНФ для каждой функции системы по функции .

Замечание. Если функция не полностью определена, наборы, на которых она не определена, должны участвовать в склеивании, но в таблицу покрытий не вносятся.

Рассмотрим пример. Пусть дана система булевых функций (табл. 2.8). Найдем МДНФ системы булевых функций.

Таблица 2.8 – Таблица истинности системы булевых функций

0 0 0 1 1
0 0 1 0 0
0 1 0 0 1
0 1 1 0 1
1 0 0 0 0
1 0 1 1 1
1 1 0 1 0
1 1 1 1 0

Выполняем склеивания.

В склеивании не участвовали все 1-кубы и два 0-куба 000 (f 1) и 101 (f 2). Это простые импликанты. Они составляют сокращенную ДНФ функции . Все они войдут в таблицу покрытий.

Строим таблицу покрытий (табл. 2.9)

Таблица 2.9 – Таблица покрытий

Простые импликанты Минтермы функции
f 1 f 2 f 2 f 2 f 1 f 2 f 1 f 1
A 0x0 (f 2) v v
B 01x (f 2) v v
C 1x1 (f 1) v v
D 11x (f 1) v v
E 000 (f 1 , f 2) v v
F 101 (f 1 , f 2) v v

Ядро функции составляют простые импликанты B, D, E, F. Остальные импликанты являются лишними и не будут входить в тупиковую и минимальную ДНФ. Т.е. МДНФ функции будет состоять только из ядра.

По МДНФ функции строим МДНФ и МДНФ .

Аппаратурные затраты по критерию Квайна без учета инверсий и с учетом объединения общих частей выражения () составляют C b =16.

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

Карта Карно для функции представлена на рис. 2.59

Рисунок 2.59 – Карта Карно для функции

Карта Карно для функции представлена на рис. 2.60

Рисунок 2.60 – Карта Карно для функции

Общих частей у МДНФ функций нет, в результате аппаратурные затраты по критерию Квайна без учета инверсий составляют C b =20. По оценке аппаратурных затрат видно, что раздельная минимизация функций системы уступает совместной, хотя последняя является более трудоемкой.


2.3 Комбинационные компоненты средней степени интеграции

Сумматоры

Каким образом выполняется суммирование двух положительных чисел в двоичном коде? Например, 3+5=8:

Существует большое многообразие сумматоров в приведено 9 типов сумматоров, рассмотрим самые простые из них.

Таблица 2.12 – Таблица истинности для полного сумматора

a b C in S C out

.

Выполнив минимизацию C out по карте Карно, получим;

С in – перенос из предыдущего младшего разряда,

C out – перенос с следующий старший разряд.

На рис. 2.67 представлена схема одноразрядного полного сумматора.

Рисунок 2.67 – Схема одноразрядного полного сумматора

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

Рисунок 2.68 – Схема последовательного сумматора

Последовательный сумматор имеет небольшие аппаратурные затраты, но требует большого времени выполнения операции. Более быстродействующим будет параллельный сумматор с последовательным переносом. Для примера рассмотрим четырехразрядный параллельный сумматор с последовательным переносом (рис. 2.69).

Рисунок 2.69 – Схема параллельного сумматора с последовательным переносом

Для каждого разряда в этой схеме используется отдельный одноразрядный полный сумматор. В младший разряд (a 0 , b 0 ) переноса нет, поэтому С in =0. На каждый последующий разряд подеется перенос из предыдущего. Хоть сумматор и называется параллельным, на самом деле все разряды обрабатываются не точно одновременно, а только после формирования переноса для данного разряда. Отсюда следует, что быстродействие устройства определяется суммой задержек передачи сигнала переноса с младшего разряда на выход сумматора старшего разряда.

Мультиплексоры

Мультиплексором (от английского слова multiplex - многократный) называется комбинационный узел, способный коммутировать (передавать) информацию с нескольких входов на один выход. С помощью мультиплексора осуществляется временное разделение информации, поступающей по разным каналам. На рисунке 2.70 приведен пример мультиплексора 2 в 1. Мультиплексоры имеют две группы входов и один, реже два - взаимодополняющих выхода F и . Входы являются информационными, вход А - управляющими (адресными). Набор сигналов на адресных входах определяет конкретный информационный вход, который будет соединен с выходным каналом. Условно мультиплексор обозначается MX или MUX.

Рисунок 2.70 – Условное обозначение мультиплексора MX 2 в 1

В таблице 2.13 приведены значения адресов для соответствующих входов.

Таблица 2.13 – Информационные входы и их адреса

Информационные входы А
D 0
D 1

На рис. 2.71 приведен механический аналог мультиплексора 2 в 1. Когда А =0, коммутируется D 0 и F , когда А =1, коммутируется D 1 и F.

Рисунок 2.71 – Механический аналог мультиплексора MX 2 в 1

В таблице 2.14 представлена таблица истинности MX 2 в 1.

Таблица 2.14 – Таблица истинности MX 2 в 1

А D 0 D 1 F

Выполнив минимизацию по карте Карно функции F , получим выражение:

На рисунке 2.72 приведена структура мультиплексора 2 в 1.

Рисунок 2.72 – Структура мультиплексора MX 2 в 1

На рисунке 2.73 приведен пример мультиплексора 4 в 1.

Рисунок 2.73 – Условное обозначение стробируемого MUX 4 в 1

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

Таблица 2.15 – Информационные входы и их адреса в MUX 4 в 1

Информационные входы Адреса информационных входов А 1 А 2
D 0 0 0
D 1 0 1
D 2 1 0
D 3 1 1

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

На рисунке 2.74 приведен механический аналог мультиплексора MUX 4 в 1. Если V =0, то F =0, т.е. будет выполняться коммутация с нулем. Если V =1, то F будет коммутироваться с каналом в соответствии с поданным адресом на входы А 1 А 2 , т.е. мультиплексор будет выполнять свою основную функцию. .

Рисунок 2.74 – Механический аналог мультиплексора MUX 4 в 1

Разрешающий вход используется также при наращивании числа входных информационных каналов. Мультиплексор на рисунке 2.73 реализует функцию, представленную в табл. 2.16.

Таблица 2.16 – Таблица истинности MUX 4 в 1

V А 1 А 2 D 0 D 1 D 2 D 3 F
x x x
x x x
x x x
x x x
x x x
x x x
x x x
x x x
x x x x x x

Функция выхода мультиплексора MUX 4 в 1 будет иметь вид:

Демультиплексоры

Демультиплексоры (DMX) выполняют преобразования информации, обратное преобразованию информации в мультиплексоре. Демультиплексор выполняет коммутацию одного входного информационного канала с одним из нескольких выходных каналов. Число выходных каналов демультиплексора равно , где n - число адресных входов. В качестве демультиплексоров можно использовать дешифраторы. Демультиплексор из 1 в 2 представлен на рис. 2.76.

Рисунок 2.76 – Условное обозначение мультиплексора DMX 1 в 2

В таблице 2.17 приведены значения адресов для соответствующих выходов.

Таблица 2.17 – Выходы и их адреса в DMX 1 в 2

Запись 0/z означает, что на выходе может быть либо 0, либо z, 0 и z соответствуют различным таблицам истинности. Символ z означает состояния высокого импеданса или высокого сопротивления на выходе (обрыв связи).

Вне зависимости от того, что на выходе (0 либо z), функция реализуется уравнениями:

На рисунке 2.78 приведена структура демультиплексора 1 в 2.

Рисунок 2.78 – Структура демультиплексора DMX 1 в 2

Дешифраторы

Комбинационная логическая схема, преобразующая поступающий на её входы двоичный позиционный код в активный сигнал только на одном из выходов (унитарный код), называется дешифратором (от английского decoder). Если количество двоичных разрядов дешифрируемого кода обозначить через n, то число выходов дешифратора равно 2 n . На рисунке 2.79 изображен дешифратор из 2 в 4. Слева – входы 1, 2 – степени двойки, условно будем их обозначать D 1 , D 2 далее для удобства. V – стробирующий вход. Справа – выходы 0, 1, 2, 3 – десятичный эквивалент подаваемого на входы кода, для удобства будем далее их обозначать Q 0 , Q 1 , Q 2 , Q 3 .

Рисунок 2.79 – Условное обозначение дешифратора 2 в 4

Функции дешифратора представлены в таблице 2.19.

Таблица 2.19 – Таблица истинности DC 2 в 4

D 2 , D 1 Q 0 , Q 1 , Q 2 , Q 3 .
2 1 0 1 2 3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1

С учетом стробирующего сигнала уравнения имеют следующий вид:

,

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

Если элементы И в схеме дешифратора (рис. 2.80) заменить на элементы Шеффера (И-НЕ), то получим дешифратор с инверсными выходами, что показывается на выходах кружками. Так как дешифраторы реализуют булевы функции, являющиеся конституэнтами единицы, то любую булеву функцию можно реализовать на базе дешифратора c прямыми выходами и логических схем ИЛИ, а также на базе дешифратора c инверсными выходами и логических схем И-НЕ (рис 2.81).

Рисунок 2.81- Реализация булевой функции y на основе дешифратора с прямыми выходами (a) и инверсными выходами (б)

Дешифраторы можно использовать в качестве демультиплексоров, если V использовать как информационный вход, а D 1 , D 2 - как адресные.

Шифраторы

В условных обозначениях шифраторов используются буквы CD (от слова coder) (рис. 2.82).

Рисунок 2.82 – Условное обозначение шифратора 4 в 2

Таблицей, описывающей функционирование шифратора, является табл. 2,19, с той лишь разницей, что являются входными булевыми переменными, а - выходными булевыми функциями шифратора. Функция шифратора представлена в таблице 2.20.

Таблица 2.20 – Таблица истинности CD

Записав МДНФ для каждой функции выхода, получим следующие уравнения:

Структура шифратора представлена на рис. 2.83.

Рисунок 2.83 – Структура шифратора 4 в 2

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

Уровень представления схемы, состоящей из логических элементов (вентилей), называется логическим .

3 Последовательностная логика

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

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

Состояние выхода триггера определяется элементом памяти, сигналом на его прямом выходе Q . Обычно триггер имеет и инверсный выход , иногда он обозначается Q *.

Рисунок 3.1– Структурная схема триггера

ЗЭ – запоминающий элемент;

КС – комбинационная схема управления;

x 1, ..., x n – информационные входы триггера;

С 1 , С m – синхронизующие входы;

Q , – соответственно прямой и инверсный выходы триггера;

f 1 , f 2 – функции возбуждения ЗЭ.

На рис. 3.2 приведены примеры запоминающих элементов. Они состоят из вентилей И-НЕ или ИЛИ-НЕ с обратными связями.

Рисунок 3.2 – Примеры запоминающих элементов

Классификация триггеров проводится по закону логического функционирования (триггеры типа RS, R*S*, JK, J*K* и другие), по способу записи информации в триггер (асинхронные и синхронные), по способу восприятия триггером тактовых сигналов (управляемые уровнями и управляемые фронтами), по структуре (одноступенчатые и двухступенчатые).

3.1 Асинхронные триггеры

Асинхронные триггеры – триггеры, у которых переход в новое состояние вызывается изменениями информационных входных сигналов. Т.е. без тактирующих или синхронизирующих сигналов.

3.1.1 RS-триггер

Триггером типа RS называется триггер с двумя устойчивыми состояниями равновесия и двумя информационными входами (рис. 3.3). Вход S (Set) служит для установки триггера в «1», вход R (Rеsеt) для установки в «0». Одновременная подача двух активных сигналов на входы R и S запрещена, т.е. R S . Подача двух нулей на входы триггера сохраняет его внутреннее состояние. Активным значением сигнала на входе является уровень 1. Вход в этом случае считается прямым. Если активным значением сигнала на входе является нуль, то такой вход считается инверсным. Обычно инверсный вход обозначается символом звездочки (*). Триггеры с инверсными входами будут рассмотрены далее.

Рисунок 3.3 – Структура и условное обозначение асинхронного RS-триггера

Для полного описания триггера достаточно задать закон его функционирования. Поскольку триггер является элементарным автоматом, то закон его функционирования задается полной таблицей переходов (ПТП) (таблица 3.1), с помощью которой можно построить сокращенную таблицу переходов (таблица 3.2). В таблице t и t Q Q в момент времени t .

Таблица 3.1 – Полная таблица переходов RS -триггера

t t +1
R S Q Q
X
X

Если разбить таблицу 3.1 по две строки сверху, видно, что значения R и S в парах строк одинаковые. Опустив значения столбца , получим сокращенную таблицу переходов (СТП).

Таблица 3.2 – Сокращенная таблица переходов RS -триггера

R S Q (t +1)
Q (t )
X

В таблице 3.3 представлена дополнительная таблица переходов (ДТП). Ее легко получить из ПТП. В первом столбце ДТП записываются входы триггера, в остальных столбцах – все возможные переходы состояний триггера : «0-0», «0-1», «1-0», «1-1». В ПТП прослеживаются все эти переходы и помечаются (в нашем случае красной цифрой). Цифра обозначает номер перехода в ДТП. Затем в соответствии с расставленными метками из ПТП в столбцы ДТП записываются значения, подаваемые на входы R и S на данном переходе.

Таблица 3.3 – Дополнительная таблица переходов RS -триггера

Матрица переходов (МП) это фактически повернутая ДТП (таблица 3.4). Строки ДТП являются столбцами матрицы. Матрица переходов показывает, какие значения сигналов нужно подавать на входы триггера для осуществления указанного перехода состояний Q (t )-Q (t +1). Пары идентичных значений в ячейке ДТП заменяются одним значением в МП. Пары различных значений в ячейке ДТП заменяются одной буквой, например b 1, Так как на переходе «0-0» сигнал на входе R может быть равен или 0, или 1, то его обозначают через неопределенный коэффициент b 1 , . Аналогично для сигнала на входе S для перехода «1-1» ставится b 2 , В различных ячейках МП, где необходимо ставить буквы, должны быть либо различные буквы, либо одна и та же буква, но с различными индексами. Это удобно при синтезе триггеров, чтобы не возникало путаницы. Синтез будет рассмотрен позже.

Таблица 3.4 – Матрица переходов RS-триггера

Q (t )-Q (t +1) R S
0-0 b 1
0-1
1-0
1-1 b 2

Еще одним способом описания триггеров является граф переходов (рис. 3.4). Вершинам соответствуют состояния триггеров, а дугам – переходы между состояниями. Состояние определяется значением выхода Q. Когда Q =0, считается, что триггер находится в состоянии а 0 , когда Q =1, считается, что триггер находится в состоянии а 1 . На дугах записываются условия того или иного переходов.

Рисунок 3.4 – Граф переходов RS -триггера

Для дуги, что выходит из а 0 и входит в а 0 (то есть петли) – для перехода «0-0»: ;

для дуги из а 0 в а 1 – для перехода «0-1»: ;

для дуги из а 1 в а 0 – для перехода «1-0»: ;

для дуги из а 1 в а 1 – для перехода «1-1»: .

Функция переходов триггера в момент t+1 может быть задана с помощью карт Карно (рис. 3.5), которые строятся по полной таблице переходов триггера.

Рисунок 3.5 – Карта Карно для функции переходов RS-триггера

Используя карту Карно, можно найти минимальную КНФ булевой функции для описания функционирования RS -триггера (характеристическую функцию переходов) .

Данное выражение соответствует схеме RS -триггера, изображенного на рис. 3.3.

3.1.2 R *S *-триггер (RS -триггер с инверсными входами)

Триггером типа R *S *-называется триггер с двумя устойчивыми состояниями равновесия и двумя информационными входами (рис. 3.6). Вход S * (Set) служит для установки триггера в «1», вход R * (Rеsеt) для установки в «0». Активным значением сигнала на входе является уровень 0. Вход в этом случае считается инверсным. Инверсный вход обозначается символом звездочки (*). Одновременная подача двух активных сигналов на входы R * и S * запрещена, т.е. R * S * . Подача двух единиц на входы триггера сохраняет его внутреннее состояние.

Рисунок 3.6 – Структура и условное обозначение асинхронного R *S *-триггера

Полная таблица переходов (ПТП) (таблица 3.5), с помощью которой можно построить сокращенную таблицу переходов (таблица 3.6). В таблице t и t +1 – соседние моменты времени, в пределах которых рассматриваются переходы состояний триггера (переходы из состояния Q в момент времени t в состояние Q в момент времени t +1). Обозначается такой переход условно .

Таблица 3.5 – Полная таблица переходов R*S* -триггера

Обратите внимание, что столбец Q (t +1) в сокращенной таблице переходов R*S* -триггера, перевернут относительно того же столбца RS -триггера. Это справедливо для всех одноименных триггеров с прямыми и инверсными входами. Зная СТП триггера с прямыми входами, можно легко получить СТП одноименного триггера с инверсными входами.

В таблице 3.7 представлена дополнительная таблица переходов (ДТП).

Таблица 3.7 – Дополнительная таблица переходов R*S* -триггера

Матрица переходов (МП) представлена в таблице 3.8).

Таблица 3.8 – Матрица переходов R*S*-триггера

Q (t )-Q (t +1) R* S*
0-0 b 1
0-1
1-0
1-1 b 2

Граф переходов представлен на рис. 3.7.

Рисунок 3.7 – Граф переходов R*S* -триггера

Аналитические выражения для условий переходов получают по ДТП.

Для дуги, что выходит из а 0 и входит в а 0 (то есть петли) – для перехода «0-0»: ;

для дуги из а 0 в а 1 – для перехода «0-1»: ;

для дуги из а J (Jarк) служит для установки триггера в «1», вход K (Кill) для установки в «0». Активным значением сигнала на входе является уровень 1. Одновременная подача двух активных сигналов на входы K и J не запрещена, при этом на выходе появляется инверсное значение состояния триггера . Подача двух нулей на входы триггера сохраняет его внутреннее состояние.

Рисунок 3.9 – Условное обозначение асинхронного JK -триггера

Полная таблица переходов (ПТП) (таблица 3.9), с помощью которой можно построить сокращенную таблицу переходов (таблица 3.10).

Таблица 3.9 – Полная таблица переходов JK -триггера

В таблице 3.11 представлена дополнительная таблица переходов.

Таблица 3.11 – Дополнительная таблица переходов JK -триггера

Матрица переходов представлена в таблице 3.12.

Таблица 3.12 – Матрица переходов J K-триггера

3.1.4 J*K* -триггер

Триггером типа J*K* называется триггер с двумя устойчивыми состояниями равновесия и двумя информационными входами (рис. 3.12). Вход J* в «1», вход *K для установки в «0». Активным значением сигнала на входе является уровень 0. Одновременная подача двух активных сигналов на входы K* и J* не запрещена, при этом на выходе появляется инверсное значение состояния триггера . Подача двух единиц на входы триггера сохраняет его внутреннее состояние.

Рисунок 3.12 – Условное обозначение асинхронного J*K* -триггера

Полная таблица переходов (таблица 3.13), с помощью которой можно построить сокращенную таблицу переходов (таблица 3.14).

Таблица 3.13 – Полная таблица переходов J*K* -триггера

Матрица переходов представлена в таблице 3.15.

Таблица 3.15 – Матрица переходов J*K*-триггера

Q (t )-Q (t +1) K* J*
0-0 b 1
0-1 b 2
1-0 b 3
1-1 b 4

3.1.5 D -триггер

Триггером типа D (Delay - задержка)называется триггер с двумя устойчивыми состояниями равновесия и одним информационным входом D (рис. 3.13). Значения, поступающие на вход D, записываются на выход Q, т.е. триггер работает как повторитель.

Куб Карно́ - графический способ минимизации переключательных (булевых) функций, обеспечивающий относительную простоту работы с большими выражениями и устранение потенциальных гонок. Представляет собой операции попарного неполного склеивания и элементарного поглощения . Карты Карно рассматриваются как перестроенная соответствующим образом таблица истинности функции. Карты Карно можно рассматривать как определенную плоскую развертку 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+m – столбцы, где m – выходные переменные.

Инструкция . При вводе с клавиатуры используйте следующие обозначения:

Логическое выражение :

Вывод промежуточных таблиц для таблицы истинности
Построение СКНФ
Построение СДНФ
Построение полинома Жегалкина
Построение карты Вейча-Карно
Минимизация булевой функции
Например, логическое выражение abc+ab~c+a~bc необходимо ввести так: a*b*c+a*b=c+a=b*c
Для ввода данных в виде логической схемы используйте этот сервис .

Правила ввода логической функции

  1. Вместо символа v (дизъюнкция, ИЛИ) используйте знак + .
  2. Перед логической функцией не надо указывать обозначение функции. Например, вместо F(x,y)=(x|y)=(x^y) необходимо ввести просто (x|y)=(x^y) .
  3. Максимальное количество переменных равно 10 .

Проектирование и анализ логических схем ЭВМ ведётся с помощью специального раздела математики - алгебры логики. В алгебре логики можно выделить три основные логические функции: "НЕ" (отрицание), "И" (конъюнкция), "ИЛИ" (дизъюнкция).
Для создания любого логического устройства необходимо определить зависимость каждой из выходных переменных от действующих входных переменных такая зависимость называется переключательной функцией или функцией алгебры логики.
Функция алгебры логики называется полностью определённой если заданы все 2 n её значения, где n – число выходных переменных.
Если определены не все значения, функция называется частично определённой.
Устройство называется логическим, если его состояние описывается с помощью функции алгебры логики.
Для представления функции алгебры логики используется следующие способы:
По алгебраической форме можно построить схему логического устройства, используя логические элементы.


Рисунок1- Схема логического устройства

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

Операция НЕ - логическое отрицание (инверсия)

Логическая операция НЕ применяется к одному аргументу, в качестве которого может быть и простое, и сложное логическое выражение. Результатом операции НЕ является следующее:
  • если исходное выражение истинно, то результат его отрицания будет ложным;
  • если исходное выражение ложно, то результат его отрицания будет истинным.
Для операции отрицания НЕ приняты следующие условные обозначения:
не А, Ā, not A, ¬А, !A
Результат операции отрицания НЕ определяется следующей таблицей истинности:
A не А
0 1
1 0

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

Операция ИЛИ - логическое сложение (дизъюнкция, объединение)

Логическая операция ИЛИ выполняет функцию объединения двух высказываний, в качестве которых может быть и простое, и сложное логическое выражение. Высказывания, являющиеся исходными для логической операции, называют аргументами. Результатом операции ИЛИ является выражение, которое будет истинным тогда и только тогда, когда истинно будет хотя бы одно из исходных выражений.
Применяемые обозначения: А или В, А V В, A or B, A||B.
Результат операции ИЛИ определяется следующей таблицей истинности:
Результат операции ИЛИ истинен, когда истинно А, либо истинно В, либо истинно и А и В одновременно, и ложен тогда, когда аргументы А и В - ложны.

Операция И - логическое умножение (конъюнкция)

Логическая операция И выполняет функцию пересечения двух высказываний (аргументов), в качестве которых может быть и простое, и сложное логическое выражение. Результатом операции И является выражение, которое будет истинным тогда и только тогда, когда истинны оба исходных выражения.
Применяемые обозначения: А и В, А Λ В, A & B, A and B.
Результат операции И определяется следующей таблицей истинности:
A B А и B
0 0 0
0 1 0
1 0 0
1 1 1

Результат операции И истинен тогда и только тогда, когда истинны одновременно высказывания А и В, и ложен во всех остальных случаях.

Операция «ЕСЛИ-ТО» - логическое следование (импликация)

Эта операция связывает два простых логических выражения, из которых первое является условием, а второе - следствием из этого условия.
Применяемые обозначения:
если А, то В; А влечет В; if A then В; А→ В.
Таблица истинности:
A B А → B
0 0 1
0 1 1
1 0 0
1 1 1

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

Операция «А тогда и только тогда, когда В» (эквивалентность, равнозначность)

Применяемое обозначение: А ↔ В, А ~ В.
Таблица истинности:
A B А↔B
0 0 1
0 1 0
1 0 0
1 1 1

Операция «Сложение по модулю 2» (XOR, исключающее или, строгая дизъюнкция)

Применяемое обозначение: А XOR В, А ⊕ В.
Таблица истинности:
A B А⊕B
0 0 0
0 1 1
1 0 1
1 1 0

Результат операции эквивалентность истинен только тогда, когда А и В одновременно истинны или одновременно ложны.

Приоритет логических операций

  • Действия в скобках
  • Инверсия
  • Конъюнкция (&)
  • Дизъюнкция (V), Исключающее ИЛИ (XOR), сумма по модулю 2
  • Импликация (→)
  • Эквивалентность (↔)

Совершенная дизъюнктивная нормальная форма

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

Совершенная конъюнктивная нормальная форма

Совершенная конъюнктивная нормальная форма формулы (СКНФ) это равносильная ей формула, представляющая собой конъюнкцию элементарных дизъюнкций, удовлетворяющая свойствам:
  1. Все элементарные дизъюнкции содержат все переменные, входящие в функцию F(x 1 ,x 2 ,...x n).
  2. Все элементарные дизъюнкции различны.
  3. Каждая элементарная дизъюнкция содержит переменную один раз.
  4. Ни одна элементарная дизъюнкция не содержит переменную и её отрицание.

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

Каждому набору значений переменных по строкам и столбцам соответствует своя ячейка, расположенная на их пересечении. Она заполняется единицей, если на соответствующем наборе функция принимает единичное значение, или нулем при нулевом значении функции (нули обычно не вписываются, а оставляются пустые клетки). Таким образом, отмеченные ячейки соответствуют ыицтермам, а неотмеченные - макстермам канонических форм. Например, на рис. 2.2,а показана карта Карно для функцин, заданной таблицей соответствия из рассмотренного в § 2.7 примере.

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

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

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

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

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

В качестве примера на рис. 2.4 показана функция, заданная таблицей соответствия:

Сначала строятся простейшие покрытия на каждой карте раздельно, с которых списываются две функции: для левой карты и для правой карты .

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

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

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

Для получения минимальной формы инверсии функции необходимо найти на карте Карно минимальное покрытие совокупности нулевых ячеек и описать соответствующую формулу по указанному выше правилу. Так, для функции на рис. имеются два таких покрытия (рис. 2.5), отличающихся только одной импликантой. Если требуется найти минимальную форму как произведения макстермов, то в соответствии с изложенным в § 2.4 правилом достаточно в выражении для инверсной функции заменить все логические операции на дуальные, а вхождения переменных - на инверсные: . Эти же формы можно записать на основе принципа дуальности непосредственно по минимальным покрытиям нулевых ячеек карты Карно. Для этого достаточно каждую группу ячеек идентифицировать как сумму переменных при инверсной разметке карты Карно, т. е. считая отмеченные значения переменных нулевыми.

Лекция №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. Основной метод минимизации логических функций?