Описание комбинационных схем без таблиц истинности

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

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

рис.1

рис. 1

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

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

360b7b91348ffc59c49f25d6586d8c2d.png

Первый уровень абстракции это когда мы отрезаем всё что ниже 0.5 вольта
и говорим что это логический 0, отрезаем всё что выше 2.5 вольта
и говорим что это логическая 1.

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

Это удобно только при небольшом количестве входов (попробуйте начертить такую таблицу для 8-входовой схемы XOR, используемой при расчете бита четности байта, посыпьте голову пеплом и возвращайтесь к этой статье:))

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

Сигнал это не 0 и не 1, а соответствие уровня виду входа или выхода логического элемента.
Будем говорить, что на прямом входе есть сигнал, если тем логическая 1,
а на инверсном, если там логический 0 (то же и для выходов).

Наличие сигнала отмечаем на схеме буквой «с», отсутствие — буквой «н».
Логический уровень отмечаем цветом »1» — красный,»0» — синий.
Такой подход позволяет полностью отказаться от таблиц истинности.

Теперь можно вернуться к первому рисунку. На правом элементе мы видим сигналы разной полярности на всех входах и сигнал на выходе. Аналогичная маркировка имеется и на других элементах.

Переход к использованию сигналов позволяет сформулировать краткие (однострочные) их описания вне зависимости от количества входов.

Описание комбинационных схем в терминах сигналов:

на выходе инвертора (повторителя) есть сигнал, если есть сигнал на входе:

6af41c54e2b3fd66f82a77e72b8d1ddb.png

на выходе схемы «И» есть сигнал, если есть сигналы на всех входах (именно эта строчка описывает каждый элемент на первом рисунке):

719fb698b7349ff528f29c6e174b5a9e.png

на выходе схемы «ИЛИ» есть сигнал, если есть сигнал хотя бы на одном входе:

7be7f8dee48680411bbe62b99952520e.png

на выходе схемы «XOR» есть сигнал, если сигналы есть на нечетном числе входов:

2e4842ff3ca181959b5619dca119db39.png

схема дешифратора (DC): сигнал появляется на выходе, номер которого задан числом на входе:

3c5cc291c6420ac716ab616a7e2dfda3.png

на выходах шифратора (CD) формируется номер входа, на котором есть сигнал:

3c284a3cc317d4c2637317c699be3785.png

схема МХ (мультиплексор): выход повторяет вход, номер которого задан числом на адресных входах:

cae599a45315034633618079cedac3f1.png

DM (демультиплексор) выход, номер которого задан числом на адресе повторяет вход:

3dc059b7318f9f56be9bfc979c7f02bf.png

Аналогичным образом можно описать и другие комбинационные схемы. При этом ни количество входов ни их вид (прямой, инверсный) не имеют значение. Исходя из подобного описания совершенно очевидно, в частности, доказательство теоремы де Моргана.
Человеку гораздо проще оперировать одним предложением чем объемными таблицами истинности.

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

© Habrahabr.ru