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

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

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

    Правила соединения цепей и их компонентов



    В прошлой статье мы познакомились с такими логическими модулями, как Not-1 (логическое отрицание, !A), Or-2 (логическая сумма, AvB) и And-2 (логическое умножение, A^B), но ни слова не было сказано о том, как соединять между собой эти простейшие комбинационные логические цепи (КЛЦ, они же – комбинационные схемы).

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

    1. Не соединяйте два выхода напрямую. Это может привести к конфликту сигналов.



    2. Если у логического модудя два входа, они оба должны иметь значение. Если неизвестен сигнал на одном из входов, то скорее всего не получится узнать значение исходящего сигнала.



    3. Не должно быть циклов. Эффект может быть любым – от нестабильности работы цепи до её неспособности функционировать.



    Анализ логических схем



    Для упрощения анализа цепей мы будем использовать некоторые условные обозначения. Например:



    Как видите, определённый набор элементов изображается с помощью одного-единственного модуля.

    Анализ цепи из 6-8 элементов



    Возьмём любую сделанную по правилам комбинационную схему. Например вот эту:



    Если вам по каким-то причинам не нравится моя схема, нарисуйте свою :-)


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

    Анализ по строкам


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



    Таким способом удобно анализировать небольшие схемы с одним-двумя входами, потому что не обязательно строить таблицу истинности.

    Для таких цепей, как выбранная нами ранее, лучше всё-таки нарисовать эту самую таблицу и вписывать туда найденные значения. Вот так, например:



    Анализ по столбцам


    Суть этого метода – поочерёдно, с помощью логических выражений, найти значения для всех частей цепи, и только потом вычислить результат для выходов цепи.



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



    Теперь можно сравнить результаты, полученные с помощью двух методов. Если они совпадают, то это значит, что либо всё сделано правильно, либо мы допустили больше одной ошибки ( :-D ).

    На данный момент всё.

    В следующей статье мы начнём создавать свои логические схемы по заданным параметрам.
    Продолжение будет очень скоро.
    Спасибо за внимание, и хороших всем выходных!
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 33
    • +3
      Спасибо! Продолжайте писать на эту тему, очень интересно и доходчиво.
      • +5
        Всем, кто интересуется логическими схемами, наверняка понравится вот эта штука: logic.ly/demo/
        Тут можно драг-н-дропом нарисовать схемы из статьи и посмотреть результат в виде мигающих лампочек :)
        • 0
          Спасибо.
          Помню раньше на ямахах была игрушка, там на экране были логические цепи и надо было, используя переключатели и этим передвигая задвижки, опустить шарик сверху вниз.
          Нет ссылки на что-то подобное?
          • 0
            спасибо! очень классная штука
            • 0
              А еще есть Proteus и Multisim :)
          • 0
            поправьте тему у вас "правила модулей между собой", а должно наверно быть «правила соединений модулей»
          • 0
            И еще момент: " два исходящих проводника" корректней заменить на «два выхода»
            И подчеркнуть главнейшее правило: два выхода никогда не должны быть соединены напрямую, не зависимо от логики работы.
            • +1
              Не надо так категорично. Есть выходы с открытым коллектором, которые как раз так и соединяют: множество выходов к одной общей шине. Схема называется "монтажное или" и в некоторых случаях оказывается очень полезной.
              • +1
                да, но это используется при работе с шинами. а два выхода (именно проводника) соединять не стоит.
                • +1
                  Я имел ввиду именно логические выходы, о которых и идёт речь в контексте статьи.
                  А выходы с открытым коллектором не применяются в стандартной логике, только в более узкоспециализированных вариантах.
              • +10
                Это только мне привычнее такие обозначения?

                • +3
                  Не только вам, но это наши обозначения, а в статье — западные. Точной классификации не помню…
                  • –1
                    Не знаю на сколько они западные, в моем вузе читали курс «Системы автоматизированного управления» и там использовалась книга собственного производства датированная 2002 годом, если не ошибаюсь.
                    • +4
                      Обозначения в статье действительно западные. Просто после перестройки народ стал рисовать кто во что горазд. Ну и преподавать, видимо, тоже :)
                      Я не в отрицательном смысле, а просто как факт.
                      • 0
                        Спасибо за объяснение. Я как бы и не спорил с автором предыдущего комментария, и честно признаться не знал реально чьи это обозначения, просто вместе со всем этим не ожидал, что кафедра окажется настолько прогрессивной.
                  • 0
                    А где же стрелка Пирса и штрих Шеффера? :)
                    • 0
                      Да, это они самые. Их еще можно встретить в наших «динозаврах» на вроде К155ЛА3 и др.
                    • +1
                      Мне также не привычно и нарисованное вами ближе ко мне, но в ваших рисунках выход по середине, а я привык, что выход нарисован на уровне первого входа. По крайней мере когда читал схемы отечественных приборов было так
                      • 0
                        Надо возрождать традицию рисовать в этих обозначениях, я считаю.
                        • 0
                          я немного с вами не согласен.
                          я считаю, что нужно изучать общепринятые мировые стандарты.
                          но всё-таки сделаю табличку соответствий западных и российских обозначений в следующем посте.
                          • +2
                            Табличка соответствия — это правильно.
                            Если рисовать по-русски — то ученик потом не сможет прочитать буржуйскую схему.
                            Если рисовать по-буржуйски — то ученик потом не сможет прочитать русскую схему.
                            То есть надо одну версию брать за базу, и справочно вводить таблицу соответствия.
                            Можно за базу взять наш стандарт, а можно буржуйский.
                            У нашего есть два плюса — он красивее (это субъективно) и патриотичнее :)
                            • 0
                              ну патриотичнее – это точно :)
                              как по мне, западный стандарт немного понятнее – не нужно всматриваться в маркировку на модуле, вы сразу по форме (в большинстве случаев) понимаете, что это за схема.
                              так что всё-таки буду использовать западную как стандарт и приводить таблички соответствия.
                      • +1
                        «Часть 2: правила модулей между собой»
                        Вот это не понял.

                        И еще можно напрямую составить логическое выражение и подставить в него входящие сигналы (Косвенно вы это и сделали).
                        Для последней приведенной схемы, например:
                        (x*!y+!x*y) *(z+!y) = w0
                        (z+!y)*y*!x = w1
                        Ну и элементарная алгебра :)
                        • 0
                          Учился когда в ВУЗе были пары по электронике — хотя и совершенно не профильные, но были. Так вот, помниццо, была программа, которая проводила анализ электронных цепей. Что-то типа конструктора из элементов. Собираешь цепь. Вводишь входные данные. Получаешь выходной результат.
                          • 0
                            Вспомнил — Electronics Workbench, во. Удобная штука для решения таких задач.
                            • 0
                              Плюс, по-моему, это можно в Matlab-овском Simulink-е реализовать довольно просто.
                              • +1
                                не очень-то и просто
                                мы пользуемся LogicWorks 4
                                жаль, что *nix-версия ужасная
                            • 0
                              В следующей статье мы начнём создавать свои логические схемы по заданным параметрам.
                              Продолжение будет очень скоро.

                              А я всё ещё жду…
                              • 0
                                Эх, я бы с удовольствием писал дальше, но сейчас нет даже свободной минуты :(
                                • 0
                                  Может вы тогда мне здесь подскажите? А то я даже запрос нормальный в поисковик забить не удаётся:
                                  Схема сложения двух бинарных числе будет очень сложной? Сколько, примерно, логических элементов на это может понадобиться?
                                  Заранее благодарен.
                                  • +1
                                    С удовольствием!
                                    Общее название для такой штуки – сумматор (adder).
                                    Самый простой сумматор, который складывает два бита и выдаёт сумму и «перенос» (carry), называется half-adder, его можно сделать из одного элемента XOR и одного AND. Чуть более сложная конструкция – full-adder, который не только складывает два числа, но и принимает во внимание «перенос» (carry) на входе, – требует 5 элементов: 2 х XOR, 2 x AND и 1 x OR.
                                    • 0
                                      Вау! Думал будет намного сложнее! Большое вам спасибо!

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