stringtranslate.com

Триггер (электроника)

Защелка SR ( R1, R2 = 1  кОм; R3, R4 = 10  кОм)

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

Триггеры и защелки используются в качестве элементов хранения данных для хранения одного бита (двоичной цифры) данных; одно из двух его состояний представляет «единицу», а другое представляет «ноль». Такое хранилище данных может использоваться для хранения состояния , и такая схема описывается как последовательная логика в электронике. При использовании в конечном автомате выход и следующее состояние зависят не только от его текущего входа, но и от его текущего состояния (и, следовательно, предыдущих входов). Его также можно использовать для подсчета импульсов и для синхронизации переменно-синхронизированных входных сигналов с некоторым опорным сигналом синхронизации.

Термин «триггер» исторически относился как к схемам, запускаемым по уровню (асинхронным, прозрачным или непрозрачным), так и к схемам, запускаемым по фронту ( синхронным или тактируемым ), которые хранят один бит данных с помощью вентилей . [1] Современные авторы резервируют термин «триггер» исключительно для запоминающих элементов, запускаемых по фронту, а защелки — для элементов, запускаемых по уровню. [2] [3] Термины «запускаемый по фронту» и «запускаемый по уровню» могут использоваться для избежания двусмысленности. [4]

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

Различные типы триггеров и защелок доступны в виде интегральных схем , обычно с несколькими элементами на чип. Например, 74HC75 — это четверная прозрачная защелка в серии 7400 .

История

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

Первая электронная защелка была изобретена в 1918 году британскими физиками Уильямом Эклзом и Ф. У. Джорданом . [5] [6] Первоначально она называлась триггерной схемой Эклза–Джордана и состояла из двух активных элементов ( вакуумных ламп ). [7] Эта конструкция использовалась в британском компьютере для взлома кодов Colossus 1943 года [8] , и такие схемы и их транзисторные версии были распространены в компьютерах даже после появления интегральных схем , хотя защелки и триггеры, сделанные из логических вентилей, также распространены сейчас. [9] [10] Ранние защелки были известны по-разному: триггерные схемы или мультивибраторы .

По словам инженера Лаборатории реактивного движения США П. Л. Линдли , типы триггеров, описанные ниже (SR, D, T, JK), впервые обсуждались в курсе по компьютерному проектированию в Калифорнийском университете в Лос-Анджелесе в 1954 году Монтгомери Фистером, а затем появились в его книге « Логическое проектирование цифровых компьютеров». [11] [12] В то время Линдли работал в Hughes Aircraft под руководством Элдреда Нельсона, который придумал термин JK для триггера, который менял состояние, когда оба входа были включены (логическая «единица»). Другие названия были придуманы Фистером. Они немного отличаются от некоторых определений, приведенных ниже. Линдли объясняет, что он услышал историю о триггере JK от Элдреда Нельсона, который придумал этот термин, работая в Hughes Aircraft. Все триггеры, использовавшиеся в Hughes в то время, были того типа, который стал известен как JK. При проектировании логической системы Нельсон присвоил буквы входам триггера следующим образом: № 1: A и B, № 2: C и D, № 3: E и F, № 4: G и H, № 5: J и K. Нельсон использовал обозначения « j -вход» и « k -вход» в патентной заявке, поданной в 1953 году. [13]

Выполнение

Прозрачная защелка на основе биполярных транзисторов

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

Синхронизированные триггеры специально разработаны для синхронных систем; такие устройства игнорируют свои входы, за исключением перехода выделенного тактового сигнала (известного как тактирование, пульсация или стробирование). Тактирование заставляет триггер либо изменять, либо сохранять свой выходной сигнал на основе значений входных сигналов при переходе. Некоторые триггеры изменяют выход на переднем фронте тактового сигнала, другие на заднем фронте.

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

Типы

Триггеры и защелки можно разделить на общие типы: SR («set-reset»), D («data»), T («toggle») и JK (см. раздел «История» выше). Поведение конкретного типа можно описать характеристическим уравнением, которое выводит «следующий» выход ( Q next ) в терминах входного сигнала(ов) и/или текущего выхода, .

Асинхронные защелки установки-сброса

При использовании статических вентилей в качестве строительных блоков наиболее фундаментальной защелкой является асинхронная защелка Set-Reset (SR) .

Его два входа S и R могут устанавливать внутреннее состояние в 1, используя комбинацию S=1 и R=0, и могут сбрасывать внутреннее состояние в 0, используя комбинацию S=0 и R=1. [примечание 1]

Защелка SR может быть сконструирована из пары перекрестно связанных логических вентилей NOR или NAND . Сохраненный бит присутствует на выходе, обозначенном Q.

Удобно думать о NAND, NOR, AND и OR как об управляемых операциях, где один вход выбирается как набор управляющих входов, а другой бит как обрабатываемый вход в зависимости от состояния управления. Затем все эти вентили имеют одно управляющее значение, которое игнорирует вход (x) и выводит постоянное значение, в то время как другое управляющее значение пропускает вход (возможно, дополненный):

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

SR NOR защелка

Анимация защелки SR, сконструированной из пары перекрестно связанных вентилей NOR . Красный и черный цвета означают логические «1» и «0» соответственно.
Анимированная защелка SR. Черный и белый цвет означают логические «1» и «0» соответственно.
  1. S = 1, R = 0: Установить
  2. S = 0, R = 0: Удерживать
  3. S = 0, R = 1: Сброс
  4. С = 1, Р = 1: Не допускается
Переход от ограниченной комбинации (D) к (A) приводит к нестабильному состоянию.

Защелка SR NOR состоит из двух параллельных вентилей NOR, где выход каждого NOR также разветвляется на один вход другого NOR, как показано на рисунке. Мы называем входами обратной связи или просто обратными связями эти соединения выход-вход. Оставшиеся входы мы будем использовать в качестве управляющих входов, как объяснено выше. Обратите внимание, что на этом этапе, поскольку все симметрично, неважно, к каким входам подключены выходы. Теперь мы нарушаем симметрию, выбирая, какой из оставшихся управляющих входов будет нашей установкой и сбросом, и мы можем назвать "set NOR" вентилем NOR с управлением установкой и "reset NOR" вентилем NOR с управлением сбросом; на рисунках set NOR является нижним, а reset NOR - верхним. Выходом reset NOR будет наш сохраненный бит Q, в то время как мы увидим, что выход set NOR хранит его дополнение Q.

Чтобы вывести поведение защелки SR NOR, рассмотрим S и R как управляющие входы и вспомним, что из приведенных выше уравнений установка и сброс NOR с управлением 1 зафиксируют их выходы на 0, в то время как установка и сброс NOR с управлением 0 будут действовать как вентиль НЕ. Благодаря этому теперь можно вывести поведение защелки SR как простые условия (вместо того, чтобы, например, назначать значения каждой строке, чтобы увидеть, как они распространяются):

Примечание: X означает «безразлично », то есть допустимым значением является 0 или 1.

Комбинация R = S = 1 называется ограниченной комбинацией или запрещенным состоянием , поскольку, поскольку оба вентиля NOR затем выводят нули, это нарушает логическое уравнение Q = не Q. Эта комбинация также не подходит для схем, где оба входа могут одновременно перейти в состояние низкого уровня (т. е. переход от ограниченного к удержанию ). Выход может оставаться в метастабильном состоянии и в конечном итоге может заблокироваться либо на 1, либо на 0 в зависимости от временных соотношений распространения между вентилями ( состояние гонки ).

Как работает защелка SR NOR

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

Это реализовано практически в каждом программируемом логическом контроллере .

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

Характеристическое уравнение для SR-защелки имеет вид:

или [14]

где A + B означает (A или B), AB означает (A и B)

Другое выражение:

с [15]

СРзащелка NAND

Защелка SR , сконструированная из перекрестно связанных вентилей NAND

Схема, показанная ниже, представляет собой базовую защелку NAND. Входы также обычно обозначаются как S и R для Set и Reset соответственно. Поскольку входы NAND обычно должны быть логической 1, чтобы не влиять на действие защелки, входы считаются инвертированными в этой схеме (или активным низким).

Схема использует ту же обратную связь, что и SR NOR, просто заменяя вентили NOR на вентили NAND, чтобы «запоминать» и сохранять свое логическое состояние даже после изменения управляющих входных сигналов. Опять же, напомним, что NAND-контролируемый 1 всегда выводит 0, в то время как NAND-контролируемый 0 действует как вентиль NOT. Когда входы S и R оба высокие, обратная связь сохраняет выходы Q в предыдущем состоянии. Когда один из них равен нулю, они фиксируют свои выходные биты на 0, в то время как другой адаптируется к дополнению. S=R=0 создает недопустимое состояние.

защелка SR И-ИЛИ

Защелка SR AND-OR. Светло-зеленый означает логическую «1», а темно-зеленый означает логический «0». Защелка в данный момент находится в режиме удержания (без изменений).

С точки зрения обучения, защелки SR, нарисованные как пара перекрестно связанных компонентов (транзисторы, затворы, трубки и т. д.), часто сложны для понимания новичками. Дидактически более простым объяснением будет нарисовать защелку как один контур обратной связи вместо перекрестной связи. Ниже представлена ​​защелка SR, построенная с вентилем И с одним инвертированным входом и вентилем ИЛИ . Обратите внимание, что инвертор не нужен для функциональности защелки, а скорее для того, чтобы сделать оба входа высокоактивными.

Обратите внимание, что защелка SR AND-OR имеет то преимущество, что S = 1, R = 1 четко определены. В приведенной выше версии защелки SR AND-OR она отдает приоритет сигналу R над сигналом S. Если необходим приоритет S над R, этого можно добиться, подключив выход Q к выходу вентиля OR вместо выхода вентиля AND.

Защелку SR AND-OR легче понять, потому что оба вентиля можно объяснить изолированно, снова с помощью управляющего представления AND и OR сверху. Когда ни S, ни R не установлены, то и вентиль OR, и вентиль AND находятся в «режиме удержания», т. е. они пропускают вход, их выход является входом из петли обратной связи. Когда вход S = 1, то вентиль OR выводит 1, независимо от другого входа из петли обратной связи («режим установки»). Когда вход R = 1, то вентиль AND выводит 0, независимо от другого входа из петли обратной связи («режим сброса»). И поскольку вентиль AND принимает выход вентиля OR в качестве входа, R имеет приоритет над S. Защелки, нарисованные как перекрестно связанные вентили, могут выглядеть менее интуитивно понятными, так как поведение одного вентиля, по-видимому, переплетено с другим вентилем. Стандартные защелки NOR или NAND также можно перерисовать с помощью петли обратной связи, но в их случае петля обратной связи не показывает одинаковое значение сигнала на протяжении всей петли обратной связи. Однако у защелки SR AND-OR есть тот недостаток, что для нее потребуется дополнительный инвертор, если требуется инвертированный выход Q.

Обратите внимание, что защелку SR AND-OR можно преобразовать в защелку SR NOR с помощью логических преобразований: инвертируя выход вентиля OR, а также второй вход вентиля AND и соединяя инвертированный выход Q между этими двумя добавленными инверторами; при этом вентиль AND с обоими инвертированными входами эквивалентен вентилю NOR согласно законам Де Моргана .

защелка JK

JK-защелка используется гораздо реже, чем JK-триггер. JK-защелка следует следующей таблице состояний:

Таким образом, защелка JK представляет собой защелку SR, которая переключает свой выход (колеблется между 0 и 1) при передаче входной комбинации 11. [16] В отличие от триггера JK, входная комбинация 11 для защелки JK не очень полезна, поскольку нет тактового сигнала, который бы управлял переключением. [17]

Замки-защелки и условная прозрачность

Защелки спроектированы так, чтобы быть прозрачными. То есть изменения входного сигнала вызывают немедленные изменения на выходе. К прозрачной защелке можно добавить дополнительную логику, чтобы сделать ее непрозрачной или непрозрачной , когда другой вход (вход «разрешения») не утвержден. Когда несколько прозрачных защелок следуют друг за другом, если они все прозрачны одновременно, сигналы будут распространяться через них все. Однако, если за прозрачной защелкой с высоким уровнем следует прозрачная защелка с низким уровнем (или наоборот), то состояние и выход будут изменяться только на фронтах тактовых импульсов, образуя то, что называется триггером «ведущий-ведомый» .

Задвижка SR с замком

NAND Gated SR Latch (синхронизированный SR-триггер). Обратите внимание на инвертированные входы.
Схема запираемой SR-защелки, построенная на вентилях И (слева) и вентилях ИЛИ-НЕ (справа)

Запираемая SR-защелка может быть создана путем добавления второго уровня вентилей NAND к инвертированной SR-защелке . Дополнительные вентили NAND дополнительно инвертируют входы, так что SR- защелка становится запираемой SR-защелкой ( SR-защелка трансформируется в запираемую SR -защелку с инвертированным разрешением).

В качестве альтернативы можно создать управляемую SR-защелку (с неинвертирующим включением), добавив к SR-защелке второй уровень вентилей И.

При высоком уровне E ( включено true) сигналы могут проходить через входные вентили к инкапсулированной защелке; все комбинации сигналов, за исключением (0, 0) = удержание , затем немедленно воспроизводятся на выходе (Q, Q ), т. е. защелка прозрачна .

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

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

Задвижка D-образная с замком

Эта защелка использует тот факт, что в двух активных входных комбинациях (01 и 10) запираемой SR-защелки R является дополнением S. Входной каскад NAND преобразует два входных состояния D (0 и 1) в эти две входные комбинации для следующей SR- защелки путем инвертирования входного сигнала данных. Низкое состояние разрешающего сигнала создает неактивную комбинацию «11». Таким образом, запираемая D-защелка может рассматриваться как одновходовая синхронная SR-защелка . Такая конфигурация предотвращает применение ограниченной входной комбинации. Она также известна как прозрачная защелка , защелка данных или просто запираемая защелка . Она имеет вход данных и разрешающий сигнал (иногда называемый тактовым или управляющим ). Слово прозрачный происходит от того факта, что когда разрешающий вход включен, сигнал распространяется напрямую через схему от входа D к выходу Q. Запираемые D-защелки также чувствительны к уровню относительно уровня тактового или разрешающего сигнала.

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

Таблица истинности ниже показывает, что когда вход блокировки enable / c равен 0, вход D не оказывает влияния на выход. Когда E/C высокий, выход равен D.

защелка Эрла

Классические конструкции задвижек с затворами имеют некоторые нежелательные характеристики. [18] Они требуют двухканальной логики или инвертора. Распространение от входа к выходу может занять до трех задержек затвора. Распространение от входа к выходу не является постоянным — некоторые выходы занимают две задержки затвора, а другие — три.

Проектировщики искали альтернативы. [19] Успешной альтернативой является защелка Эрла. Она требует только одного ввода данных, а ее выход занимает постоянную задержку в два вентиля. Кроме того, два уровня вентилей защелки Эрла в некоторых случаях могут быть объединены с двумя последними уровнями вентилей схем, управляющих защелкой, поскольку многие общие вычислительные схемы имеют слой OR, за которым следует слой AND в качестве последних двух уровней. Объединение функции защелки может реализовать защелку без дополнительных задержек вентилей. [18] Объединение обычно используется при проектировании конвейерных компьютеров и, по сути, изначально было разработано Джоном Г. Эрлом для использования в IBM System/360 Model 91 для этой цели. [20]

Защелка Эрла не представляет опасности. [21] Если средний вентиль NAND опущен, то получается защелка удержания полярности , которая обычно используется, поскольку требует меньше логики. [21] [22] Однако она подвержена логической опасности. Намеренное искажение тактового сигнала может избежать опасности. [22]

D-триггер

Символ D-триггера

D-триггер широко используется и известен как «информационный» триггер. D-триггер захватывает значение D-входа в определенной части тактового цикла (например, нарастающий фронт тактового сигнала). Это захваченное значение становится выходом Q. В других случаях выход Q не изменяется. [23] [24] D-триггер можно рассматривать как ячейку памяти, удержание нулевого порядка или линию задержки . [25]

Таблица истинности:

( X обозначает состояние «безразлично» , то есть сигнал не имеет значения)

Большинство триггеров D-типа в ИС имеют возможность принудительного перевода в состояние установки или сброса (которое игнорирует входы D и тактового сигнала), подобно триггеру SR. Обычно недопустимое условие S = R = 1 разрешается в триггерах D-типа. Установка S = R = 0 заставляет триггер вести себя так, как описано выше. Вот таблица истинности для других возможных конфигураций S и R:

4-битный последовательный входной и параллельный выходной (SIPO) сдвиговый регистр

Эти триггеры очень полезны, так как они составляют основу сдвиговых регистров , которые являются неотъемлемой частью многих электронных устройств. Преимущество D-триггера над "прозрачной защелкой" D-типа заключается в том, что сигнал на входном контакте D захватывается в момент тактирования триггера, и последующие изменения на входе D будут игнорироваться до следующего тактового события. Исключением является то, что некоторые триггеры имеют вход сигнала "сброса", который сбрасывает Q (в ноль), и могут быть как асинхронными, так и синхронными с тактовыми сигналами.

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

Классический D-триггер с положительным фронтом сигнала

Несколько различных типов D-триггеров, срабатывающих по фронту

Эта схема [26] состоит из двух стадий, реализованных защелками SR NAND. Входной каскад (две защелки слева) обрабатывает сигналы синхронизации и данных, чтобы обеспечить правильные входные сигналы для выходного каскада (единственная защелка справа). Если тактовый сигнал низкий, оба выходных сигнала входного каскада высокие независимо от входных данных; выходная защелка не затронута и сохраняет предыдущее состояние. Когда тактовый сигнал изменяется с низкого на высокий, только одно из выходных напряжений (в зависимости от сигнала данных) становится низким и устанавливает/сбрасывает выходную защелку: если D = 0, нижний выход становится низким; если D = 1, верхний выход становится низким. Если тактовый сигнал продолжает оставаться высоким, выходы сохраняют свои состояния независимо от входных данных и заставляют выходную защелку оставаться в соответствующем состоянии, поскольку входной логический ноль (выходного каскада) остается активным, пока тактовый сигнал высокий. Следовательно, роль выходной защелки заключается в сохранении данных только пока тактовый сигнал низкий.

Схема тесно связана с управляемой D-защелкой, поскольку обе схемы преобразуют два состояния входа D (0 и 1) в две входные комбинации (01 и 10) для выходной SR- защелки путем инвертирования входного сигнала данных (обе схемы разделяют один сигнал D на два дополнительных сигнала S и R ). Разница в том, что в управляемой D-защелке используются логические вентили NAND, в то время как в D-триггере с положительным фронтом используются защелки SR NAND. Роль этих защелок заключается в «запирании» активного выхода, производящего низкое напряжение (логический ноль); таким образом, управляемый положительным фронтом D-триггер можно также рассматривать как управляемую D-защелку с защелкивающимися входными вентилями.

Ведущий-ведомый D-триггер с переключением по фронту

D-триггер ведущий-ведомый. Он реагирует на задний фронт разрешающего входа (обычно тактового).
Реализация D-триггера «ведущий-ведомый», который срабатывает по нарастающему фронту тактового сигнала.

D-триггер типа «ведущий-ведомый» создается путем последовательного соединения двух запираемых D-защелок и инвертирования разрешающего входа на одну из них. Он называется «ведущий-ведомый», поскольку ведущая защелка управляет выходным значением ведомой защелки Q и заставляет ведомую защелку удерживать свое значение всякий раз, когда ведомая защелка включена, поскольку ведомая защелка всегда копирует свое новое значение из ведущей защелки и изменяет свое значение только в ответ на изменение значения ведущей защелки и тактового сигнала.

Для D-триггера master-slave, запускаемого положительным фронтом, когда тактовый сигнал низкий (логический 0), «разрешение», видимое первой или «главной» D-защелкой (инвертированный тактовый сигнал), высокое (логическая 1). Это позволяет «главной» защелке сохранять входное значение, когда тактовый сигнал переходит с низкого на высокий. Когда тактовый сигнал становится высоким (от 0 до 1), инвертированное «разрешение» первой защелки становится низким (от 1 до 0), и значение, видимое на входе в ведущую защелку, «заблокировано». Почти одновременно дважды инвертированное «разрешение» второй или «ведомой» D-защелки переходит с низкого на высокий (от 0 до 1) вместе с тактовым сигналом. Это позволяет сигналу, захваченному на переднем фронте тактового сигнала теперь «заблокированной» ведущей защелкой, проходить через «ведомую» защелку. Когда тактовый сигнал возвращается к низкому уровню (от 1 до 0), выход «ведомой» защелки «блокируется», и значение, отображаемое на последнем нарастающем фронте тактового сигнала, удерживается, в то время как «ведущая» защелка начинает принимать новые значения, готовясь к следующему нарастающему фронту тактового сигнала.

Удаление самого левого инвертора в схеме создает триггер D-типа, который стробируется на заднем фронте тактового сигнала. Это имеет такую ​​таблицу истинности:

D-триггер с двойным фронтом

Реализация D-триггера с двойным фронтом импульса

Триггеры, которые считывают новое значение по восходящему и нисходящему фронтам тактового сигнала, называются триггерами с двойным срабатыванием по фронту. Такой триггер может быть построен с использованием двух триггеров D-типа с срабатыванием по фронту и мультиплексора или с использованием двух триггеров D-типа с срабатыванием по фронту и трех вентилей XOR.

Условное обозначение D-триггера с двойным фронтом импульса
D-триггер с двойным срабатыванием, реализованный с использованием вентилей XOR, без мультиплексора

Динамический элемент хранения D с фронтом импульса

Реализация динамического триггера с фронтом импульса и сбросом на КМОП-ИС

Эффективную функциональную альтернативу D-триггеру можно создать с помощью динамических схем (где информация хранится в емкости), если она достаточно часто синхронизируется; хотя это и не настоящий триггер, его все равно называют триггером из-за его функциональной роли. В то время как ведущий-ведомый элемент D запускается по фронту тактового сигнала, каждый из его компонентов запускается по уровням тактового сигнала. «D-триггер, запускаемый фронтом», как его называют, хотя он и не является настоящим триггером, не обладает свойствами ведущего-ведомого.

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

T-триггер

Условное обозначение схемы для триггера Т-типа

Если вход T высокий, триггер T меняет состояние («переключается») всякий раз, когда стробируется вход синхронизации. Если вход T низкий, триггер сохраняет предыдущее значение. Такое поведение описывается характеристическим уравнением :

(расширяя оператор XOR )

и может быть описана в таблице истинности :

Когда T удерживается на высоком уровне, триггер делит тактовую частоту на два; то есть, если тактовая частота составляет 4 МГц, выходная частота, полученная от триггера, будет равна 2 МГц. Эта функция «деления на» применяется в различных типах цифровых счетчиков . AT-триггер также может быть построен с использованием JK-триггера (контакты J и K соединены вместе и действуют как T) или D-триггера (вход T XOR Q, предыдущий управляет входом D).

JK-триггер

Условное обозначение схемы для JK-триггера, срабатывающего по положительному фронту
Временная диаграмма JK-триггера

Триггер JK дополняет поведение триггера SR (J: Set, K: Reset), интерпретируя условие J = K = 1 как команду «переключить» или переключения. В частности, комбинация J = 1, K = 0 является командой для установки триггера; комбинация J = 0, K = 1 является командой для сброса триггера; а комбинация J = K = 1 является командой для переключения триггера, т. е. изменения его выхода на логическое дополнение его текущего значения. Установка J = K = 0 сохраняет текущее состояние. Чтобы синтезировать триггер D, просто установите K равным дополнению J (вход J будет действовать как вход D). Аналогично, чтобы синтезировать триггер T, установите K равным J. Таким образом, триггер JK является универсальным триггером, поскольку его можно настроить для работы в качестве триггера SR, триггера D или триггера T.

Характеристическое уравнение JK-триггера имеет вид:

и соответствующая таблица истинности:

Соображения по времени

Параметры времени

Параметры настройки, удержания и синхронизации триггера с выходом

Входной сигнал должен быть постоянным в период около восходящего фронта часов, известного как апертура. Представьте себе, что вы фотографируете лягушку на листе кувшинки. [28] Предположим, что лягушка затем прыгает в воду. Если вы сфотографируете лягушку, когда она прыгает в воду, вы получите размытое изображение лягушки, прыгающей в воду — неясно, в каком состоянии была лягушка. Но если вы сделаете снимок, когда лягушка устойчиво сидит на листе (или устойчиво находится в воде), вы получите четкое изображение. Точно так же входной сигнал на триггер должен быть постоянным в течение апертуры триггера .

Время настройки — это минимальное время, в течение которого входные данные должны оставаться стабильными до наступления события часов, чтобы часы могли надежно считывать данные.

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

Диафрагма — это сумма времени настройки и удержания. Ввод данных должен быть постоянным в течение всего этого периода времени. [28]

Время восстановления — это минимальное количество времени, в течение которого асинхронный вход установки или сброса должен быть неактивным до события часов, чтобы данные надежно отбирались часами. Время восстановления для асинхронного входа установки или сброса, таким образом, аналогично времени настройки для входа данных.

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

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

Сигналы установки и сброса (и другие) могут быть как синхронными, так и асинхронными и, следовательно, могут характеризоваться либо временем установки/удержания, либо временем восстановления/снятия, а синхронность во многом зависит от конструкции триггера.

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

Метастабильность

Триггеры подвержены проблеме, называемой метастабильностью , которая может возникнуть, когда два входа, такие как данные и часы или часы и сброс, изменяются примерно в одно и то же время. Когда порядок не ясен, в пределах соответствующих временных ограничений, результатом является то, что выход может вести себя непредсказуемо, занимая во много раз больше времени, чем обычно, чтобы установиться в одно или другое состояние, или даже колеблясь несколько раз перед установкой. Теоретически, время установки не ограничено. В компьютерной системе эта метастабильность может привести к повреждению данных или сбою программы, если состояние нестабильно до того, как другая схема использует его значение; в частности, если два разных логических пути используют выход триггера, один путь может интерпретировать его как 0, а другой как 1, когда он не перешел в стабильное состояние, переводя машину в несогласованное состояние. [29]

Метастабильность в триггерах можно избежать, гарантируя, что данные и управляющие входы будут оставаться действительными и постоянными в течение определенных периодов до и после тактового импульса, называемых временем настройки (t su ) и временем удержания (t h ) соответственно. Эти времена указаны в техническом описании устройства и обычно составляют от нескольких наносекунд до нескольких сотен пикосекунд для современных устройств. В зависимости от внутренней организации триггера можно построить устройство с нулевым (или даже отрицательным) требованием времени настройки или удержания, но не обоими одновременно.

К сожалению, не всегда возможно соблюсти критерии настройки и удержания, поскольку триггер может быть подключен к сигналу реального времени, который может измениться в любой момент вне контроля разработчика. В этом случае лучшее, что может сделать разработчик, — это снизить вероятность ошибки до определенного уровня в зависимости от требуемой надежности схемы. Один из методов подавления метастабильности — соединить два или более триггера в цепочку, так что выход каждого из них подает данные на вход следующего, и все устройства используют общие часы. С помощью этого метода вероятность метастабильного события может быть снижена до пренебрежимо малого значения, но никогда до нуля. Вероятность метастабильности становится все ближе и ближе к нулю по мере увеличения числа последовательно соединенных триггеров. Число каскадируемых триггеров называется «ранжированием»; «двухранговые» триггеры (два триггера последовательно) являются обычной ситуацией.

Доступны так называемые метастабильно-устойчивые триггеры, которые работают, максимально сокращая время установки и удержания, но даже они не могут полностью устранить проблему. Это связано с тем, что метастабильность — это больше, чем просто вопрос схемотехнической разработки. Когда переходы в часах и данных близки по времени, триггер вынужден решать, какое событие произошло первым. Как бы быстро ни было сделано устройство, всегда есть вероятность, что входные события будут настолько близки друг к другу, что оно не сможет определить, какое из них произошло первым. Поэтому логически невозможно построить идеально метастабильный триггер. Триггеры иногда характеризуются максимальным временем установления (максимальным временем, в течение которого они будут оставаться метастабильными при определенных условиях). В этом случае двухранговые триггеры, тактируемые медленнее, чем максимально допустимое время метастабильности, обеспечат надлежащую подготовку для асинхронных (например, внешних) сигналов.

Задержка распространения

Другим важным значением времени для триггера является задержка от тактового сигнала до выхода (общий символ в технических описаниях: t CO ) или задержка распространения (t P ), которая представляет собой время, необходимое триггеру для изменения своего выхода после фронта тактового сигнала. Время перехода с высокого уровня на низкий (t PHL ) иногда отличается от времени перехода с низкого уровня на высокий (t PLH ).

При каскадном соединении триггеров, которые совместно используют одни и те же часы (как в сдвиговом регистре ), важно гарантировать, что t CO предыдущего триггера больше, чем время удержания (t h ) следующего триггера, поэтому данные, присутствующие на входе последующего триггера, правильно «сдвинуты» после активного фронта часов. Такое соотношение между t CO и t h обычно гарантируется, если триггеры физически идентичны. Кроме того, для правильной работы легко проверить, что период часов должен быть больше суммы t su  + t h .

Обобщения

Триггеры можно обобщить по крайней мере двумя способами: сделав их 1-из-N вместо 1-из-2, и адаптировав их к логике с более чем двумя состояниями. В особых случаях кодирования 1-из-3 или многозначной троичной логики такой элемент можно назвать триггером -флэпом . [30]

В обычном триггере ровно один из двух дополнительных выходов имеет высокий уровень. Это можно обобщить до элемента памяти с N выходами, ровно один из которых имеет высокий уровень (или ровно один из N имеет низкий уровень). Таким образом, выход всегда является представлением «один горячий» (соответственно, «один холодный »). Конструкция похожа на обычный перекрестно-связанный триггер; каждый выход, когда имеет высокий уровень, подавляет все остальные выходы. [31] В качестве альтернативы можно использовать более или менее обычные триггеры, по одному на выход, с дополнительной схемой, чтобы гарантировать, что только один за раз может быть истинным. [32]

Другим обобщением обычного триггера является элемент памяти для многозначной логики . В этом случае элемент памяти сохраняет ровно одно из логических состояний до тех пор, пока управляющие входы не вызовут изменение. [33] Кроме того, также могут использоваться многозначные часы, что приводит к новым возможным переходам часов. [34]

Примечания

  1. ^ В качестве альтернативы, два входа могут называться set 1 и set 0, что может устранить путаницу для некоторых: термин set сам по себе может быть неправильно понят как установка бита на вход, предоставленный для установки. Это наименование также делает интуитивно понятным в объяснении ниже, что попытка установить 0 и 1 одновременно должна заставить защелку SR вести себя непредсказуемо.

Смотрите также

Ссылки

  1. ^ Например, в издании 1969 года Logic Handfbook Flip Chip™ Modules корпорации Digital Equipment Corporation прозрачные RS-защелки называются «R/S-триггерами» (http://www.bitsavers.org/pdf/dec/handbooks/Digital_Logic_Handbook_1969.pdf, стр. 44).
  2. ^ Педрони, Вольней А. (2008). Цифровая электроника и проектирование с VHDL. Morgan Kaufmann. стр. 329. ISBN 978-0-12-374270-4.
  3. ^ Защелки и триггеры (EE 42/100 Лекция 24 из Беркли) «...Иногда термины триггер и защелка используются взаимозаменяемо...»
  4. ^ ab Roth, Charles H. Jr. (1995). "Защелки и триггеры". Основы логического проектирования (4-е изд.). PWS. ISBN 9780534954727.
  5. GB 148582, Эклс, Уильям Генри и Джордан, Фрэнк Уилфред, «Усовершенствования в ионных реле», опубликовано 1920-08-05 
  6. ^ См.:
    • Eccles, WH; Jordan, FW (19 сентября 1919 г.). «Триггерное реле, использующее трехэлектродные термоэлектронные вакуумные трубки». The Electrician . 83 : 298.
    • Перепечатано в: Eccles, WH; Jordan, FW (декабрь 1919 г.). «Триггерное реле, использующее трехэлектродные термоэлектронные вакуумные трубки». The Radio Review . 1 (3): 143–6.
    • Резюме в: Eccles, WH; Jordan, FW (1919). «Триггерное реле, использующее три электродных термоэлектронных вакуумных трубки». Отчет о восемьдесят седьмом заседании Британской ассоциации содействия развитию науки: Борнмут: 1919, 9–13 сентября . С. 271–2.
  7. ^ Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM 360 и ранние 370 системы . MIT Press. стр. 10. ISBN 978-0-262-16123-7.
  8. ^ Флауэрс, Томас Х. (1983), «Проект Колосса», Анналы истории вычислительной техники , 5 (3): 249, doi :10.1109/MAHC.1983.10079, S2CID  39816473
  9. ^ Гейтс, Эрл Д. (2000). Введение в электронику (4-е изд.). Delmar Thomson (Cengage) Learning. стр. 299. ISBN 978-0-7668-1698-5.
  10. ^ Фогель, Макс; Гу, Ю-Лян (1998). Решение проблем электроники, том 1 (пересмотренное издание). Ассоциация исследований и образования. стр. 1223. ISBN 978-0-87891-543-9.
  11. ^ Линдли, ПЛ (август 1968 г.). «письмо от 13 июня 1968 г.». EDN .
  12. ^ Фистер, Монтгомери (1958). Логическое проектирование цифровых компьютеров. Wiley. стр. 128. ISBN 9780608102658.
  13. US 2850566, Нельсон, Элдред К., «Высокоскоростная система печати», опубликовано 02.09.1958, передано Hughes Aircraft Co. 
  14. ^ Лангхольц, Гидеон; Кандел, Абрахам; Мотт, Джо Л. (1998). Основы проектирования цифровой логики. World Scientific. стр. 344. ISBN 978-981-02-3110-1.
  15. ^ «Краткое описание типов поведения флип-флоп». Получено 16 апреля 2018 г.
  16. ^ Hinrichsen, Diederich; Pritchard, Anthony J. (2006). "Пример 1.5.6 (защелка R–S и защелка J–K)". Математическая теория систем I: Моделирование, анализ пространства состояний, устойчивость и надежность . Springer. стр. 63–64. ISBN 9783540264101.
  17. ^ Фархат, Хассан А. (2004). Цифровое проектирование и организация компьютера. Том 1. CRC Press. стр. 274. ISBN 978-0-8493-1191-8.
  18. ^ ab Kogge, Peter M. (1981). Архитектура конвейерных компьютеров . McGraw-Hill. стр. 25–27. ISBN 0-07-035237-2.
  19. ^ Коттен, Л. В. (1965). «Реализация схем высокоскоростных трубопроводных систем». Труды 30 ноября — 1 декабря 1965 г., осенняя совместная компьютерная конференция, часть I на XX — AFIPS '65 (осень, часть I) . стр. 489–504. doi : 10.1145/1463891.1463945 . S2CID  15955626. {{cite book}}: |journal=проигнорировано ( помощь )
  20. ^ Эрл, Джон Г. (март 1965 г.). «Защелкивающийся сумматор с сохранением переноса». Технический бюллетень раскрытия информации IBM . 7 (10): 909–910.
  21. ^ ab Omondi, Amos R. (1999). Микроархитектура конвейерных и суперскалярных компьютеров. Springer. стр. 40–42. ISBN 978-0-7923-8463-2.
  22. ^ ab Kunkel, Steven R.; Smith, James E. (май 1986 г.). «Оптимальная конвейеризация в суперкомпьютерах». ACM SIGARCH Computer Architecture News . 14 (2). ACM: 404–411 [406]. CiteSeerX 10.1.1.99.2773 . doi :10.1145/17356.17403. ISSN  0163-5964. S2CID  2733845. 
  23. ^ "D Flip-Flop". Архивировано из оригинала 2014-02-23 . Получено 2016-06-05 .
  24. ^ "Edge-Triggered Flip-flops". Архивировано из оригинала 2013-09-08 . Получено 2011-12-15 .
  25. ^ Обзор систем цифровой компьютерной памяти
  26. ^ Техническое описание SN7474 TI
  27. ^ ab Mano, M. Morris; Kime, Charles R. (2004). Основы логики и проектирования компьютеров, 3-е издание . Аппер Сэддл Ривер, Нью-Джерси, США: Pearson Education International. стр. 283. ISBN  0-13-191165-1.
  28. ^ ab Harris, S; Harris, D (2016). Цифровое проектирование и архитектура компьютеров - издание ARM . Morgan Kaufmann, Waltham, MA. ISBN 978-0-12-800056-4.
  29. ^ Chaney, Thomas J.; Molnar, Charles E. (апрель 1973 г.). «Аномальное поведение схем синхронизатора и арбитра». IEEE Transactions on Computers . C-22 (4): 421–422. doi :10.1109/TC.1973.223730. ISSN  0018-9340. S2CID  12594672.
  30. Часто приписывается Дону Кнуту (1969) (см. Midhat J. Gazalé (2000). Номер: от Ахмеса до Кантора. Princeton University Press. стр. 57. ISBN 978-0-691-00515-7.), термин триггер-флэп-флоп на самом деле появился гораздо раньше в компьютерной литературе, например, Боудон, Эдвард К. (1960). Конструкция и применение «триггера-флэпа» с использованием туннельных диодов (магистерская диссертация). Университет Северной Дакоты., и в Alexander, W. (февраль 1964). "Троичный компьютер". Электроника и энергетика . 10 (2). IET: 36–39. doi :10.1049/ep.1964.0037.
  31. ^ "Тернарный "flip-flap-flop"". Архивировано из оригинала 2009-01-05 . Получено 2009-10-17 .
  32. US 6975152, Lapidus, Peter D., «Триггер, поддерживающий бесперебойную работу на шине с одним контактом, и метод», опубликовано 13 декабря 2005 г., передано Advanced Micro Devices Inc. 
  33. ^ Ирвинг, Турман А.; Шива, Саджан Г.; Нагл, Х. Трой (март 1976 г.). «Триггеры для многозначной логики». IEEE Transactions on Computers . C-25 (3): 237–246. doi :10.1109/TC.1976.5009250. S2CID  34323423.
  34. ^ Wu, Haomin; Zhuang Nan (июль 1991). «Исследование троичного JKL-триггера, запускаемого фронтом». Журнал электроники (Китай) . 8 (3): 268–275. doi :10.1007/BF02778378. S2CID  61275953.

Внешние ссылки