Безразличные наборы (don't care)
Не все комбинации входов встречаются на самом деле: четырёхбитный двоично-десятичный код никогда не принимает значения 1010–1111. Для таких входов выход можно назначить любым — и выбрать его так, чтобы схема стала проще.
Обновлено Редакция GAW
Безразличные наборы (don't care, X, d) — комбинации входов логической функции, для которых значение выхода не задано: они либо не встречаются в работе схемы, либо их результат не важен. При минимизации такому набору можно приписать 0 или 1 — как выгоднее для упрощения.
Откуда берутся
Классический пример Kuphaldt — двоично-десятичный код. Четыре бита BCD кодируют цифры 0–9, а шесть комбинаций 1010, 1011, 1100, 1101, 1110 и 1111 никогда не появляются. Схема, которая принимает BCD, — например, дешифратор для семисегментного индикатора — может делать на них что угодно. Мак-Класки в статье 1956 года описывает то же: если выход для некоторых строк таблицы не задан, туда ставят d, а значения выбирают ради упрощения схемы.
Как использовать при минимизации
На карте Карно безразличные клетки помечают звёздочкой или X. Правила Kuphaldt:
- безразличную клетку можно считать единицей, нулём или не учитывать;
- включать её в группу стоит, только если группа от этого становится больше;
- покрывать все безразличные клетки не нужно.
Пример из учебника: выход должен быть равен 1 при ABC = 101, а наборы 110 и 111 не встречаются. Без них минимальная форма — AB'C, три литерала. Если объединить единицу 101 с безразличной клеткой 111, получится группа из двух клеток и Out = AC — на один литерал меньше. Табличный метод Куайна — Мак-Класки учитывает безразличные наборы при склейке, но не требует покрывать их в итоговой сумме.
Цена упрощения
Безразличный набор получает конкретное значение — то, которое выпало при минимизации. Если «невозможная» комбинация всё-таки возникнет, схема на неё отреагирует. Производители дешифраторов поэтому доопределяют такие коды явно: по таблице функций 74LS47 входы 10–14 выводят особые символы, а код 15 гасит все сегменты. Таблицы и символы обоих вариантов собраны в дешифраторе семисегментного индикатора, а с безразличными клетками можно поэкспериментировать в карте Карно онлайн.
Частые вопросы
Как обозначают безразличные наборы?
По-разному: X, d, звёздочкой или дефисом. Kuphaldt на картах Карно ставит звёздочку, Мак-Класки в таблице комбинаций — букву d, в списке минтермов их часто перечисляют отдельно, например f = Σm(1, 3, 5) + d(6, 7). Смысл один: выход на этих входах может быть любым.
Обязательно ли включать безразличные наборы в группы на карте Карно?
Нет. Их используют только там, где они позволяют сделать группу больше, а значит, произведение короче. Остальные безразличные клетки просто не покрывают — фактически им назначается ноль. Kuphaldt подчёркивает, что группировать все звёздочки не требуется.
Чем опасны безразличные наборы в реальной схеме?
Тем, что «невозможная» комбинация иногда всё же возникает — при сбое, включении питания или ошибке в соседней схеме. Тогда выход примет то значение, которое досталось безразличному набору при минимизации. Если такая реакция недопустима, набор надо доопределить явно, например гашением индикатора, как у дешифратора 74LS47 для кода 15.
Источники
- Kuphaldt T. R. Lessons In Electric Circuits, Vol. IV — Digital, ch. 8 «Karnaugh Mapping», разд. «Don't care cells in the Karnaugh map» (CC BY) — для BCD коды 1010, 1011, 1100, 1101, 1110, 1111 никогда не встречаются и являются безразличными; на карте их отмечают звёздочкой; при группировке их считают 1 или 0 или игнорируют — использовать, только если это увеличивает группу, группировать все не обязательно; пример: выход 1 при ABC = 101 в диапазоне 000–101, наборы 110 и 111 безразличны — без них Out = AB'C, с ними Out = AC
- E. J. McCluskey. Minimization of Boolean functions. The Bell System Technical Journal, 1956, vol. 35, no. 6, p. 1417 — аннотация и разд. 1: если для некоторых комбинаций выход не задан, например потому что они не могут возникнуть, в таблицу ставят d; значения 0 или 1 для этих строк выбирают так, чтобы упростить схему; метод отдельно учитывает члены, включаемые «только для удобства проектировщика»
- Texas Instruments. SN5446A, '47A, '48, SN54LS47, 'LS48, 'LS49 BCD-to-Seven-Segment Decoders/Drivers (SDLS111, March 1974, revised March 1988) — с. 3: изображения для входов выше 9 — особые символы для контроля входных условий; таблица функций T1: коды 10–14 зажигают сегменты особых символов, при коде 15 все выходы OFF
Нашли ошибку?
Смотрите также
- Карта КарноМинимизация логических функций группировкой клеток
- Карта КарноМинимальная ДНФ и КНФ, группы клеток на карте
- Таблица истинностиВсе комбинации входов логической схемы и выход для каждой
- Двоично-десятичный код (BCD)Каждая десятичная цифра — в своих четырёх битах
- Метод Куайна — Мак-КласкиТабличный поиск простых импликант и минимального покрытия
- Коды семисегментного индикатораСегменты, hex-коды для анода и катода, массив на C, дешифраторы