Перейти к содержанию

Безразличные наборы (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.

Источники

  1. 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
  2. E. J. McCluskey. Minimization of Boolean functions. The Bell System Technical Journal, 1956, vol. 35, no. 6, p. 1417 — аннотация и разд. 1: если для некоторых комбинаций выход не задан, например потому что они не могут возникнуть, в таблицу ставят d; значения 0 или 1 для этих строк выбирают так, чтобы упростить схему; метод отдельно учитывает члены, включаемые «только для удобства проектировщика»
  3. 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

Нашли ошибку?