В регистре сдвига присутствует набор триггеров с определёнными связями между ними и организация этих связей такова, что при подаче тактового импульса, общего для всех триггеров, выходное состояние каждого триггера сдвигается в соседний. В зависимости от организации связей этот сдвиг может происходить влево или вправо:
- сдвиг влево - сдвиг вправоВвод информации в регистр может выполнятся различными способами, однако наиболее часто используют параллельный или последовательный ввод, при которых ввод двоичного числа осуществляется или одновременно во все разряды регистра, или последовательно во времени по отдельным разрядам. В счётчиках импульсов находят применение сдвигающие регистры с последовательным вводом и выводом информации и со сдвигом вправо. На рисунке 10 a приведена схема четырёхразрядного регистра сдвига, выполненного на RS-триггерах. В этой схеме каждый выход Q триггера соединён со входом S последующего разряда, а каждый выход
- с входом R. Тактовые входы всех триггеров соединены вместе, и поступление сигнала синхронизации осуществляется одним общим импульсом через логический элемент И-НЕ (DD7). Состояние первого триггера определяется входными сигналами на входах Х1, Х2 логического элемента И-НЕ (DD5). На вход Х1 подаётся текущая информация, а на вход Х2 сигнал разрешения её передачи. Логический элемент НЕ используется (DD6) используется для инвертирования входного сигнала, подаваемого на вход S.На рисунке 10 б приведены временные диаграммы выходных сигналов триггеров и состояния регистров при записи в первый разряд единичного сигнала. Если при поступлении первого тактового импульса на входах Х1 и Х2 установлены сигналы Х1 = Х2 = 1, которые затем снимаются к приходу второго тактового импульса, то в результате в первый триггер будет записан сигнал Q1 = 1. С приходом второго тактового импульса в первый триггер будет записан сигнал Q1 = 0, а на выходе второго триггера появится сигнал Q2 = 1, который перед этим был на выходе второго триггера. При поступлении последующих тактовых импульсов единичный сигнал перемещается последовательно в третий и четвёртый триггеры, после чего все триггеры устанавливаются в нулевое состояние.
a) n | Q1 | Q2 | Q3 | Q4 |
0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 1 |
б)
Рисунок 10. Схема четырёхфазного регистра сдвига (а), временные диаграммы его сигналов и состояния регистров при записи в первый разряд единичного сигнала (б)
Сдвиговые регистры также можно реализовать на D-триггерах ил JK-триггерах. Для всех регистров сдвига характерны следующие положения:
1) необходима предварительная установка исходного состояния и ввод единицы в первый триггер
2) для регистра из n триггеров после поступления n входных тактовых импульсов первоначально введённая единица выводится, вследствие чего прямые выходы всех регистров оказываются в нулевом состоянии.
Интегральные микросхемы регистров сдвига бывают реверсивными, то есть выполняющими сдвиг в любом направлении: влево или вправо. Направление сдвига определяется значением управляющего сигнала.
Рисунок 11. Реализация регистра сдвига на однотактных RS-триггерах
Последовательный регистр сдвига обладает двумя недостатками: он позволяет вводить только по одному биту информации на каждом тактовом импульсе и, кроме того, каждый раз при сдвиге информации в регистре вправо теряется крайний правый информационный бит. На рисунке 12 показана система, которая позволяет осуществлять одновременную параллельную загрузку 4 бит информации.
Рисунок 12. Структурная схема 4-разрядного параллельного регистра
Входы 1, 2, 3, 4 в этом устройстве являются информационными входами. Эту систему можно снабдить еще одной полезной характеристикой - возможностью кольцевого перемещения информации, когда данные с выхода устройства возвращаются на его вход и не теряются.
Рисунок 13. Логическая схема четырёхразрядного параллельного кольцевого регистра
Схема 4-разрядного параллельного кольцевого регистра сдвига показана на рисунке 13. В этом регистре сдвига используются четыре JK-триггера. Благодаря цепи обратной связи введенная в регистр информация, которая обычно теряется на выходе четвёртого триггера, будет циркулировать по регистру сдвига. Сигналом очистки регистра (установки его выходов в состояние 0000) является уровень логического 0 на входе CLR. Входы параллельной загрузки данных 1, 2, 3 и 4 связаны со входами предварительной установки триггеров (PS), что позволяет устанавливать уровень логической 1 на любом выходе (1, 2, 3, 4). Если на один из этих входов даже кратковременно подать логический 0, то на соответствующем выходе будет установлена логическая 1. Подача тактовых импульсов на входы C всех JK-триггеров приводит к сдвигу информации в регистре вправо. Из четвёртого триггера данные передаются в первый триггер (кольцевое перемещение информации).
Таблица 1.
№ | Входы | Выходы | ||||||||
Очистка | Параллельная загрузка данных | № тактового импульса | 1 | 2 | 3 | 4 | ||||
1 | 2 | 3 | 4 | |||||||
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
2 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
3 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
4 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 |
5 | 1 | 1 | 1 | 1 | 1 | 2 | 0 | 0 | 0 | 1 |
6 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 0 | 0 | 0 |
7 | 1 | 1 | 1 | 1 | 1 | 4 | 0 | 1 | 0 | 0 |
8 | 1 | 1 | 1 | 1 | 1 | 5 | 0 | 0 | 1 | 0 |
9 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |
10 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | |
11 | 1 | 1 | 1 | 1 | 1 | 6 | 0 | 0 | 1 | 1 |
12 | 1 | 1 | 1 | 1 | 1 | 7 | 1 | 0 | 0 | 1 |
13 | 1 | 1 | 1 | 1 | 1 | 8 | 1 | 1 | 0 | 0 |
14 | 1 | 1 | 1 | 1 | 1 | 9 | 0 | 1 | 1 | 0 |
15 | 1 | 1 | 1 | 1 | 1 | 10 | 0 | 0 | 1 | 1 |
Принцип работы параллельного регистра сдвига описан в таблице 1. При включении питания на выходах регистра может установиться любая двоичная комбинация, такая, например, как в строке 1 таблицы. Подача логического 0 на входы CLR триггеров инициирует очистку регистра (строка 2). Далее (строка 3) осуществляется загрузка в регистр двоичной комбинации 0100. Последовательные тактовые импульсы вызывают сдвиг введенной информации вправо (строки 4 - 8). В строках 5 и 6: единица из крайнего правого триггера (четвёртого) переносится в крайний левый триггер (первый). В данном случае можно говорить о кольцевом перемещении единицы в регистре. Далее (строка 9) вновь инициируется очистка регистра с помощью входа CLR. Загружается новая двоичная комбинация 0110 (строка 10). Подача 5 тактовых импульсов (строки 11-15) приводит к кольцевому сдвигу информации на 5 позиций вправо. Для возвращения данных в исходное состояние требуется 4 тактовых импульса.