Лекции / Схемотехника ЭВМ. Лекция 05. Сдвиговые регистры
.pdf2.4. Последовательные (сдвиговые) регистры
Последовательный (сдвиговый или сдвигающий) регистр - это регистр, содержимое которого при подаче тактового сигнала (управляющего сигнала «сдвиг») может сдвигаться в сторону старших или младших разрядов. Если регистр выполняется на непрозрачных триггерах, то управление сдвигом осуществляется однофазной синхронизацией. Сдвиговый регистр, выполненный на одноступенчатых защёлках, должен иметь двухфазную систему синхронизации.
В качестве основной элементарной операции сдвига слова применяется сдвиг на один разряд. Если необходимо слово сдвинуть на большее число разрядов, эта операция повторяется соответствующее число раз либо вводится специальная элементарная операция с использованием сдвигателей или других схемных решений. С помощью операции сдвига можно осуществить последовательную передачу слова: поразрядный ввод и поразрядную выдачу слова.
2.4.1. Организация цепей приёма и выдачи
Организация цепей приёма и выдачи данных в сдвиговых регистрах не отличается от процедур, аналогичных для параллельных регистров. Это относится как к последовательной, так и к параллельной загрузке и выдаче данных.
2.4.2. Организация цепей сдвига
Рассмотрим сначала организацию цепей сдвига для случая однофазной синхронизации в предположении, что сдвиг производится влево (в сторону старших разрядов) на один разряд за один такт. Функционирование цепей сдвига представлено в табл.2.13 в обобщённом виде для двух различных типов триггеров (D и JK). Заполнение этой таблицы осуществляется с использованием соответствующих характеристических таблиц этих триггеров. Из рис.2.29 следует
D =Q |
; |
(2.23) |
i i−1 |
|
|
Ji =Qi−1;
(2.24)
Ki =Qi−1.
Схемы соответствующих 4-разрядных регистров сдвига приведены на рис.2.30. Если сдвиговый регистр выполняется на одноступенчатых тактируемых триггерах, то он должен иметь двухфазную систему синхронизации. На рис.2.31 в качестве примера приведена схема сдвигового регистра на D-триггерах, осуществляющая сдвиг в сторону младших разрядов (вправо).
Таблица 2.13
Реализация сдвига в сторону старших разрядов регистра
|
|
|
Номер |
|
|
Q t |
Q t |
Q t+1 |
|
D |
* |
|
|
J |
* |
|
K |
* |
|
|||||||
|
|
|
набора |
|
|
i |
|
i-1 |
|
i |
|
|
|
i |
|
|
i |
|
i |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
0 |
|
|
0 |
|
0 |
|
0 |
0 |
|
|
0 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
0 |
|
1 |
|
1 |
|
|
1 |
|
|
1 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
1 |
|
0 |
|
0 |
0 |
|
|
|
|
|
|
1 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
1 |
|
1 |
|
1 |
|
|
1 |
|
|
|
|
|
|
0 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D * |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
i |
|
|
|
Qi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
|
1 |
|
|
|
0 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Qi-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
а |
|
|
|
|
|
|
|
|
|
|
|
|
|
J * |
|
|
|
|
|
|
|
|
|
|
|
|
|
K |
* |
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Qi |
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
Qi |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
0 |
|
|
|
|
|
|
|
|
1 |
|
|
0 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
Qi-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Qi-1 |
||||
|
|
|
|
б |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в |
Рис.2.29. Карты Карно: а - для Di*; б - для Ji*; в - для Ki*
|
|
Q0 |
|
Q1 |
|
Q2 |
Q3 |
DR |
TT |
D |
TT |
D |
TT |
D |
TT |
D |
|||||||
C |
|
C |
|
C |
|
C |
|
С |
|
|
|
|
|
|
|
|
|
Q0 |
а |
Q1 |
|
Q2 |
Q3 |
|
|
|
|
||||
DR |
TT |
J |
TT |
J |
TT |
J |
TT |
J |
|
C |
C |
C |
C |
1 |
K |
K |
K |
K |
|
||||
С |
|
|
|
|
б
Рис.2.30. 4-разрядные сдвиговые регистры: а - на D-триггерах;
б - на JK-триггерах
|
|
Q2 |
Q1 |
Q0 |
|
D |
T |
D T |
D T |
|
C |
|
C |
C |
C2 |
|
|
|
|
DL |
D T |
D T |
D |
T |
|
C |
C |
C |
|
C1 |
|
|
|
|
Рис.2.31. Сдвиговый регистр с двухфазной системой синхронизации
2.4.3. Организация цепей сдвига в реверсивных регистрах |
|||||
При двунаправленном сдвиге появляются два последовательных |
|||||
входа: вход, принимающий входные данные, вдвигаемые в регистр со |
|||||
стороны младшего разряда DR (data right - данные справа), и вход со |
|||||
стороны старшего разряда DL (data left - данные слева). Эти же входы |
|||||
используются и при наращивании разрядов регистра: последовательный |
|||||
вход DR старшей секции общего регистра подключается к выходу |
|||||
старшего разряда соседней младшей секции общего регистра; последо- |
|||||
вательный вход DL младшей секции общего регистра подключается к |
|||||
выходу младшего разряда соседней старшей секции общего регистра. |
|||||
Кроме последовательных входов сдвиговые регистры могут иметь |
|||||
входы параллельной загрузки за один такт и обязательно управляющие |
|||||
входы, определяющие режим работы сдвигового регистра. Для эконом- |
|||||
ного использования выводов микросхемы часто управляющие сигналы |
|||||
не вводят непосредственно, а формируют их с помощью дешифратора |
|||||
режимов. Другой приём упрощения структуры сдвигового регистра за- |
|||||
ключается в реализации цепей сдвига только в одном направлении, а |
|||||
для сдвига данных в другом направлении используется режим парал- |
|||||
лельной загрузки, для чего необходимо осуществить соответствующую |
|||||
коммутацию внешними соединениями между выходами разрядов реги- |
|||||
стра и входами параллельной загрузки. |
|
|
|
|
|
Рассмотрим несколько примероворганизации сдвиговых регистров. |
|||||
Пример 2.14. Разработать реверсивный сдвиговый регистр на универ- |
|||||
сальных D-триггерах (типа К155ТМ2). Так как регистр выполняет две мик- |
|||||
рооперации, то код микрооперации (управляющий сигнал а) будет одно- |
|||||
разрядным. Примем, что при а = 0 обеспечивается сдвиг вправо (к |
|||||
младшимразрядам), а приа= 1 - влево(к |
D * |
|
|
|
|
старшим разрядам). Функционирование |
|
|
|
||
i |
Qi |
|
|
||
такого регистра отражено в табл.2.14, где |
|
|
|
||
Qi - произвольный разряд сдвигового |
0 |
1 |
1 |
0 |
|
регистра, Qi+1 и Qi-1 - соответственно бли- |
a |
|
|
|
|
жайший старший и младший разряды, |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
Qi+1 |
Di - информационныйвход i-горазряда. |
1 |
1 |
1 |
1 |
|
Из рис.2.32 следует |
|
||||
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
Di =aQi−1 +aQi+1 . |
|
|
|
|
|
(2.25) |
сдвиго- |
|
|
Qi-1 |
|
Фрагмент реверсивного |
Рис.2.32. Карта Карно для Di* |
||||
вого регистра на D-триггерах приведён |
|
|
|
|
|
на рис.2.33. |
|
|
|
|
|
Таблица 2.14
Реализация реверсивного сдвигового регистра (к примеру 2.14)
Номер |
a |
Q i+t |
1 |
Q ti |
Q it-1 |
Qi t+1 |
набора |
|
|
|
|
|
D* |
0 |
0 |
0 |
|
0 |
0 |
0 |
|
|
|
|
|
|
|
1 |
0 |
0 |
|
0 |
1 |
0 |
|
|
|
|
|
|
|
2 |
0 |
0 |
|
1 |
0 |
0 |
|
|
|
|
|
|
|
3 |
0 |
0 |
|
1 |
1 |
0 |
|
|
|
|
|
|
|
4 |
0 |
1 |
|
0 |
0 |
1 |
|
|
|
|
|
|
|
5 |
0 |
1 |
|
0 |
1 |
1 |
|
|
|
|
|
|
|
6 |
0 |
1 |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
7 |
0 |
1 |
|
1 |
1 |
1 |
|
|
|
|
|
|
|
8 |
1 |
0 |
|
0 |
0 |
0 |
|
|
|
|
|
|
|
9 |
1 |
0 |
|
0 |
1 |
1 |
|
|
|
|
|
|
|
10 |
1 |
0 |
|
1 |
0 |
0 |
|
|
|
|
|
|
|
11 |
1 |
0 |
|
1 |
1 |
1 |
|
|
|
|
|
|
|
12 |
1 |
1 |
|
0 |
0 |
0 |
|
|
|
|
|
|
|
13 |
1 |
1 |
|
0 |
1 |
1 |
|
|
|
|
|
|
|
14 |
1 |
1 |
|
1 |
0 |
0 |
|
|
|
|
|
|
|
15 |
1 |
1 |
|
1 |
1 |
1 |
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
& |
1 |
i+1 |
& |
1 |
i |
& |
1 |
i-1 |
|
|
|
|
|
|
|||
TT |
|
D TT |
& |
|
D TT |
& |
|
D TT |
& |
|
C |
|
C |
|
C |
||
|
|
|
|
|
|
|||
C |
|
|
|
|
|
|
|
|
Рис.2.33. Фрагмент реверсивного сдвигового регистра
Пример 2.15. Разработать реверсивный сдвиговый регистр на универсальных JK-триггерах (типа 564ТВ1). Примем, что при а = 0 обеспечивается сдвиг влево (к старшим разрядам), а при а = 1 - вправо (к младшим разрядам). Функционирование такого регистра отражено в табл.2.15. Из рис.2.34 следует
|
J = aQ |
+ aQ |
; |
K = aQ |
+1 |
+ aQ . |
(2.26) |
||
J* |
i |
i+1 |
i−1 |
|
i |
i |
i−1 |
|
|
Qi |
|
|
|
K* |
Qi |
|
|
|
|
a |
|
0 |
0 |
|
a |
1 |
1 |
|
|
|
1 |
1 |
|
0 |
0 |
|
|
||
|
|
|
|
|
|
||||
|
|
1 |
Qi+1 |
|
1 |
0 |
|
Qi+1 |
|
|
|
0 |
|
|
|
|
|||
|
|
1 |
0 |
|
|
1 |
0 |
|
|
|
|
Qi-1 |
|
|
|
|
|
Qi-1 |
|
|
|
а |
|
|
|
|
|
б |
|
|
|
Рис.2.34. Карты Карно: а - для J*; б - для K* |
|
УпростимвыражениедляKi , проделавочевидныепреобразования:
Ki =aQi+1 +aQi−1 = aQi+1 aQi−1 =
=(a +Qi+1)(a +Qi−1) = aQi+1 +aQi−1 = J .
(2.27)
Фрагмент реверсивного сдвигового регистра на JK-триггерах приведён на рис.2.35.
Таблица 2.15
Реализация реверсивного сдвигового регистра (к примеру 2.15)
набораНомер |
a |
Q i+t |
1 |
Q ti |
Q it-1 |
Qi t+1 |
J* |
K* |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
|
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
2 |
0 |
0 |
|
1 |
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
3 |
0 |
0 |
|
1 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
4 |
0 |
1 |
|
0 |
0 |
0 |
0 |
|
5 |
0 |
1 |
|
0 |
1 |
1 |
1 |
|
6 |
0 |
1 |
|
1 |
0 |
0 |
|
1 |
7 |
0 |
1 |
|
1 |
1 |
1 |
|
0 |
8 |
1 |
0 |
|
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
9 |
1 |
0 |
|
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
10 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
11 |
1 |
0 |
|
1 |
1 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
12 |
1 |
1 |
|
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
13 |
1 |
1 |
|
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
14 |
1 |
1 |
|
1 |
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
15 |
1 |
1 |
|
1 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
Уст. «0» a
1
& |
1 |
|
i+1 |
|
|
||
|
|
R |
TT |
& |
|
J |
|
|
|
C |
|
|
|
K |
|
|
1 |
S |
|
|
|
|
C
Уст. «1»
& |
1 |
|
i |
|
|
||
|
|
R |
TT |
& |
|
J |
|
|
|
C |
|
|
|
K |
|
|
1 |
S |
|
|
|
|
& |
1 |
|
i-1 |
|
|
||
|
|
R |
TT |
& |
|
J |
|
|
|
C |
|
|
|
K |
|
|
1 |
S |
|
|
|
|
Рис.2.35. Фрагмент реверсивного сдвигового регистра
Пример 2.16. Разработать на JK-триггерах регистр, работающий в двух режимах: 1) при управляющем сигнале V = 0 должна осуществляться операция сдвига в сторону старших разрядов, 2) при V = 1 должна осуществляться параллельная загрузка регистра внешними данными.
Функционирование такого регистра отражено в табл.2.16, где Di - i-й разряд параллельного входного кода.
Из рис.2.36 следует
J =VD +VQ |
|
; |
K =VD +VQ . |
(2.28) |
||||
i |
i |
i−1 |
|
i |
i |
i−1 |
|
|
J* |
Qi-1 |
|
|
|
K* |
Qi-1 |
|
|
0 |
|
0 |
|
|
V |
1 |
1 |
|
V |
|
1 |
|
|
0 |
0 |
|
|
1 |
|
Di |
|
Di |
||||
1 |
|
0 |
|
0 |
1 |
|||
|
|
|
|
|
||||
1 |
|
0 |
|
|
|
0 |
1 |
|
|
Qi |
|
|
|
|
|
Qi |
|
|
а |
|
|
|
|
|
б |
|
Рис.2.36. Карты Карно: а - для J*; б - для K* |
|
Учитывая преобразования, проделанные в (2.27), можно записать
9 |
C1 |
RG |
|
|
|
|
8 |
|
|
|
|
||
C2 |
|
|
|
|
||
|
|
|
Q0 |
13 |
||
|
|
|
|
|||
1 |
|
|
|
|
|
|
DR |
|
|
12 |
|||
|
|
|
||||
|
|
|
Q1 |
|||
|
|
|
|
|||
6 |
|
|
|
|
|
|
V |
|
|
11 |
|||
|
|
|
||||
|
|
|
Q2 |
|||
|
|
|
|
|||
2 |
|
|
|
|
|
|
D0 |
|
|
10 |
|||
|
|
|
||||
3 |
|
|
|
|||
D1 |
|
|
Q3 |
|||
4 |
|
|
|
|
||
D2 |
|
|
|
|
|
|
5 |
|
|
|
|
|
|
D3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 - 0 В ; 14 - + 5 В |
|||||
Рис.2.37. |
Функциональное |
|||||
обозначение ИС |
типа |
|||||
К155ИР1, |
555ИР1 |
и т.п. |
Ki = |
Ji |
. |
(2.29) |
По уравнениям (2.28) и (2.29) реализована схема универсального регистра типа К155ИР1 (аналогичная схема реализована и в других сериях ИС). На рис.2.37 приведено функциональное обозначение этой ИС с указанием номеров выводов микросхемы, в табл.2.17 приведены режимы функционирования [19], а на рис.2.38 - полная схема регистра. Дополнительной особенностью ИС типа 155ИР1 является реализация независимых входов синхронизации для режима сдвига С1 и для режима параллельной загрузки С2, коммутация этих входов осуществляется входом установки режима V. Для большинства практических применений С1 = = С2, т.е. используется одинсинхросигнал.