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

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

рис.1
рис.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии (9)


  1. CitizenOfDreams
    29.08.2024 05:28
    +4

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

    Ну... э... да. По определению. А в чем откровение-то? Или вы до этого, увидев на схеме такой элемент, рисовали для него таблицу истинности, чтобы узнать, что у него должно быть на выходе?


  1. lolikandr
    29.08.2024 05:28
    +3

    Мне больше нравится исходная формулировка "В схеме «И» на выходе 1 только тогда, когда на всех входах 1". А уж проинвертировать вход или выход это вообще просто. Нет никакой необходимости вводить новое понятие "есть сигнал".


    1. CitizenOfDreams
      29.08.2024 05:28

      Нет никакой необходимости вводить новое понятие "есть сигнал".

      При работе с реальными схемами как раз удобнее мыслить в терминах [прямых и инверсных] сигналов, а не нулей и единиц.


      1. SIISII
        29.08.2024 05:28

        На уровне принципиальных схем -- да. На уровне функциональных -- нет, там удобней логическое наличие/отсутствие сигнала, а не конкретные логические уровни. Сейчас-то всё пишут на языках (VHDL, Verilog и иже с ними), а в эпоху ручной "рассыпухи" было весьма актуально.


  1. nerudo
    29.08.2024 05:28
    +1

    Альтернативный вид таблиц истинности - логические функции. Точка.


  1. unreal_undead2
    29.08.2024 05:28
    +5

    Насколько вижу, цвет и С/Н практически дублируют друг друга, и одна картинка описывает только одно сочетание входных/выходных сигналов - понять по ней, как что будет на выходе при других входных сигналах, невозможно.


  1. nv13
    29.08.2024 05:28
    +3

    На выходе инвертора есть сигнал когда на входе его нет, и наоборот.

    Переходные процессы в комбинационных схемах имеют место быть, именно поэтому появляются всякие триггеры, буферы, и синхронизации.

    Цветовая маркировка синий-красный, если она не на карте Генштаба, может быть представлена енамом, и результат будет тот же 0, 1

    От смены названий сущностей ни они сами функционально, ни их поведение не меняется.

    Бред какой то, в общем


    1. anonymous
      29.08.2024 05:28

      НЛО прилетело и опубликовало эту надпись здесь


  1. evgenyspace
    29.08.2024 05:28

    Двоичная комбинационная логика сводится к алгебре над полем GF2. Это значит, что комбинационные схемы описываются алгебраическими функциями. Переход от функций к таблицам значений, и наоборот, осуществляется через преобразование Фурье над конечными полями, имеющее сложность O(N log(N))