Простейшие логические цепи. Часть 1: общая информация о логических цепях и простые логические модули

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

    Итак, начнём.

    Что такое комбинационная логическая цепь?


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

    Характеристикой КЛЦ является отсутствие памяти. Тоесть не имеют значения сигналы, ранее поступавшие в цепь. («Важен текущий момент», – так сказал один из героев фильма «21».)

    Математическая модель КЛЦ


    Для лучшего понимания, анализа и изображения сложных цепей используются их несколько упрощённые математические модели.
    В большинстве моделей во время разработки КЛЦ не принимается во внимание время взаимодействия элементов цепи. Поэтому мы будем считать, что выходные сигналы цепи моментально реагируют на изменения во входящих сигналах. Также, вместо функции сигнала от времени x(t), который может менять свою суть в зависимости от используемой технологии (например, 0 и 5 вольт в TTL; 0 и 3.1 вольт в CMOS), мы будем использовать логическую функцию x, которая может принимать значения 0 и 1.

    Описание работы КЛЦ


    Для описания работы КЛЦ используется так называемая таблица истинности. Эта таблица указывает значения выходных сигналов при определённых значениях входящих сигналов. Это может выглядеть так:



    В таблице истинности значения каждого из сигналов располагаются в колонках, а ряды обозначают соответствия между сигналами.

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

    Допустим, что у нас есть водонапорная башня. Чтобы создавать необходимый напор в тробопроводной системе, в башне круглые сутки должен находиться некий объём воды. Но нельзя всё время набирать воду в башню – она не безразмерна, да и элекроэнергия недешёвая. Нам нужно создать контроллер, который будет включать и выключать подачу воды в башню в зависимости от нескольких показателей.



    На картинке показаны несколько датчиков:
    X – время суток, где 1 – это день, а 0 – ночь (ночью электроэнергия дешевле);
    Y и Z – датчики влажности, для них 1 – есть вода, а 0 – сухо.

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

    Таблицы истинности для данного случая будут выглядеть вот так:



    а) мы просто перечисляем все возможные сочетания показаний X, Y и Z;
    b) смотрим самые простые варианты: если и Y, и Z имеют значение 0, то это значит, что воды нет совсем, поэтому W нужно включить, и без разницы, ночь ли сейчас или день. Если же и Y и Z – имеют значение 1, то это значит, что резервуар полный, соответственно W нужно выключить;
    c) теперь об экономии: если Z=1, а Y=0, то уровень воды в баке – между двумя датчиками. При этом, если это происходит ночью (X=0), то стоит набрать воды до максимума (W=1), а днём (X=1( – оставить всё как есть (W=0);
    d) без невероятного никуда: есть шанс, что Y будет иметь значение 1 при Z=0. Тогда, по логике, следовало бы отправить сообщение о неисправности в системе, но мы просто покажем, что такого просто не может быть.

    Простые логические модули


    Рассмотрим самые простые КЛЦ: модули Not-1, And-2 и Or-2.

    Not-1


    Это – самая простая КЛЦ, с одним входом и одним выходом. Функция этого модуля заключается в выводе значения, обратного входу. Так как вход один, то вариантов выхода всего два:



    And-2


    Этот модуль уже немного сложнее. У него два входа и один выход. Функция модуля And-2 заключается в следующем: выход будет иметь значение 1 только если оба входа также равны единице:



    Or-2


    Теперь ещё один модуль с двумя входами и одим выходом. Только теперь на выходе 1 будет если хотя бы один из входов имеет значение 1:



    Продолжение следует.


    На днях напишу ещё несколько статей – на очереди мультиплексоры, half- и full-adder'ы, а также всевозможные сочетания модулей.
    Спасибо за внимание.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 28
    • +2
      А у нас в КПИ это называлось комбинационными схемами. И раз уж вы их затронули, вы должны бы были написать про карты Карно, и прочие алгоритмы минимизации логических выражений.

      P. S. А может про триггеры и регистры написать, и лишь потом трогать мультиплексоры?
      • +1
        да, это хорошая идея. воплощу в следующей статье.

        P. S. вполне возможно.
        • +1
          Карты Карно уже вполне хорошо было описаны — habrahabr.ru/blogs/easyelectronics/93296/
          • 0
            я постараюсь изложить это всё немного попроще
            • 0
              На самом деле тогда главное описать где и как это применяется на практике, иначе для 9 из 10 людей это остается за кадром и интерес тут же пропадает.
              • 0
                да, вы правы
                постараюсь показать практическое применение
        • 0
          Мультиплексоры — комбинационные схемы, так что их логичнее с комбинационными рассматривать. А триггеры попозже. Автору тоже дам совет: вместо слов half- и full-adder'ы использовать слово «сумматоры» от слова «сумма». Чёт меня сегодня на советы потянуло. Казалсь бы причем здесь Путин?

          А где это КПИ?
          • +1
            КПИ — Киевский Политехнический Институт.
        • 0
          А где решение задачи?
          • 0
            таблица d) – это и есть решение
            • 0
              Я имел в виду в логических элементах, которые реализуют такую логику.
        • +3
          хорошая статья, но возможно стоит использовать более общеупотребительные названия элементов — инвертор, сумматор вместо Not-1, And-2 и Or-2 чтобы не возникало разночтений
        • +2
          Недавно заигрался в игрушку minecraft.
          В ней реализовано некое подобие логических цепей со своими правилами (http://ru.minecraftwiki.net/Справка_по_элементам_схем_из_красного_камня).
          Пришлось вспоминать всё и пробовать на практике.
          • 0
            Да, в майнкрафте действительно интересно работать с логическими цепями и создавать самые разные элементы. Там даже умудрялись собирать из этого красного камня действующий восьмибитный процессор.
          • 0
            Еще было бы интересно увидеть, как все это происходит на самом нижнем уровне, т.е. как все реализовано в виде электронных компонентов.
            Начало хорошее, продолжайте пожалуйста!
            • 0
              Поддерживаю, было бы интересно.
              • +1
                Есть много отличных книг по схемотехнике, читайте. В статье вам несколько лет курсов электротехнике, физике и схемотехнике не объяснят.
          • 0
            > Если же и Y и Z – имеют значение 1, то это значит, что резервуар полный, соответственно W нежно выключить :D
            Вообще интересно, обязательно прочту продолжение.
          • +2
            Чтобы было интереснее, рекомендую вот эту игру.
            • 0
              Это очень хардкорная игра! Там нет логических элементов в привычном понимании, только N-канальные и P-канальные транзисторы, и то, их еще нужно нарисовать.
            • 0
              «соответственно W нЕжно выключить» нежнее, ещё нежнее =)
              • 0
                Думаю, что элементам надо было дописать другие имена: логическое сложение, логическое умножение. Тому, кто в схемотехнике ничего не понимает, будет сложнее воспринимать, например, «выход будет иметь значение 1 только если оба входа также равны единице». Гораздо информативней звучит «выход равен произведению сигналов».
                • 0
                  В таком случае, я бы в скобках еще указывал общепринятые мнемоники (AND, OR и пр.). Во всяческих упражнениях по алгебре логики используются они, наряду с image.
                  Причем последние, насколько я успел заметить, встречаются в русскоязычной литературе чаще, хотя могу ошибаться.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.