bitGateLab Digital · Обучение
Русский
Открыть симулятор

Обучение › Тема 4

Карты Карно для 2, 3 и 4 переменных с безразличными условиями X

7 мин чтения · Команда bitGateLab

Упрощение с помощью булевой алгебры работает, но всё зависит от того, «увидите» ли вы, какой закон применить. Карта Карно превращает этот поиск в наглядное упражнение: таблица истинности размещается на сетке, в которой соседние клетки различаются только одной переменной, и упрощение сводится к обведению групп единиц. Здесь вы научитесь строить карты для 2, 3 и 4 переменных, правильно объединять клетки (включая края, которые «замыкаются» друг на друга) и пользоваться безразличными условиями.

Идея: соседние клетки различаются одной переменной

Закон склеивания гласит, что AB + AB = A: два члена, различающиеся только одной переменной, сливаются, и эта переменная исчезает. Карта Карно располагает минтермы так, чтобы любые две клетки с общей стороной удовлетворяли этому условию. Для этого заголовки строк и столбцов идут не в двоичном порядке 00, 01, 10, 11, а в коде Грея: 00, 01, 11, 10. Между двумя соседними значениями меняется только один бит — в том числе между последним и первым (10 и 00). Поэтому карта ведёт себя так, будто её противоположные края склеены.

Карты для 2 и 3 переменных

В карте двух переменных 4 клетки: A — по строкам, B — по столбцам. В карте трёх переменных 8 клеток: A — по строкам, BC — по столбцам, в порядке кода Грея. Номер в каждой клетке показывает, какому минтерму она соответствует:

A \ BC00011110
0m0m1m3m2
1m4m5m7m6

Обратите внимание, что m3 и m2 стоят именно в таком порядке: это следствие кода Грея и причина множества ошибок при заполнении карты вручную.

Правила объединения в группы

Чтобы прочитать группу, проверьте каждую переменную: если она сохраняет одно и то же значение во всех клетках группы, она входит в член (без черты, если равна 1, и с чертой, если равна 0); если меняется — исключается.

Пример 1: три переменные. Упростите F(A, B, C) = Σm(1, 3, 4, 5, 7).

A \ BC00011110
00110
11110
  1. Столбцы 01 и 11 заполнены целиком: это группа из 4 клеток (m1, m3, m5, m7). В ней A меняется, B меняется, а C всегда равна 1. Член: C.
  2. Остаётся m4. Он объединяется с m5 (сосед справа): A = 1, B = 0 в обеих клетках, C меняется. Член: AB.
  3. F = C + AB.

Проверьте m6 (110): C = 0 и AB = 0, значит, F = 0, как и на карте.

Карта для 4 переменных и соседство через края

При четырёх переменных в карте 16 клеток: AB — по строкам, CD — по столбцам, и то и другое в порядке кода Грея.

AB \ CD00011110
00m0m1m3m2
01m4m5m7m6
11m12m13m15m14
10m8m9m11m10

Левый столбец соседствует с правым, а верхняя строка — с нижней. Следовательно, четыре угла (m0, m2, m8, m10) образуют допустимую группу из 4 клеток: во всех них B = 0 и D = 0, поэтому группа читается как BD.

Пример 2: группы, переходящие через края. Упростите F(A, B, C, D) = Σm(0, 1, 2, 5, 8, 9, 10).

AB \ CD00011110
001101
010100
110000
101101
  1. m0, m1, m8, m9: столбцы 00 и 01 в верхней и нижней строках (соседи через край). B = 0 и C = 0. Член: BC.
  2. m0, m2, m8, m10: четыре угла. Член: BD.
  3. Остаётся m5 (0101). Его лучший сосед со значением 1 — m1 (0001): A = 0, C = 0, D = 1, а B меняется. Член: ACD.
  4. F = BC + BD + ACD.

От 7 минтермов по 4 литерала (28 литералов) вы пришли к 3 членам, в которых всего 7 литералов.

Безразличные условия (X)

Иногда некоторые комбинации входов никогда не возникают или значение выхода для них ни на что не влияет. Например, в двоично-десятичной цифре (BCD) кодов от 1010 до 1111 не существует. В таких строках пишут X (по-английски это называется don't care) и перечисляют их отдельно как d(...). При объединении каждую X можно принять за 1, если это помогает получить группу побольше, или не учитывать, если не помогает. Покрывать X никогда не обязательно.

Пример 3: с безразличными условиями X. Упростите F(A, B, C, D) = Σm(1, 3, 7, 11, 15) + d(0, 2, 5).

AB \ CD00011110
00X11X
010X10
110010
100010
  1. Столбец CD = 11 заполнен целиком (m3, m7, m15, m11): член CD.
  2. Не покрыт m1. Если считать X в клетках m0 и m2 единицами, вся верхняя строка образует группу из 4 клеток: член AB.
  3. F = CD + AB.

Есть и другое, ничуть не худшее решение: взять X в клетке m5 и объединить m1, m3, m5, m7, что даёт AD. Тогда F = CD + AD. В обоих решениях 2 члена и 4 литерала, и оба совпадают во всех строках, которые действительно важны. То, что у функции больше одной минимальной формы, — обычное дело.

Без X минтерм m1 можно было бы объединить только с m3, и получилось бы ABD — на один литерал больше. Безразличные условия — это бесплатная экономия: не упускайте её.

Типичные ошибки

Попробуйте в симуляторе

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

  1. Создайте функцию четырёх переменных и введите единицы из примера 2.
  2. Сначала объедините клетки сами на бумаге и запишите свой результат.
  3. Посмотрите, какие группы отмечает карта и какое выражение получается; если оно отличается от вашего, выясните, какая из групп не была максимальной.
  4. Введите пример 3, отметив клетки 0, 2 и 5 как X, и посмотрите, как меняется упрощение, если эти X убрать.
  5. Преобразуйте результат в схему и переключайте входы, чтобы убедиться, что он совпадает с таблицей.

Упражнения

  1. Упростите F(A, B, C) = Σm(0, 2, 4, 6).
    Ответ

    Столбцы BC = 00 и BC = 10 соседствуют через край и заполнены целиком. Во всех четырёх клетках C = 0: F = C.

  2. Упростите F(A, B, C, D) = Σm(0, 2, 5, 7, 8, 10, 13, 15).
    Ответ

    Углы: BD. Центральный блок m5, m7, m13, m15: BD. F = BD + BD, то есть XNOR от B и D.

  3. Упростите F(A, B, C, D) = Σm(4, 5, 6, 7, 12, 13, 14, 15).
    Ответ

    Строки AB = 01 и AB = 11 образуют группу из 8 клеток; только B остаётся равной 1. F = B.

  4. Двоично-десятичная цифра BCD (A — старший бит) должна включать выход, когда её значение равно 5 или больше. Упростите F = Σm(5, 6, 7, 8, 9) + d(10, 11, 12, 13, 14, 15).
    Ответ

    С учётом X строки AB = 11 и AB = 10 образуют группу из 8 клеток: A. Блок m5, m7, m13, m15 даёт BD, а блок m6, m7, m14, m15 даёт BC. F = A + BD + BC = A + B(C + D).

Когда переменных больше четырёх-пяти, карту становится трудно читать; для таких случаев есть табличная процедура — метод Куайна — Мак-Класки.