Последовательностная логика

8.16. Устройства с памятью: триггеры

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

Рис. 8.47. RS-триггер.

Предположим, что оба входа А и В имеют высокий уровень. Тогда, в каком состоянии будут выходы X и Y? Если X будет иметь высокий уровень, то последний будет присутствовать на обоих входах вентиля G2, и устанавливать Y в состояние низкого уровня. Это согласуется с состоянием выхода X (высокий уровень), следовательно, все правильно. Не правда ли?

Х = В, Y = H.

Неверно! Схема симметрична, следовательно, правомерно будет и состояние, при котором

Х = Н, Y = B.

Состояние, когда оба выхода X и Y имеют высокий (или низкий) уровень, невозможно (вспомним, что А = В = высокий уровень). Таким образом, триггер имеет два устойчивых состояния (иногда его называют «бистабильной» схемой). В каком из этих двух состояний он окажется, зависит от его предыстории, т. е. он обладает памятью. Для того чтобы в эту память что-то записать, достаточно на один из входов триггера кратковременно подать низкий уровень. Например, после кратковременной подачи низкого уровня на вход А триггер гарантированно установится в состояние

Х = В, Y = H.

независимо от того, какое состояние он имел прежде.

Подавление дребезга контактов. Рассмотренный нами триггер со входами S (установки в «1») и R (установки в «0» или сброса) оказывается весьма полезным для многих применений. На рис. 8.48 показан типичный пример его использования.

Рис. 8.48. «Дребезг» переключения.

По идее эта схема должна открывать вентиль и пропускать входные импульсы, если ключ разомкнут. Ключ связан с землей (а не с шиной +5 В) из-за особенности биполярных ТТЛ-схем (в противоположность КМОП-элементам), состоящей в том, что вы должны обеспечить отвод тока от входа ТТЛ в состоянии низкого уровня (0,25 мА для LSTTL), в то время как в состоянии высокого уровня входной ток близок к нулю. Кроме того, обычно в устройствах имеется шина земли, удобная для подсоединения к ней ключей и других органов управления. При использовании такой схемы возникает проблема, обусловленная «дребезгом» контактов ключа. За время порядка 1 мс после замыкания ключа его контакты входят в соприкосновение друг с другом обычно от 10 до 100 раз. Вы получите в итоге форму сигналов, указанную на рисунке; если бы выход подключался к счетчику или регистру сдвига, то они наверняка отреагировали бы на каждый дополнительный импульс, вызванный этим дребезгом контактов.

На рис. 8.49 показано, как разрешить эту проблему.

Рис. 8.49. Схема подавления дребезга.

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

Многовходовые триггеры. На рис. 8.50 показана еще одна простая схема триггера. В ней использованы вентили ИЛИ-НЕ: высокий уровень на входе устанавливает соответствующий выход триггера в состояние низкого уровня. Устанавливать или сбрасывать триггер различными сигналами можно благодаря наличию нескольких входов. На этом схемном фрагменте нагрузочные резисторы не используются, поскольку входные сигналы формируются где-нибудь в другом месте (с помощью стандартных выходов с активной нагрузкой).

Рис. 8.50.

8.17. Тактируемые триггеры

Триггеры, выполненные на двух вентилях, как показано на рис. 8.47 и 8.50, обычно называют RS (от английских слов: set — «установка» и reset — «сброс»), или асинхронными триггерами. Посредством подачи соответствующего входного сигнала они могут быть установлены в то или иное состояние. RS-триггеры удобно использовать в схемах защиты от дребезга, а также во многих других случаях, однако более широкое применение получили триггеры, схема которых несколько отличается от рассмотренной. Вместо пары асинхронных входов они имеют один или два информационных входа и один тактирующий вход. В момент подачи тактирующего импульса выходное состояние триггера либо изменяется, либо остается прежним, в зависимости от того, какие сигналы действуют по информационным входам.

Простейшая схема тактируемого триггера приведена на рис. 8.51.

Рис. 8.51. Синхронизированный триггер.

От рассмотренной выше схемы она отличается наличием двух вентилей («SET» и «RESET»). Легко проверить, что таблица истинности для этого триггера будет иметь вид

где Qn + 1 — состояние выхода Q после подачи (n + 1)-го тактового импульса, а Qn — до его поступления. Главное отличие этой схемы от предыдущей состоит в том, что входы S и R в этом случае должны рассматриваться как информационные и сигналы, присутствующие на этих входах в момент поступления тактового импульса, и определяют, что произойдет с выходом Q.

У этого триггера есть один недостаток. Дело в том, что изменение выходного состояния в соответствии со входными сигналами может происходить в течение всего отрезка времени, на котором тактовый импульс имеет высокий уровень. В этом смысле он еще подобен асинхронному RS-триггеру. Эта схема известна также под названием «прозрачный фиксатор», потому что выход «насквозь просматривает» вход в течение интервала действия тактового сигнала.

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

Триггеры типа «ведущий-ведомый» и триггеры, запускаемые по фронту. Эти типы триггеров наиболее распространены. Информация, поступившая на входные линии этого триггера к моменту возникновения перехода или «фронта» тактового сигнала, определяет, каким будет состояние выхода в последующий интервал времени. Такие триггеры выпускаются в виде недорогих ИМС и всегда используются в этом виде, но для того чтобы понять, как они работают, имеет смысл рассмотреть их внутреннюю структуру. На рис. 8.52 показаны принципиальные схемы так называемых D-триггеров.

Рис. 8.52. D-триггеры с пуском по фронту.

Информация, поступившая на D-вход, передается на выход Q после подачи тактового импульса. Рассмотрим принципы действия триггера типа ведущий-ведомый (рис. 8.52, a). Если тактовый сигнал имеет высокий уровень, разрешается работа вентилей 1 и 2, через которые ведущий триггер (вентили 3 и 4) устанавливается в состояние, соответствующее D-входу: Μ = D, Μ' = D'. Вентили 5 и 6 закрыты, поэтому ведомый триггер (вентили 7 и 8) сохраняет свое предыдущее состояние. Когда тактовый сигнал перейдет в состояние низкого уровня, входы ведущего триггера отключатся от D-входа, а входы ведомого подключатся к входу ведущего, в результате последний передаст свое состояние ведомому триггеру.

После этого никакие изменения на выходе произойти не смогут, так как ведущий триггер заблокирован. С приходом следующего тактового сигнала ведомый триггер отключится от ведущего, а ведущий воспримет новое состояние входа. С точки зрения внешних сигналов триггер, срабатывающий по фронту, ведет себя точно также, однако внутри он работает по-другому. Принцип его действия нетрудно разобрать самостоятельно. Схема, показанная на рис. 8.52, б, представляет собой распространенный D-триггер 74 семейства ТТЛ, срабатывающий на положительном перепаде. В рассмотренном ранее триггере типа «ведущий-ведомый» данные на выход передавались по отрицательному перепаду тактового импульса.

В номенклатуру стандартных ИМС, выпускаемых промышленностью, входят триггеры, срабатывающие как по одной, так и по другой полярности перепада. Кроме того, большинство триггеров имеют также асинхронные входы S и R. Они могут устанавливаться или сбрасываться как высоким, так и низким уровнем в зависимости от типа триггера. На рис. 8.53 показано несколько популярных триггеров.

Рис. 8.53. D- и JK-триггеры.

Стрелка обозначает динамический вход (срабатывание по фронту), а кружок — инверсию. Таким образом, изображенная на рисунке схема 74 представляет собой сдвоенный D-триггер, который срабатывает по положительному перепаду и имеет асинхронные входы S и R, активные по низкому уровню. Схема 4013 представляет собой сдвоенный D-триггер семейства КМОП, срабатывающий по положительному перепаду и имеющий асинхронные входы S и R, активные по высокому уровню. Интегральная схема 112 — это сдвоенный JК-триггер типа ведущий-ведомый, срабатывающий по отрицательному перепаду и имеющий асинхронные входы S и R, активные по низкому уровню.

JK-триггер. По принципу действия JK-триггер аналогичен D-триггеру, но имеет два информационных входа. Его таблица истинности имеет вид:

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

Предупреждение. Некоторые старые типы JK-триггеров представляют собой «ловушку для единиц». Этот термин вы не найдете ни в одной документации, он означает явление, которое может привести неосведомленного человека к весьма неприятным последствиям. Дело в том, что если на интервале, когда ведомый триггер открыт тактовым сигналом, вход J и К (или оба одновременно) на какой-то момент изменит свое состояние, а затем до окончания тактового сигнала вернется в исходное, то это кратковременное состояние триггер запомнит и в дальнейшем он будет вести себя так, как если бы это состояние сохранилось. В результате триггер может переброситься на следующем тактовом перепаде, даже если сигналы, действующие в момент этого перепада на входах J и К подтверждают предыдущее состояние. Это может привести, мягко говоря, к своеобразному поведению. Проблема возникает из-за того, что эти триггеры были сконструированы в предположении, что тактовый импульс имеет очень короткую длительность, в то время как в действительности тактирование всегда производится сигналом конечной длительности. Если используется триггер типа «ведущий-ведомый», следует соблюдать меры предосторожности, либо вообще избегать их, применяя более надежные триггеры, работающие по фронту. Две хорошие альтернативы, которые используют истинно запуск по фронту, это приборы `112 и `109. Оба представляют собой сдвоенные (два в одном корпусе) JK-триггеры с асинхронными S- и R-входами, активными по низкому уровню. Устройство `112 срабатывает по отрицательному фронту тактового сигнала, а устройство `109 — по положительному.

Схема `109 имеет интересную особенность, а именно, K-вход у него инверсный, поэтому иногда его называют JK-триггер с запретом. Таким образом, если вы соедините входы J и К вместе, то получите D-триггер. Для перевода его в счетный режим вы заземляете вход К', а на входе J устанавливаете ВЫСОКИЙ уровень.

Делитель на 2. Легко построить схему делителя на 2, используя способность триггеров работать в счетном режиме. На рис. 8.54 показаны два способа построения такого делителя. JK-триггер работает в счетном режиме, когда оба входа имеют ВЫСОКИЙ уровень, производя на выходе сигнал, показанный на рисунке. Вторая схема также будет совершать перебросы, так как ее D-вход подключен к собственному выходу Q и в момент поступления тактового импульса на D-входе всегда действует инверсия по отношению к текущему состоянию триггера. Частота сигнала на выходе в любом случае будет равна половине входной частоты.

Рис. 8.54. Схемы деления на 2.

Синхронизация информации и тактирование. В связи с последней схемой возникает интересный вопрос: не получится ли так, что триггер не сможет переброситься, так как состояние D-входа изменяется почти сразу же вслед за тактовым импульсом? Другими словами, не начнет ли схема сбиваться, если на ее входе происходят такие странные явления? Этот вопрос можно сформулировать и следующим образом: в какой точно момент по отношению к тактовому импульсу D-триггер (или какой-нибудь другой) анализирует состояние своего входа? Ответ такой: для любого тактируемого устройства существует определенное «время установления» tуст и «время удержания» tуд. Для того чтобы схема работала правильно, информация должна поступать на вход не позднее чем за время tуст до возникновения тактового перепада и оставаться неизменной по крайней мере в течение времени tуд после него. Например, для триггера 74НС74, tуст = 20 нc и tуд = 3 нc (рис. 8.55).

Рис. 8.55. Время установления данных и время удержания.

В рассмотренной схеме счетного триггера требование к времени установления будет сохраняться неизменным в течение как минимум 20 нc, предшествующих очередному тактовому перепаду. Может показаться, что при этом нарушается требование к времени удержания, но это не так. Минимальное время распространения сигнала с тактового входа на выход составляет 10 нc, и D-триггер, включенный в счетном режиме, будет иметь неизменное состояние D-входа в течение по меньшей мере 10 нc. Большинство современных устройств вообще не представляют требований ко времени удержания (имеют tуд = 0). Если сигнал на D-входе изменяется на интервале времени удержания, то может возникнуть любопытный эффект, носящий название «метастабильное состояние», при котором триггер не может определить, в какое состояние он должен перейти. Об этом явлении мы вскоре еще упомянем.

Деление на число, большее чем 2. С помощью каскадного соединения счетных триггеров (выход Q каждого предыдущего триггера подключен к тактическому входу последующего) легко получить «делитель на 2n», или двоичный счетчик. На рис. 8.56 показана схема четырехразрядного асинхронного счетчика и даны его временные диаграммы.

Рис. 8.56. 4-разрядный счетчик.

Заметим здесь, что если выход Q каждого триггера непосредственно действует на тактовый вход следующего, срабатывание триггеров должно происходить по спаду (заднему фронту) сигнала на тактовом входе (показано кружком инверсии). Эта схема представляет собой счетчик-делитель на 16: на выходе последнего триггера формируются прямоугольные импульсы, следующие с частотой, равной 1/16 частоты входного тактового сигнала. Схема называется счетчиком, поскольку информация, присутствующая на четырех входах Q, может рассматриваться как 4-разрядное двоичное число, которое изменяется от 0 до 15, увеличиваясь на единицу с каждым входным импульсом. Этот факт отражает временная диаграмма на рис. 8.56, б, на которой СЗР означает «старший значащий разряд», МЗР-«младший значащий разряд», а изогнутые стрелки, облегчающие понимание, указывают, какими перепадами вызываются изменения сигналов. Этот счетчик, как вы увидите в разд. 8.25, выполняет настолько важную функцию, что выпускается в виде большого числа модификаций, выполненных в виде однокристальных микросхем, включая такие форматы счета, как 4-разрядный, двоично-десятичный и многоцифровой. Соединяя эти счетчики каскадно и воспроизводя их содержимое с помощью цифрового индикатора (например, светодиодного) можно легко построить схему подсчета каких-либо событий. Если разрешить прохождение импульсов на вход счетчика в течение ровно 1 с, то получится счетчик частоты, который будет воспроизводить значение частоты путем подсчета числа периодов в секунду. В разд. 15.10 приводятся схемы этого простого, но очень полезного устройства. Промышленностью выпускаются однокристальные счетчики частоты, в состав которых входят дополнительно генератор, схемы управления и вывода на индикацию. Триггер такого устройства показан на рис. 8.71.

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

8.18. Последовательностная логика — объединение памяти и вентилей

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

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

Рис. 8.57. Классическая последовательностная схема: регистры памяти и комбинационная логика. Эту схему можно легко реализовать с использованием однокристальных регистровых ПМЛ (см. разд. 8.27).

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

Эта с виду простая схема обладает очень большими возможностями. Рассмотрим пример.

Пример: деление на 3. Попробуем построить схему синхронного делителя на 3 с помощью двух D-триггеров, тактируемых входным сигналом. В этом случае D1 и D2 будут входами регистра, Q1 и Q2 — eгo выходами, общая тактовая линия будет представлять главный тактовый вход (рис. 8.58).

Рис. 8.58.

1. Выберем три состояния:

Q1 Q2

______ 

0 0

0 1

1 0

0 0 (т. е. первое состояние)

2. Определим, что должно быть на выходах комбинационной схемы, для того чтобы получить последовательность этих состояний, т. е. что должно поступать на D-входы, для того чтобы получить требуемые состояния на выходах:

3. Построим вентильную схему, которая, с помощью имеющихся выходов, позволяла бы получить требуемые состояния на выходах. В общем случае можно использовать карту Карно, но для данного простого примера можно сразу увидеть, что D1 = Q2, D2 = (Q1 + Q2)'. Этому соответствует схема на рис. 8.59.

Рис. 8.59. Схема деления на 3.

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

Запрещенные состояния. Что произойдет со схемой деления на 3, если ее триггеры каким-то образом окажутся в состоянии (Q1, Q2) = (1, 1)? Это может произойти при включении питания, так как начальное состояние триггеров предсказать невозможно. Из схемы видно, что первый тактовый импульс переведет ее в состояние (1, 0) и далее она будет функционировать как положено. В таких случаях важно производить проверку запрещенных состояний, поскольку схема может случайно оказаться в одном из них. (С другой стороны, все возможные состояния системы можно определить на начальном этапе разработки.) Диаграмма состояний, показанная для данного примера на рис. 8.60, может оказаться полезным диагностическим инструментом. Если в системе используются и другие переменные, то обычно для каждого перехода рядом со стрелкой записываются условия. Стрелки могут идти в обоих направлениях, а также из одного состояния к нескольким другим.

Рис. 8.60. Диаграмма состояний схемы деления на 3.

Упражнение 8.24. Постройте синхронную схему деления на 3 с помощью двух JK-триггеров. Это можно выполнить (16 различными способами) без использования вентилей или инверторов. Когда вы будете составлять таблицу требуемых значений для входов J1, K1 и J2, К2, не забудьте, что для каждой точки J, К существуют две возможности. Например, если выход триггера переходит из 0 в 1, то J, К = 1, X (где Х — любое значение). Наконец, проверьте, не будет ли схема застревать в запрещенном состоянии (это наблюдается в четырех из 16 возможных решений этой задачи).

Упражнение 8.25. Постройте синхронный 2-разрядный реверсивный счетчик: он имеет тактовый вход и вход управления (U/D'); выходы являются выходами триггеров Q1 и Q2. Если вход U/D имеет ВЫСОКИЙ уровень, то он работает как обычный двоичный счетчик, а если НИЗКИЙ, то он считает в обратном направлении — Q2Q1 = 00, 11, 10, 01, 00…

Диаграмма состояний как инструмент проектирования. Диаграмма состояний может оказаться полезной при разработке последовательной логики, особенно в тех случаях, когда переходы из одного состояния в другое могут происходить различным путем. Создавая такую схему, нужно сначала выбрать совокупность единственных состояний системы и каждому из них присвоить собственное имя (т. е. двоичный адрес). Здесь потребуется не менее n триггеров, где n — наименьшее целое, для которого 2n больше или равно числу различных состояний системы. Далее устанавливают правила переходов из одного состояния в другое, т. е. все возможные условия для входа в каждое состояние и выхода из него. Таким образом, задача построения последовательной логики свелась к задаче построения комбинационной логики, которую всегда можно решить с помощью известных методов, например карты Карно. Реальный пример показан на рис. 8.61. Заметим, что здесь могут иметь место состояния, из которых нет перехода к другим состояниям (например, «получение диплома»).

Рис. 8.61. Диаграмма состояний.

Регистровые ПЛМ. Программируемые логические ИС (ПМЛ и ПЛМ, смотрите разд. 8.15) выпускаются как с вентилями, так и с синхронно тактируемыми D-триггерами на одном кристалле. Они известны как регистровые ПМЛ и ПЛМ и являются идеальными для построения последовательностных схем. Вы узнаете, как это делать в разд. 8.27.

8.19. Синхронизатор

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

Пример: синхронизатор импульсов. Еще раз рассмотрим в качестве примера схему, в которой триггер подавителя дребезга разрешает прохождение последовательности импульсов (разд. 8.16). Эта схема открывает вентиль всякий раз, когда ключ замкнут, независимо от фазы, подаваемой на него импульсной последовательности, в результате первый или последний импульс могут оказаться укороченными. Задача состоит в том, что замыкание ключа происходит асинхронно с последовательностью импульсов. В некоторых случаях важно, чтобы все тактовые импульсы имели только полные периоды, и тогда нужно использовать схему синхронизации, подобную представленной на рис. 8.62.

Рис. 8.62. Синхронизатор импульсной последовательности.

При нажатии кнопки «пуск» на выходе вентиля 1 возникает ВЫСОКИЙ уровень, но до появления заднего фронта очередного импульса на выходе Q триггера сохранится НИЗКИЙ уровень. В результате на выход вентиля 3 И-НЕ будут проходить только полные импульсы. На рис. 8.62 показаны временные диаграммы. Кривые со стрелками показывают, какие действия вызываются соответствующими перепадами. Как видно из диаграммы, изменения Q происходят сразу по заднему фронту входного сигнала.

Логические состязания и «всплески». Рассмотренный пример позволяет осветить тонкий, но предельно важный вопрос: что же произойдет, если для переброса триггера будет использоваться положительный перепад? Если вы тщательно проанализируете этот случай, то увидите, что с ПУСКОМ схемы все будет в полном порядке, но если кнопку СТОП нажать в тот момент, когда на входе действует НИЗКИЙ уровень, произойдет весьма неприятная вещь (рис. 8.63).

Рис. 8.63. Логические состязания могут вызвать появление коротких импульсов.

Так как последний (3) вентиль И-НЕ будет открыт до тех пор, пока на выходе триггера не установится НИЗКИЙ уровень (задержка для НС или LSTTЛ составляет приблизительно 20 нс), на выходе схемы возникает короткий «выброс» или «всплеск» (глитч). Это — классический пример «логического состязания». Принимая определенные меры предосторожности, подобных ситуаций можно избежать, что и показывает рассмотренный пример. «Всплески» — это страшная вещь, если они заведутся в ваших схемах. Кроме всего прочего, их невозможно увидеть на осциллографе и вы можете просто не узнать об их существовании. «Всплески» могут самым произвольным образом тактировать цепочки триггеров, они могут расширяться или сужаться до полного исчезновения, проходя через вентили и инверторы.

Упражнение 8.26. Покажите, что рассмотренная схема синхронизатора импульсов (рис. 8.62) не вырабатывает «всплески».

Упражнение 8.27. Спроектируйте схему, которая позволяет пропускать один полный отрицательный импульс (из входной последовательности импульсов) на выход после нажатия кнопки.

Несколько замечаний по поводу синхронизаторов: На D-вход триггера сигнал может поступать не только от ключа с подавителем дребезга, но также и от других логических схем. В средствах сопряжения с ЭВМ и других применениях часто бывает нужно передавать асинхронный сигнал в тактируемое устройство. Идеальным решением в этих случаях является использование тактируемых триггеров или синхронизаторов. В рассмотренной схеме, так же как и во всех других логических схемах, необходимо соответствующим образом подключить неиспользованные входы. В данном случае входы S и R нужно подключить так, чтобы они не влияли на работу схемы (для 74 соединить с ВЫСОКИМ уровнем, а для 4013 заземлить), Неиспользуемые входы, не влияющие на выход (например, входы незадействованных вентилей), можно оставлять неподключенными. Это не относится к элементам КМОП, у которых они должны заземляться, чтобы не появился ток в выходном каскаде (более подробно см. гл. 9). Промышленностью выпускается сдвоенный синхронизатор 74120, однако широкого распространения он не получил.