При начальном изучении комбинационных логических схем принято использовать таблицы истинности. Это правильно, но при большом количестве входов и использовании инверторов быстро становится неудобным. Мы предлагаем альтернативный способ описания, делающий прозрачным смысл схем.
Для примера рассмотрим несколько вариантов схем:
Какие различия есть между изображенными элементами? Строить для каждого таблицу истинности, скучно, поэтому сразу дадим ответ: никаких:). Все они реализуют логическое И и описываются одной строчкой (смотри ниже).
Рассмотрим реальное напряжение, которое имеется на шинах логических схем. Оно имеет
вид безобразный и ужасный:)
Первый уровень абстракции это когда мы отрезаем всё что ниже 0.5 вольта
и говорим что это логический 0, отрезаем всё что выше 2.5 вольта
и говорим что это логическая 1.
Он используется в большинстве учебников по цифровой технике и позволяет, в частности, строить всякого рода таблицы истинности, удобные при конструировании и оптимизации сложных логических схем.
Это удобно только при небольшом количестве входов (попробуйте начертить такую таблицу для 8-входовой схемы XOR, используемой при расчете бита четности байта, посыпьте голову пеплом и возвращайтесь к этой статье:))
Мы рассматриваем следующий уровень абстракции, а именно переходим к понятию логического сигнала.
Сигнал это не 0 и не 1, а соответствие уровня виду входа или выхода логического элемента.
Будем говорить, что на прямом входе есть сигнал, если тем логическая 1,
а на инверсном, если там логический 0 (то же и для выходов).
Наличие сигнала отмечаем на схеме буквой «с», отсутствие — буквой «н».
Логический уровень отмечаем цветом «1» — красный, «0» — синий.
Такой подход позволяет полностью отказаться от таблиц истинности.
Теперь можно вернуться к первому рисунку. На правом элементе мы видим сигналы разной полярности на всех входах и сигнал на выходе. Аналогичная маркировка имеется и на других элементах.
Переход к использованию сигналов позволяет сформулировать краткие(однострочные) их описания вне зависимости от количества входов.
Описание комбинационных схем в терминах сигналов:
на выходе инвертора (повторителя) есть сигнал, если есть сигнал на входе:
на выходе схемы «И» есть сигнал, если есть сигналы на всех входах (именно эта строчка описывает каждый элемент на первом рисунке):
на выходе схемы «ИЛИ» есть сигнал, если есть сигнал хотя бы на одном входе:
на выходе схемы «XOR» есть сигнал, если сигналы есть на нечетном числе входов:
схема дешифратора (DC): сигнал появляется на выходе, номер которого задан числом на входе:
на выходах шифратора(CD) формируется номер входа, на котором есть сигнал:
схема МХ (мультиплексор): выход повторяет вход, номер которого задан числом на адресных входах:
DM (демультиплексор) выход, номер которого задан числом на адресе повторяет вход:
Аналогичным образом можно описать и другие комбинационные схемы. При этом ни количество входов ни их вид (прямой, инверсный) не имеют значение. Исходя из подобного описания совершенно очевидно, в частности, доказательство теоремы де Моргана.
Человеку гораздо проще оперировать одним предложением чем объемными таблицами истинности.
Для схем с устойчивыми состояниями (триггеров, счетчиков и т. п.) набор сигналов на входах
увеличивается до 4 (добавляем фронты), сохраняя прозрачность описания, но это уже тема другого поста:)
Комментарии (9)
lolikandr
29.08.2024 05:28+3Мне больше нравится исходная формулировка "В схеме «И» на выходе 1 только тогда, когда на всех входах 1". А уж проинвертировать вход или выход это вообще просто. Нет никакой необходимости вводить новое понятие "есть сигнал".
CitizenOfDreams
29.08.2024 05:28Нет никакой необходимости вводить новое понятие "есть сигнал".
При работе с реальными схемами как раз удобнее мыслить в терминах [прямых и инверсных] сигналов, а не нулей и единиц.
SIISII
29.08.2024 05:28На уровне принципиальных схем -- да. На уровне функциональных -- нет, там удобней логическое наличие/отсутствие сигнала, а не конкретные логические уровни. Сейчас-то всё пишут на языках (VHDL, Verilog и иже с ними), а в эпоху ручной "рассыпухи" было весьма актуально.
unreal_undead2
29.08.2024 05:28+5Насколько вижу, цвет и С/Н практически дублируют друг друга, и одна картинка описывает только одно сочетание входных/выходных сигналов - понять по ней, как что будет на выходе при других входных сигналах, невозможно.
nv13
29.08.2024 05:28+3На выходе инвертора есть сигнал когда на входе его нет, и наоборот.
Переходные процессы в комбинационных схемах имеют место быть, именно поэтому появляются всякие триггеры, буферы, и синхронизации.
Цветовая маркировка синий-красный, если она не на карте Генштаба, может быть представлена енамом, и результат будет тот же 0, 1
От смены названий сущностей ни они сами функционально, ни их поведение не меняется.
Бред какой то, в общем
evgenyspace
29.08.2024 05:28Двоичная комбинационная логика сводится к алгебре над полем GF2. Это значит, что комбинационные схемы описываются алгебраическими функциями. Переход от функций к таблицам значений, и наоборот, осуществляется через преобразование Фурье над конечными полями, имеющее сложность O(N log(N))
CitizenOfDreams
Ну... э... да. По определению. А в чем откровение-то? Или вы до этого, увидев на схеме такой элемент, рисовали для него таблицу истинности, чтобы узнать, что у него должно быть на выходе?