Искусство схемотехники. Том 2 (Изд.4-е) - Хоровиц Пауль. Страница 45
Запрещенные состояния. Что произойдет со схемой деления на 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. Спроектируйте схему, которая позволяет пропускать один полный отрицательный импульс (из входной последовательности импульсов) на выход после нажатия кнопки.