Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
20.03.2015
Размер:
2.4 Mб
Скачать

2.13. Последовательные схемы

Логические схемы подразделяются на два класса: комбинаторные и последова­тельные. Выходной сигнал комбинаторной схемы полностью определяется теку­щими значениями на ее входах. Примерами таких схем могут служить дешифра­торы и мультиплексоры, о которых рассказывалось в разделах 2.9 и 2.10. Выход последовательной схемы зависит не только от текущих значений на ее входах, но и от последовательности предыдущих входных значений. Такие схемы могут на­ходиться в разных состояниях, что зависит от того, какой была последователь­ность предшествующих входных данных. В разделах 2.7 и 2.8 вам встречались два типа таких схем, а именно сдвиговые регистры и счетчики. Ниже мы приведем еще несколько примеров последовательных схем, рассмотрим их общую структуру и базовые принципы разработки.

2.13.1. Пример счетчика с прямым/обратным счетом

На рис. 2.33 показана конфигурация счетчика с прямым счетом (суммирующего счетчика), реализованного посредством трех триггеров. Этот счетчик считает в та­ком порядке: 0,1,2,..., 7,0,.... Для обратного счета, то есть счета в порядке 0,7,6,..., 1,0,..., применяются похожие схемы. При построении этих простых схем используется заложенная в Т-триггере возможность переключения состояний.

Сейчас же мы рассмотрим возможность реализации счетчиков на основе D-триггеров. В частности, речь пойдет о структуре счетчика, который способен считать как в прямом, так и в обратном порядке, в зависимости от значения на внешнем управляющем входе. Для того чтобы приводимый пример не оказался слишком большим, мы ограничимся счетом по модулю 4, для которого достаточ­но двух битов состояния, представляющих четыре возможных значения счетчика. Счетчик будет сконструирован на основе стандартной технологии синтеза после­довательных схем. Такая схема считает в прямом направлении, если входной сиг­нал х равен 0, и в обратном, если входной сигнал равен 1. Текущее значение счет­чика будет изменяться на отрицательном фронте тактового сигнала. Предполо­жим, что нас особо интересует состояние счетчика в тот момент, когда мы досчитаем до 2. Поэтому при значении счетчика 2 мы будем выдавать выходной сигнал z = 1, а все остальное время сигнал z будет равен 0.

Такой счетчик можно реализовать как последовательную схему. Для того что­бы определить новое значение счетчика, которое будет установлено после очеред­ного тактового импульса, достаточно знать значение x и текущее значение счетчи­ка. Предшествующие его значения для этого не нужны. Если текущее значение равно 2 и x = 0, следующим значением будет 3. И не важно, получено текущее зна­чение путем прямого счета от 1 или путем обратного счета от 3.

Прежде чем показать, как реализуется такая схема, давайте опишем ее поведе­ние с помощью диаграммы состояний. У нашего счетчика имеется четыре разных состояния: S0, S1, S2 и S3. Диаграмма состояний — это граф, в котором состояния представлены окружностями (иногда называемыми узлами). Переходы между состояниями представлены стрелками с надписями. Связанная со стрелкой над­пись указывает, какое значение переменной x вызывает данный переход, и какое значение счетчика получается в результате. Диаграмма состояний для нашего счетчика с прямым/обратным счетом приведена на рис. 2.45. Например, стрелка, исходящая от состояния Sl (счетчик = 1) при x - 0, указывает на состояние S2. При этом сообщается, что пока схема находится в состоянии Sl и x = 0, выходное значение z должно быть равным 0. Стрелка, ведущая от узла S2 к узлу S3, указы­вает, что когда x = 0, на следующем такте будет выполнен переход в состояние S3, а выходное значение z будет установлено в 1.

Обратите внимание, что диаграмма состояний описывает функциональное по­ведение счетчика вне какой бы то ни было связи с его конкретной реализацией. Так, рис. 2.45 может соответствовать цифровой схеме, механическому счетному устройству или компьютерной программе. Подобные диаграммы позволяют опи­сывать любую систему с последовательным поведением.

В качестве альтернативы диаграмме состояний для представления той же ин­формации можно воспользоваться таблицей состояний. Такая таблица для наше­го примера приведена на рис. 2.46. В ней описаны переходы из каждого текущего состояния в следующие состояния, определяемые входным значением x. Выход­ной сигнал z определяется текущим состоянием схемы и входным значением х.

Рис. 2.45. Диаграмма состояния для счетчика с прямым/обратным счетом по модулю 4, сигнализирующего о значении 2

Рис. 2.46. Таблица состояний для счетчика с прямым/обратным счетом

Определив функциональное поведение счетчика, можно переходить к его фи­зической реализации. Для того чтобы закодировать все четыре состояния счетчи­ка, достаточно двух битов. Обозначим их как y2 (старший бит) и у1 (младший бит). Состояния считчика, определяемые значениями переменных y2 и у1, мы бу­дем записывать в форме y2y1. У нашего счетчика четыре состояния y2y1: S0 = 00, Sl = 01, S2 = 10 и S3 = 11. Как видите, это просто двоичная запись чисел из диапа­зона от 0 до 3, применяемая для обеспечения наглядности счета. Переменные y2 и у1 называются переменными состояния последовательной схемы. При указанных значениях этих переменных таблицу состояний для нашего примера можно пере­писать так, как показано на рис. 2.47. Для обозначения следующих состояний в ней используются переменные Y2 и Y1.

Мы могли бы выбрать и другие обозначения состояний y2y1. В частности, они могут быть такими: S0 = 10, S1 = 11, S2 = 01 и S3 = 00, Но такие обозначения не со­всем логичны, хотя схема прекрасно бы функционировала. Реализация различ­ных состояний обычно требует разных затрат.

Мы планировали создать нашу схему на основе D-триггеров, в которых значе­ния двух переменных состояния будут сохраняться между последовательными тактовыми импульсами. Выход Q каждого триггера будет представлять перемен­ную текущего состояния уi, а вход D — переменную следующего состояния Yi. За­метьте, что Yi, является функцией переменных y2y1 и х (это хорошо видно на рис. 2.47).

Рис. 2.47. Значения состояний для примера, приведенного на рис. 2.46

На основе представленной здесь таблицы для функций Y2 и Y1 можно соста­вить вот такие выражения;

Выходное значение z определяется следующим образом:

С учетом этих выражений составляется схема, приведенная на рис. 2.48.

Рис. 2.48. Реализация счетчика с прямым/обратным счетом

13