РАСПРЕДЕЛИТЕЛИ ТАКТОВ НА РЕГИСТРАХ СДВИГА

Регистр сдвига, или сдвиговый регистр (shift register), представляет собой последовательно соединенную цепочку триггеров. Схема сдвигающего регистра на двухступенчатых триггерах JK-типа показана на рис. 3.28. Основной режим работы — это сдвиг разрядов кода, записанного в эти триггеры. По тактовому сигналу «Сдвиг» (Shift) содержимое каждого предыдущего триггера переписывается в следующий по порядку в цепочке триггер в сторону старших или младших разрядов.

Сдвигающий регистр на /^-триггерах

Рис. 3.28. Сдвигающий регистр на /^-триггерах

Триггер Q0 младший, Qn_{ старший; входы каждого триггера (кроме Q0) подключены к выходам соседнего младшего триггера. Когда на все С-входы триггеров поступает активный уровень сигнала «Сдвиг», выходы каждого триггера принимают состояние своего младшего соседа и, таким образом, информация, содержащаяся в регистре, сдвигается на один разряд вправо, в сторону старших разрядов. Триггер Q0 принимает при этом состояние последовательного входа DS (data serial). Информация, поступившая на вход DS во время какого-либо такта, появится на выходе Qn { п-разрядного регистра через п тактов.

В связи с названием направления сдвига в сдвиговых регистрах часто возникает путаница. Сдвиг бывает двух видов: вправо (основной режим, который есть у всех сдвиговых регистров) и влево (этот режим есть только у некоторых, реверсивных сдвиговых регистров). Названия эти отражают внутреннюю структуру регистров сдвига и перезапись сигналов последовательно по цепочке триггеров. При этом триггеры, вполне естественно, нумеруются слева направо, например от 0 до 7 (или от 1 до 8) для 8-разрядных регистров. В результате сдвиг информации регистром вправо представляет собой сдвиг в сторону разрядов, имеющих большие номера, а сдвиг информации регистром влево — это сдвиг в сторону разрядов, имеющих меньшие номера.

Однако, как известно, в записи двоичного числа слева расположены старшие разряды, а справа — младшие разряды. Поэтому сдвиг двоичного числа вправо в математике будет сдвигом в сторону младших разрядов, а в схемотехнике ЭВМ — сдвигом в сторону старших разрядов. Это противоречие — не чей-то злой умысел, просто так исторически сложилось, и об этом надо помнить разработчику цифровой аппаратуры.

В стандартные серии цифровых микросхем входит несколько типов сдвиговых регистров. Большинство регистров сдвига имеет восемь разрядов. Сдвиг двоичного числа осуществляется по положительному или отрицательному фронту тактового сигнала С. Имеется также вход сброса R, по нулевому или единичному сигналу на котором все выходы регистра сбрасываются в нуль.

На рис. 3.29 изображена схема сдвигающего регистра на триггерах /)-типа с динамическим управлением по положительному фронту синхросигнала.

Сдвигающий регистр на D-триггерах

Рис. 3.29. Сдвигающий регистр на D-триггерах

Существенно, что в схеме могут быть использованы только «непрозрачные» триггеры — двухступенчатые или с динамическим управлением. Если поставить прозрачные триггеры («защелки»), то при активном уровне сигнала «Сдвиг» все триггеры становятся прозрачными и сигнал DS успеет пройти столько триггеров, сколько позволит длительность сигнала «Сдвиг».

В интегральном исполнении существуют статические (параллельные), сдвиговые (последовательные) и многофункциональные регистры. Наиболее простой регистр — это микросхема ИР8. Многофункциональный регистр может работать в нескольких режимах: установка в нулевое состояние, параллельное занесение данных, сдвиг вправо (от младшего разряда к старшему), сдвиг влево (от старшего разряда к младшему), хранение данных. Для работы регистра в режиме сдвига вправо или влево предусмотрены входы DSR (Data Serial Right) и DSL (Data Serial Left), на которые поступают данные, синхронизированные с импульсами «Сдвиг». Если в регистр предварительно записать определенное двоичное слово и включить цепь обратной связи, соединяющую выход регистра с его входом, возникает циклический режим. Длительность цикла в тактах определяется числом разрядов регистра и видом функции сигнала обратной связи. На рис. 3.30 приведены два простых примера: кольцевой регистр (а) и счетчик с кодом Джонсона (б).

Кольцевой счетчик. На рис. 3.30, а показана схема кольцевого счетчика, построенного на регистре сдвига с обратной связью. Если предварительно записать «1» в младший разряд, эта единица будет продвигаться вправо по каждому импульсу «Сдвиг». Достигнув старшего разряда, она возвращается снова на вход DS (или DSR), и цикл повторяется. Длительность цикла равна числу разрядов п. Такой режим соответствует распределителю тактов, или счетчику типа «1 из N». На рис. 3.31 показаны рабочие ячейки диаграммы Вейча для

6-разрядного счетчика. Однако эта простая схема не сможет само- восстановиться после сбоя, в результате чего в регистре может не оказаться ни одной единицы и по разрядам регистра будет продвигаться нуль либо появятся лишние единицы. Эти ошибки для схемы на рис. 3.30, а неустранимы.

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

Рис. 3.30. Схемы включения сдвигового регистра с кольцевой (а) и перекрестной (б) обратной связью

Для самовосстановления счетчика из любого недопустимого состояния необходимо в сигнал обратной связи ввести составляющую коррекции. Рабочий цикл содержит п состояний из 2" возможных комбинаций. Например, при п = 6 количество недопустимых состояний счетчика 58. Сигнал обратной связи должен обеспечивать самовосстановление после сбоя. На рис. 3.31, а показан рабочий цикл 6-разрядного кольцевого счетчика, а на рис. 3.31, б поясняется синтез функции DS.

Рабочий цикл 6-разрядного кольцевого счетчика (а) и синтез сигнала обратной связи (б)

Рис. 3.31. Рабочий цикл 6-разрядного кольцевого счетчика (а) и синтез сигнала обратной связи (б)

Выражение для DS имеет вид конъюнкции:

Смысл этой формулы: пока хотя бы один из триггеров внутри регистра, т.е. всех кроме последнего, находится в состоянии «1», на вход DS подается нуль. При этом из регистра «выталкиваются» лишние единицы и тем самым устраняется сбой, от которого в регистре оказалось несколько единиц. Как только регистр обнулится, на вход DS поступит единица и регистр восстановит работу кольцевого счетчика в режиме «1 из N».

Если инверсные выходы триггеров не доступны, проще воспользоваться элементом ИЛИ-НЕ:

Убедимся в том, что сигнал обратной связи обеспечивает самовосстановление после сбоя. Рассмотрим самый трудный случай — состояние Q0QQ2Q3Q4Q5 = 111111. Граф переходов имеет вид: 111111 ->011111 —> 0011П ->000111 ->000011 ->000001. Очевидно, что внутри регистра происходит вытеснение лишних единиц, пока не останется одна единица на выходе старшего разряда. При возникновении нулевого кода 0 0 0 0 0 0 вырабатывается сигнал DQ = 1 и возобновляется правильный цикл.

Счетчик Джонсона имеет 2/7 состояний, где п — количество триггеров. Код Джонсона можно преобразовать в распределитель тактов с выходным кодом «1 из N». Принцип работы счетчика поясняется табл. 3.6.

Счетчик Джонсона строится на сдвиговом регистре с перекрестной обратной связью. На рис. 3.32 приведена схема 4-разрядного счетчика Джонсона, на рис. 3.33 показаны временные диаграммы.

Схема 4-разрядного счетчика Джонсона

Рис. 3.32. Схема 4-разрядного счетчика Джонсона

Временные диаграммы в 4-разрядном счетчике Джонсона

Рис. 3.33. Временные диаграммы в 4-разрядном счетчике Джонсона

Таблица 3.6

Рабочий цикл 8-разрядного счетчика Джонсона

Состояние

е»

Q,

Ог

03

04

Qs

06

От

Код «1 из

0

0

0

0

0

0

0

0

0

QiQi)

1

1

0

0

0

0

0

0

0

т

2

1

1

0

0

0

0

0

0

QiQ

3

1

1

1

0

0

0

0

0

0з02

4

1

1

1

1

0

0

0

0

0403

5

1

1

1

1

1

0

0

0

0504

6

1

1

1

1

1

1

0

0

т

7

1

1

1

1

1

1

1

0

ш

8

1

1

1

1

1

1

1

1

0700

9

0

1

1

1

1

1

1

1

0100

10

0

0

1

1

1

1

1

1

0201

11

0

0

0

1

1

1

1

1

0302

12

0

0

0

0

1

1

1

1

0403

13

0

0

0

0

0

1

1

1

0504

14

0

0

0

0

0

0

1

1

0605

15

0

0

0

0

0

0

0

1

0706

Характерной особенностью кода в счетчике Джонсона являются нарастающие и убывающие «волны» единиц и нулей на выходах регистра, причем среди единиц отсутствуют нули, а среди нулей — единицы.

В этом режиме входы У всех триггеров, кроме младшего, подключаются к прямым выходам Q соседних слева триггеров, а входы К — к инверсным выходам:

На входы младшего триггера необходимо подать такой сигнал, который обеспечивает цикл кода Джонсона. Если рассчитывать на идеальные условия работы, отсутствие сбоев и разрешенное начальное состояние при включении питания, то в качестве сигнала обратной связи достаточно использовать инверсный выход старшего триггера:

Однако, если в результате сбоя счетчик окажется в запрещенном состоянии, а таких состояний при /7 = 8 больше 200, счетчик может не вернуться в свой цикл. Покажем это на примере /7 = 4. Рабочий цикл содержит 8 состояний:

Рабочий цикл

Ложный цикл

Ог

Ог

Ог

Ог

Ог

Ог

0

0

0

0

0

1

0

1

1

0

0

0

0

0

1

0

1

1

0

0

1

0

0

1

1

1

1

0

0

1

0

0

1

1

1

1

1

0

1

0

0

1

1

1

1

1

0

1

0

0

1

1

0

1

1

0

0

0

0

1

1

0

1

1

Поэтому в сигнал DS необходимо ввести коррекцию, которая позволит за конечное число тактов войти в рабочий цикл. Для п, равного 4, 5 и 6, синтез функции DS можно провести на диаграммах Вейча. На рис. 3.34 поясняется процесс синтеза сигнала DS для счетчика Джонсона с числом разрядов 4, 5 и 6. Необходимо доопределить значениями «1» ячейки, соответствующие запрещенным состояниям регистра, с тем чтобы за конечное число тактов «вытолкнуть» из регистра «нули» среди «единиц». При этом допускается, что некоторые запрещенные ячейки можно оставить непокрытыми единицами.

Синтез сигнала обратной связи в 4-разрядном (а); 5-разрядном (6) и 6-разрядном (в) счетчиках Джонсона

Рис. 3.34. Синтез сигнала обратной связи в 4-разрядном (а); 5-разрядном (6) и 6-разрядном (в) счетчиках Джонсона

Для 4-разрядного регистра (см. рис. 3.34, а) сигнал обратной связи

Одна ячейка диаграммы Вейча из запрещенных осталась нулем: 0101 (слева — младший разряд, справа — старший). Остальные семь ячеек покрыты единицами. Проверим, как счетчик выходит после сбоя из неразрешенных состояний в рабочий цикл:

и, наконец, из состояния в ячейке с нулем

Как видно, наибольшее время для самовосстановления после сбоя составляет три такта.

Для 5-разрядного регистра (см. рис. 3.34, б) сигнал обратной связи

В базисе И-НЕ формула приводится к виду

Четыре ячейки диаграммы Вейча остались нулями: 01011, 00101, 01101 и 01001 (слева — младший разряд, справа — старший).

Проверим, как счетчик выходит после сбоя из любой неразрешенной комбинации в рабочий цикл:

Для 6-разрядного регистра (см. рис. 3.34, в) сигнал обратной связи

В базисе И-НЕ эта формула приводится к виду

Остались покрытыми нулями 11 ячеек, соответствующих неразрешенным состояниям регистра:

Например, из комбинации 000101 счетчик выходит в рабочий цикл в такой последовательности:

Из состояния 001001 счетчик переходит в рабочий цикл:

Выражения для сигнала DS в базисе И-НЕ удобны тем, что не требуют использования сигналов с инверсных выходов триггеров, которые в интегральных регистрах, как правило, не предусмотрены.

Применяя принцип индукции, получаем для 8-разрядного счетчика Джонсона формулу сигнала обратной связи:

В базисе И-НЕ формула приводится к виду

Восьмиразрядный счетчик Джонсона имеет N = 2п = 16 разрешенных состояний и 2п -2п = 240 запрещенных. Для построения распределителя тактов на N выходов требуются N двухвходовых конъюнкторов или схем И-НЕ. В первом случае реализуется код «одна единица среди (JV-1) нулей», во втором — код «один нуль среди (N- 1) единиц».

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >