Синхронизация по уровню сигнала в триггерах

Синхронизация является основным методом борьбы с состязаниями сигналов в цифровых схемах.

В отличие от обычных асинхронных триггеров, где в соответствии с таблицей истинности переключение происходит в те моменты времени, когда меняются сигналы на информационных входах, синхронизирующие (тактируемые) триггеры имеют еще и управляющий вход (обычно на схемах обозначают как вход C). Если сигнал на этом входе принимает разрешающее значение, то триггер работает как асинхронный. Если сигнал на тактирующем входе имеет запрещающее значение, то триггер не реагирует на изменение сигналов на информационных входах и сохраняет ту информацию, которую он записал при последнем разрешении на запись.

Синхронизация бывает нескольких типов:
  1. По уровню синхронизирующего сигнала
    • По уровню сигнала “1”
    • По уровню сигнала “0”

  2. По фронту
    • По заднему фронту
    • По переднему фронту

В этой статье ограничимся рассмотрением первого случая.

Синхронизация по уровню сигнала “1”


image
При сигнале C = “1” (в моментах от t2n-1 до t2n) запись разрешена, при C = “0” — режим хранение.

Проиллюстрируем это на RS триггере со синхронизацией на базе элементов “или-не” (U1, U2) с тремя входами.
image
Временная диаграмма работы данного триггера (без считывания задержки на вентилях):
image
В логических элементах “или-не” доминирующим сигналом является “1”, поэтому при сигнале C = 1, сигналы на входах R и S блокируются и триггер будет находиться в режиме хранения. При C = 0 схема работает как обычный RS триггер.

Таблица истинности данной схемы:

image

Синхронизация по уровню сигнала “0”


image
При сигнале C = “0” (в моментах от t2n до t2n+1) запись разрешена, при C = “1” — режим хранение.

Представим работу тактируемого триггера на основе синхронизирующего E триггера на базе логических элементов “и-не” (U9, U3, U4, U1, U6, U5) и “не” (U10, U7, U8, U2).
image
На схеме логические элементы “и-не” U9, U3 и инвертор U10 образовывают обычный логический элемент “и-не” с тремя входами. Аналогично для U1, U2, U6.

Временная диаграмма работы схемы:
image
Так как в элементах “и-не” доминирующим сигналом является “0”, то поступающие сигналы C = 0 блокируют R и S сигналы и поэтому триггер будет сохранять свое исходное состояние.

При C = 1, поступление сигналов с входов R и S будет разрешено и схема будет работать как обычный S триггер (переключается в единичное состояние):

Сигналы C, S и notR поступают к входам U3, а C, notS и R поступают к входам U6. Получаем на входах RS триггера (U4+U5) сигналы (not S || R) и (S || not R).
Таблица истинности данной схемы:

image
У триггеров с синхронизацией по уровню сигнала есть один недостаток — изменение входных сигналов и ихнее возвращение в исходное положение может происходить во время разрешения тактирующим сигналом, что приведет к тому, что выход схемы насквозь просматривает вход в течении некоторого интервала времени.
  • +26
  • 9,2k
  • 9
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

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

    0
    Скажите пожалуйста, что это за программа, которая эпюры рисовать умеет?
      +2
      ActiveHDL, или я не правильно понял вопроса?
        +1
        Да, спасибо!!!
      +2
      Автору спасибо за статью. Так приятно почитать на Хабре что-то действительно близкое сердцу :)
      Недочетов не нашел, кроме как в разделе "Синхронизация по уровню сигнала “1”" в картинке опечатка «запись разрешен».
        0
        Спасибо, исправил
        0
        >Синхронизация является основным методом борьбы с состязаниями сигналов в цифровых схемах.
        Поясните?
        Написано четко, по существу. Как в учебнике. Автор молодец.
          0
          Думаю лучше о состязаниях сигналов чем тут не расскажу.
          0
          Большое спасибо за статью. Сурово, но интересно =) Открыл для себя явление состязания сигналов.
            +1
            Спасибо за статью и за «состязание сигналов», раньше не слышал.
            Но в статье есть ряд ошибок:
            По первой схеме:
            При сигнале C = “1” запись запрещена (т.к. если хотя бы на одном входе элемента ИЛИ-НЕ есть «1» то на выходе будет 0 независимо от значения сигналов на других входах). Да и на диаграмме, это видно. А вот одновременное S=«1» и R=«1» является запрещённым состоянием, т.к. состояние триггера после такого финта не определено. В таблице истинности тоже ошибка — когда приходит сигнал Set=«1» выход Q=«1», а когда приходит Reset=«1» выход Q=«0».

            По второй:
            Опять в начале ошибка — При сигнале C = “0” запись запрещена (т.к. если хотя бы на одном входе элемента И-НЕ есть «0» то на выходе будет 1 независимо от значения сигнал на другом входе). Хотя вы и сами дальше по статье исправляетесь. Главным преимуществом второй схемы является отсутствие уязвимости к запрещённой комбинации сигналов (одновременное S=«1» и R=«1»).

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

            Самое читаемое