Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие (АЛО ЭВМ) - Часть 2.pdf
Скачиваний:
61
Добавлен:
13.02.2021
Размер:
1.86 Mб
Скачать

для сигнала y2, из которой следует:

y = Q3Q2 + Q3Q2 = Q3 Å Q2 (2.20)

Схема, реализующая осведомительные сигналы y1 и y2, приведена на рис.2.27.

 

&

 

 

RG

Q3

 

y1

 

 

 

 

Q2

 

 

 

Q1

=1

y2

 

 

 

 

 

 

Q0

 

 

 

Рис.2.27. Схема реализации y1 и y2

 

 

Пример 2.13. Разработать схему передачи данных с регистра на один из восьми приёмников. Для решения этой задачи необходимо использовать селектор «1 из 8-ми», в качестве которого можно взять стробируемый дешифратор «1 из 8-ми». Соответствующая схема приведена на рис.2.28.

 

a2

DC

y0

 

4

y1

 

 

RG Qi+1

a1

2

y2

Qi

 

y3

a0

 

y4

 

1

y5

Qi-1

 

 

 

y6

 

 

V

y7

Рис.2.28. Схема передачи выходных данных

в один из восьми приёмников

Поясним её работу. Для произвольного выхода yj дешифратора можно записать:

~ ~ ~

(2.21)

y j = Va2a1a0 .

где a~2a~1a~0 - произвольный адрес приёмника (от 0 до 7).

Пусть подан адрес 5, т.е. а2а1а0 = 101, учитывая, что V = Qi, для у5 можно записать

y5 =

Q

ia2

a1

a0 =

Q

i ×1×

0

×1 = Qi

(2.22)

На остальных выходах дешифратора при этом адресе будет установлен уровень «1».

Очевидно, что передача данных с регистра на все восемь приёмников одновременно является тривиальной задачей - достаточно соединить параллельно одноименные входные линии всех приёмников и подключить их к соответствующим разрядам регистра.

2.3. Регистры-файлы (сверхоперативная память)

Сверхоперативная память содержит обычно небольшое число слов, имеет малое время доступа и часто входит непосредственно в состав арифметических устройств, где используется для хранения промежуточных данных в течение небольшого времени.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Например, в сериях ИС 533 и 555 есть ИС типа ИР26 (с тремя состояниями выхода) и ИР32 (с открытым коллектором на выходе), каждая из которых представляет собой регистровый файл, построенный как четырёхсловный по четыре разряда слово. Это обеспечивает раздельное декодирование и адресацию четырёх слов как для записи, так и для считывания данных и позволяет осуществлять одновременную запись по одному адресу и считывание - по другому. Наличие третьего состояния для ИС типа ИР26 (ОК для ИР32) позволяет соединять параллельно выходы большого числа регистров для записи и хранения n- четырёхсловных данных по четыре разряда слово. Структуру и режимы работы для указанных ИС см. в [3133]. В серии 564 есть ИС типа ИР11 и ИР12, каждая из которых обеспечивает одновременное и независимое считывание двух слов. ИС 564ИР11 состоит из восьми четырёхразрядных регистров, включающих в себя: матрицу памяти, в которой каждый столбец образует отдельный регистр; дешифраторы адреса чтения первого и второго слова; дешифратор адреса записи и входной регистр. Вывод данных - параллельный через два независимых порта.

ИС 564ИР12 состоит из четырёх четырёхразрядных регистров и имеет аналогичную структуру. Выходы этой ИС трёхстабильные, что позволяет, например, строить на их основе буферные ЗУ, работающие непосредственно на магистраль коллективного пользования. Структуру и режимы работы для указанных ИС см. в [10].

2.4. Последовательные (сдвиговые) регистры

Последовательный (сдвиговый или сдвигающий) регистр - это регистр, содержимое которого при подаче тактового сигнала (управляющего сигнала «сдвиг») может сдвигаться в сторону старших или младших разрядов. Если регистр выполняется на непрозрачных триггерах, то управление сдвигом осуществляется однофазной синхронизацией. Сдвиговый регистр, выполненный на одноступенчатых защёлках, должен иметь двухфазную систему синхронизации.

В качестве основной элементарной операции сдвига слова применяется сдвиг на один разряд. Если необходимо слово сдвинуть на большее число разрядов, эта операция повторяется соответствующее число

раз либо вводится специальная элементарная операция с использованием сдвигателей или других схемных решений. С помощью операции сдвига можно осуществить последовательную передачу слова: поразрядный ввод и поразрядную выдачу слова.

2.4.1. Организация цепей приёма и выдачи

Организация цепей приёма и выдачи данных в сдвиговых регистрах не отличается от процедур, аналогичных для параллельных регистров. Это относится как к последовательной, так и к параллельной загрузке и выдачи данных.

2.4.2. Организация цепей сдвига

Рассмотрим сначала организацию цепей сдвига для случая однофазной синхронизации в предположении, что сдвиг производится влево (в сторону старших разрядов) на один разряд за один такт. Функционирование цепей сдвига представлено в табл. 2.13 в обобщённом виде для двух различных типов триггеров (D и JK). Заполнение этой таблицы осуществляется с использованием соответствующих характеристических таблиц этих триггеров.

Таблица 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

 

 

 

 

 

 

 

 

 

 

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

 

 

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*

 

Из рис.2.29 следует

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

= Q

1

;

 

 

 

(2.23)

 

 

 

 

i

i

 

 

 

 

 

 

 

 

 

J = Q

1

;

 

 

 

 

 

 

 

 

i

i

 

 

 

 

(2.24)

 

 

 

 

K

= Q

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

i

 

i−1

 

 

 

 

Схемы соответствующих 4-разрядных регистров сдвига приведены на рис.2.30.

 

 

 

 

Q0

 

Q1

 

Q2

Q3

DR

 

D

TT

D

TT

 

 

D

TT

D

TT

 

 

 

 

 

 

C

 

C

 

 

 

C

 

C

 

С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

 

 

Q1

 

Q2

Q3

 

 

 

 

Q0

 

 

 

DR

 

J

TT

J

TT

 

 

J

TT

J

TT

 

 

 

 

 

 

C

 

C

 

 

 

C

 

C

 

 

1

K

 

K

 

 

 

K

 

K

 

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

Рис.2.30. 4-разрядные сдвиговые регистры: а - на D-триггерах;

 

 

 

 

б - на JK-триггерах

 

 

 

Если сдвиговый регистр выполняется на одноступенчатых тактируемых триггерах, то он должен иметь двухфазную систему синхронизации. На рис.2.31 в качестве примера приведена схема сдвигового регистра на D-триггерах, осуществляющая сдвиг в сторону младших разрядов (вправо).

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

 

 

 

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 - влево (к старшим разрядам). Функционирование такого регистра отражено в табл.2.14, где Qi - произвольный разряд

сдвигового регистра, Qi+1 и Qi-1

-

соответственно

ближайший

старший

и

младший

разряды,

D

-

информационный вход i-го разряда.

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

D *

 

 

 

 

 

 

 

 

 

 

 

i

Qi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

Qi+1

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

 

 

 

 

 

 

 

 

 

Qi-1

 

 

 

 

 

 

 

 

 

Рис.2.32. Карта Карно для Di*

 

 

 

 

 

 

Из рис.2.32 следует

D = aQ

+

 

 

.

(2.25)

aQ

i

i−1

 

 

i+1

 

 

Фрагмент реверсивного сдвигового регистра на D-триггерах приведен на рис.2.33.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Таблица 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

+ a

 

 

.

(2.26)

Q

i

i+1

i1

i

i+1

 

i1

 

 

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

J*

Qi

K*

a

0

0

 

a

 

1

1

 

1

Qi+1

 

0

 

1

0

 

Qi-1

 

 

а

 

 

Qi

1

1

0

0

1

Qi+1

0

1

0

 

Qi-1

 

б

Рис.2.34. Карты Карно: а - для J*; б - для K*

Упростим выражение для Ki , проделав очевидные преобразования:

K =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

aQ

 

 

Q

 

 

= aQ

 

×aQ

 

 

 

 

i

i+1

 

i−1

 

 

 

 

 

i+1

 

 

 

i−1

 

 

(2.27)

=

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

=

J

.

(a + Q

)(a + Q

 

)

aQ

+1

+ aQ

 

 

 

 

i+1

 

 

 

i−1

 

 

 

 

 

i

 

 

 

 

i−1

 

 

 

Фрагмент реверсивного сдвигового регистра на JK-триггерах приведен на рис.2.35.

1

TT

 

 

 

 

i-

R

 

C

K

 

 

J

S

&

 

 

 

 

 

1

 

 

 

 

1

&

 

 

 

 

 

TT

 

K

 

i

 

 

 

R

J

C

S

&

 

 

 

1

 

 

1

&

 

 

 

i+1

TT

 

K

 

 

R

J

C

S

&

 

 

 

 

1

 

 

 

1

&

 

 

 

 

«0»

1

«1»

Уст. a

 

C Уст.

Рис.2.35. Фрагмент реверсивного сдвигового регистра

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Таблица 2.15

Реализация реверсивного сдвигового регистра (к примеру 2.15)

Номер

a

t

t

t

t+1

*

*

набора

Q i+1

Q i

Q i-1

Qi

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

 

 

 

 

 

 

 

 

Пример 2.16. Разработать на JK-триггерах регистр, работающий в двух режимах: 1) при управляющем сигнале V = 0 должна осуществляться операция сдвига в сторону старших разрядов, 2) при V = 1 должна осуществляться параллельная загрузка регистра внешними данными.

Функционирование такого регистра отражено в табл. 2.16, где Di - i-й разряд параллельного входного кода.

J*

Qi-1

K*

V

0

0

 

V

 

1

1

 

1

Di

 

0

 

1

0

Qi-1

 

1

1

0

0

0

Di

1

0

1

Qi

 

Qi

 

а

*

б

*

Рис.2.36. Карты Карно: а - для J ; б - для K

 

Из рис.2.36 следует

 

 

 

 

 

 

 

 

 

 

J = VD + V

Q

;

K = VD

 

 

 

 

 

+ V

Q .

(2.28)

i

i

i−1

 

i

i

 

i−1

 

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Учитывая преобразования, проделанные в (2.27), можно записать:

 

Ki = Ji .

(2.29)

По уравнениям (2.28) и (2.29) реализована схема универсального регистра типа К155ИР1 (аналогичная схема реализована и в других серия ИС). На рис.2.37 приведено функциональное обозначение этой ИС

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 и т.п.

Таблица 2.16

Функционирование регистра, работающего в двух режимах (к примеру 2.16)

Номер

V

Di

Q

Q t

Q t+1

J*

K*

набора

 

 

i-1

i

i

 

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

1

0

0

0

1

0

 

1

 

 

 

 

 

 

 

 

2

0

0

1

0

1

1

 

 

 

 

 

 

 

 

 

3

0

0

1

1

1

 

0

 

 

 

 

 

 

 

 

4

0

1

0

0

0

0

 

 

 

 

 

 

 

 

 

5

0

1

0

1

0

 

1

 

 

 

 

 

 

 

 

6

0

1

1

0

1

1

 

 

 

 

 

 

 

 

 

7

0

1

1

1

1

 

0

 

 

 

 

 

 

 

 

8

1

0

0

0

0

0

 

 

 

 

 

 

 

 

 

9

1

0

0

1

0

 

1

 

 

 

 

 

 

 

 

10

1

0

1

0

0

0

 

 

 

 

 

 

 

 

 

11

1

0

1

1

0

 

1

 

 

 

 

 

 

 

 

12

1

1

0

0

1

1

 

 

 

 

 

 

 

 

 

13

1

1

0

1

1

 

0

 

 

 

 

 

 

 

 

14

1

1

1

0

1

1

 

 

 

 

 

 

 

 

 

15

1

1

1

1

1

 

0

 

 

 

 

 

 

 

 

с указанием номеров выводов микросхемы, в табл.2.17 приведены режимы функционирования [45], а на рис.2.38 - полная схема регистра.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Q3

TT

 

 

 

 

 

 

 

 

 

 

 

 

 

C

J

K

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

3

Q

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

TT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

J

K

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

2

Q

 

 

 

 

 

 

 

 

 

 

 

D

 

 

TT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

J

K

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

1

Q

 

 

 

 

 

 

 

 

 

 

 

D

 

 

TT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

J

K

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

&

&

 

 

 

&

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D0

1

1

C

C

DR

V

1

2

 

 

Рис.2.38. Схема универсального сдвигового регистра типа К155ИР1, 555ИР1 и т.п.

Дополнительной особенностью ИС типа 155ИР1 является реализация независимых входов синхронизации для режима сдвига С1 и для режима параллельной загрузки С2, коммутация этих входов осуществляется входом установки режима V. Для большинства практических применений С1 = = С2, т.е. используется один синхросигнал.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Таблица 2.17

 

Режимы функционирования ИС К155ИР1

 

Режим

С1

С2

DR

V

Примечание

 

работы

 

 

 

0

 

 

0

 

Хранение

 

0

 

1

-

 

 

 

 

 

 

 

0

0

 

 

 

 

Запись

 

 

 

 

 

параллельного

 

 

 

1 Код подаётся на входы Di

 

кода

 

 

 

 

 

Сдвиг влево

 

 

Вход

0

Допускаются указанные

 

 

ниже соединения

 

 

 

 

 

 

Сдвиг вправо

 

 

 

1

Соединить: 2-12; 3-11; 4-10.

 

 

 

Вход - D3

 

 

 

 

 

 

 

2

 

 

y2

 

y2 = Q0

 

3

 

 

y3

 

y3 = Q1Q0

на:

4

 

 

y4

 

y4 = Q1

Делитель

5

 

 

y5

0

y5 = Q2Q1

6

 

 

y6

 

y6 = Q2

 

 

 

 

 

 

7

 

 

y

 

y7 = Q3Q2

 

 

 

 

7

 

 

 

8

 

 

y8

 

y8 = Q3

 

. . .

 

 

 

 

 

2.4.4. Организация цепей сдвига на несколько разрядов

 

 

 

за один такт

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

Аппаратная реализация сдвига данных на два и более разряда за один такт основана на использовании одного из следующих трёх методов: пространственная перестановка разрядов, применение сдвигателей, применение мультиплексоров.

При использовании метода пространственной перестановки разрядов для построения регистров сдвига одновременно на k разрядов необходимо, чтобы общая длина регистра L была кратна произведению mk, где m - разрядность составляющих его регистров. Тогда процедура построения такого регистра будет следующая: обозначим через i номер входа регистра, а через im - номер того же входа по модулю m. В результате множество входных шин разбивается на k групп. Входные шины из одной группы подключаются в порядке следования их исходных номеров ко входам составляющего регистра с числом входов L/k. В свою очередь, последний может состоять из отдельных ИС, связанных по цепям сдвига последовательно между собой. ИС, соответствующие различным группам входов, связываются последовательными входами так же, как и в схеме сдвига на один разряд, но данные вводятся последовательным кодом, в котором разряды также пространственно переставлены. Номера выходов в регистре соответствуют номерам входов на нем. На

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

рис.2.39 показан пример выполнения восьмиразрядного регистра со сдвигом на два разряда за один такт в

сторону старших разрядов (влево).

 

 

 

 

 

 

 

Q0Q1Q2Q3Q4Q5Q6Q7

 

C

 

 

 

 

 

 

C1

RG

 

C1

RG

 

C2

 

C2

 

 

Q0

Q0

DR'

DR

 

DR"

 

 

Q1

DR

Q1

V

V

 

V

 

 

 

 

 

Q2

Q2

 

D0

 

D0

 

 

Q3

Q3

 

D1

 

D1

 

D2

 

 

D2

 

 

D3

 

 

D3

 

 

D0D2D4D6

 

 

D1D3D5D7

 

Рис.2.39. Восьмиразрядный регистр сдвига со сдвигом на два разряда за один такт в сторону старших разрядов (влево)

Сдвигателем называется комбинационный узел ЭВМ, выполняющий микрооперацию сдвига данных на любое число разрядов за один такт. На рис.2.40 приведена обобщённая схема с использованием сдвигателя, где RG1 - регистр, в котором хранится n-разрядное число, m - максимальное число разрядов, на которое сдвигатель может сдвинуть данные за один такт; RG2 - регистр, в который записывается сдвинутое число с разрядностью n + m; RG3 - регистр, в котором хранится код с разрядностью log2(m + 1), определяющий число разрядов сдвига за один такт. Дешифратор DC преобразует последний код в m + 1 управляющие сигналы, обеспечивающие работу сдвигателя. Направление сдвига определяется либо соответствующим пространственным подключением, либо мультиплексированием входных цепей RG2.

 

 

 

 

 

 

 

RG2

 

n+m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

 

S

 

 

 

 

 

 

 

 

RG3

 

 

DC

 

Сдвигатель

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RG1

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.2.40. Обобщённая схема сдвига данных на основе сдвигателя

Уравнения для сдвигателя, предназначенного для сдвига от нуля до трёх разрядов 4-разрядного числа,

имеют вид

 

y0 = S0x0;

 

y1 = S0x1 + S1x0;

 

y2 = S0x2 + S1x1 + S2x0;

 

y3 = S0x3 + S1x2 + S2x1 + S3x0;

 

y4 = S1x3 + S2x2 + S3x1;

(2.30)

y5 = S2x3 + S3x2;

 

y6 = S3x3;

 

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Как видно из (2.30), сдвигатель представляет собой совокупность элементов И-ИЛИ с различным числом входов по ИЛИ.

Сдвигатели не изготавливаются в виде специализированных ИС и СИС, так как их функции легко реализуются на мультиплексорах, хотя в ряде серий микропроцессорных наборов есть так называемые «арифметические расширители», которые могут выполнять и функции сдвигателя.

Для реализации уравнений (2.30) потребуется семь мультиплексоров 41, уравнение для выходного сигнала каждого из которых имеет вид:

y = a1a0D0 + aa0D1 + a1a0D2 + a1a0D3 (2.31)

Закодировав число разрядов сдвига за один такт (как показано в табл.2.18),

Таблица 2.18

Кодирование числа разрядов сдвига «за один такт»

Код

 

 

числа m

m

a1

 

a0

 

 

0

 

0

0

 

 

 

 

0

 

1

1

 

 

 

 

1

 

0

2

 

 

 

 

1

 

1

3

 

 

 

 

запишем систему уравнений:

y0 = a1a0 x0 + aa0D1 + a1a0D2 + a1a0D3

ü

 

y = a a x + aa

0

x + a a D + a a

0

D

ï

 

1

1

0

1

 

0

1

0

 

2

1

 

 

 

3

ï

 

y2 = a1a0 x2 + aa0x1 + a1a0x0 + a1a0D3

ï

 

ï

 

y3 = a1a0 x3 + aa0 x2 + a1a0x1 + a1a0 x0

ý.

(2.32)

y

4

= a a D + aa x + a a

0

x

2

+ a a

0

x

ï

 

 

1

0

0

 

0

3

 

1

 

1

 

 

 

1

ï

 

y5 = a1a0D0 + aa0D1 + a1a0x3 + a1a0x2

ï

 

y

6

= a a D + aa D + a a D + a a x

ï

 

 

1

0

0

 

0

1

 

1

0

 

2

1

 

 

0

3

þ

 

На незадействованные входы D0 - D3 мультиплексоров D3 - D5 и D7 - D9 подаются «0», «1» или сдвигатель замыкается в кольцо в зависимости от алгоритма обработки данных. Соответствующая схема приведена на рис.2.41.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

 

 

 

 

D0

MS

 

 

 

 

D1

 

 

 

 

 

D2

y0

 

 

 

 

D3

 

 

 

 

 

 

 

 

 

a1

 

 

 

 

 

a0

D3

 

 

 

 

D0

MS

 

 

 

 

D1

 

 

 

 

 

D2

y1

 

 

 

 

D3

 

 

 

 

 

 

 

 

 

a1

 

 

 

 

 

a0

D4

 

 

 

 

D0

MS

 

 

 

 

D1

 

C1

 

 

 

D2

y2

C1

 

 

D3

 

RG

 

 

 

C2

 

 

 

 

Q0

x0

a1

 

 

 

 

 

DR

 

x1

a0

D5

 

 

Q1

 

 

 

 

 

D0

 

 

V

 

x2

MS

 

 

Q2

D1

 

 

 

 

 

 

D0

 

x3

D2

y3

 

D1

Q3

D3

 

 

 

 

D2

D1

 

a1

 

 

D3

 

 

 

 

 

 

a0

D6

 

 

 

 

D0

MS

 

 

 

 

D1

 

 

 

 

 

D2

y4

 

 

 

 

D3

 

 

 

 

 

 

 

 

 

a1

 

 

 

 

 

a0

D7

 

 

 

 

D0

MS

 

 

 

 

D1

 

 

 

 

 

D2

 

 

 

 

 

D3

y5

 

 

 

 

 

 

 

 

 

a1

 

 

 

 

 

a0

D8

 

 

 

 

D0

MS

 

 

 

 

D1

 

 

 

 

 

D2

 

a1

 

1

 

D3

y6

a0

D2.1

 

a1

 

 

2

 

 

 

 

a0

D9

 

 

D2.2

 

 

 

 

 

 

C2

 

 

 

 

 

V = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C1

RG

 

 

 

 

 

C2

 

Q0

 

 

 

Q0

 

 

 

 

 

 

 

 

DR

 

Q1

 

 

 

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V

 

Q2

 

 

 

Q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D0

 

Q3

 

 

 

Q3

 

 

 

 

 

D1

 

 

 

 

 

 

 

 

 

 

D2

D10

 

 

 

 

 

D3

 

 

 

 

C1

RG

 

 

 

C2

 

Q4

 

 

Q0

 

DR

 

Q5

 

 

Q1

 

 

 

 

V

 

Q6

 

 

Q2

 

 

 

 

 

 

 

 

D0

 

 

 

 

 

 

 

D1

 

Q3

 

 

 

 

 

D2

D11

 

 

 

D3

 

 

 

 

 

Рис.2.41. Схема сдвига 4-разрядного числа от нуля до трёх разрядов на мультиплексорах

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

2.4.5.Полные графы переходов для сдвиговых регистров

счислом разрядов n от 1 до 4

Если последовательный вход DR рассматривать как функцию алгебры логики от переменных на выходах разрядов сдвигового регистра, то можно реализовать большое число различных по функциональному назначению схем. Ряд таких схем может быть получен с использованием полного графа переходов для сдвигового регистра. На рис.2.42 приведены такие графы для n от 1 до 4 для случая сдвига данных влево (в сторону старших разрядов).

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

1

 

00

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

 

1

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

 

 

0

 

10

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

а

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

Последовательный вход

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

со стороны младших

 

 

 

 

 

 

 

 

 

0

0000

 

разрядов

 

 

 

 

 

 

Номер

 

 

DR = 1

 

 

DR = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0001

 

 

 

1

 

 

8

1000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

0

 

 

 

 

0

 

 

 

 

2

0010

 

0

4

0100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1

 

 

0

 

1

 

 

0

 

 

 

 

 

 

 

 

 

0

 

 

1

000

0

 

 

 

 

1

9

1001

 

 

 

 

 

 

 

 

1

 

 

1

 

 

1

 

1

 

4

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

001

0

 

0

100

3

0011

5

0101

 

 

10

1010

12

1100

 

2

 

 

1

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

010

0

 

 

 

0

 

 

 

 

 

 

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

0110

 

0

 

 

 

 

5

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Состояния

 

1

 

 

 

 

 

 

1

 

1

 

 

0

 

1

 

 

0

 

101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

0

6

 

 

11

1011

 

1

13

1101

 

 

011

 

 

 

110

 

 

 

 

 

 

1

 

0

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

7

0111

 

 

 

0

 

 

14

1110

 

 

111

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Направление

 

 

1

 

 

 

 

0

 

 

 

 

 

 

сдвига

 

 

 

 

15

1111

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в

1

г

Рис.2.42. Полные графы переходов для сдвиговых регистров: а - n = 1; б - n = 2; в - n = 3; г - n = 4

Для случая сдвига данных вправо (в сторону младших разрядов) постройте полные графы переходов самостоятельно.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Граф переходов служит для представления всех сведений о последовательностной схеме, подлежащей разработке. Вершины графа представляют состояния регистра. Для удобства работы с графом рядом с состоянием записан номер состояния, т.е. десятичный эквивалент соответствующего «двоичного числа». Переходы между состояниями изображаются в виде направленных линий. Стрелки указывают направление последовательности событий.

Входной сигнал DR может поступать либо от внешних источников, либо быть функцией состояний сдвигового регистра; он проставляется рядом с линией, по которой под его действием осуществляется переход.

Рассмотрим несколько примеров построения схем с использованием полных графов переходов сдвиговых регистров.

Пример 2.17. Разработать на двухразрядном сдвиговом регистре (рис.2.43) делитель частоты на три.

DR RG Q0

C Q1

Рис.2.43. 2-разрядный сдвиговый регистр

Разработка включает в себя два этапа: 1) создание автомата, имеющего три рабочих состояния в цикле; 2) формирование выхода делителя частоты. Сигнал с входной частотой подаётся на объединённые тактовые входы всех триггеров, на которых построен сдвиговый регистр.

Из графа на рис.2.42,б видно, что три состояния в цикле работы сдвигового регистра можно обеспечить двумя способами: 1) переходами 0-1-2-0-… и 2) переходами 1-3-2-1-…. Какое состояние выбрано в любом из этих циклов за начальное, не имеет значения - все они «равноправны». Рассмотрим оба эти способа. Функционирование регистра отображено соответственно в табл.2.19 и 2.20. Поясним порядок заполнения табл.2.19. Когда регистр находится в состоянии Q1Q0 = 00, он готов перейти в состояние Q1Q0 = 01, для чего на входе DR1 должно быть сформировано значение «1» в состоянии 00. Нижний индекс 1 у DR говорит о том, что реализуется схема, в которой используется первый из двух упомянутых выше переходов. После перехода в состояние 01 регистр готов перейти в состояние 10, для чего в состоянии 01 должно быть сформировано значение сигнала DR1 = 0 и т.д. Состояние 11 в нормально работающей схеме с переходами 0-1-2- 0-… никогда не будет присутствовать, поэтому если оно возникнет при первичном включении или под воздействием помехи, то сигнал DR1 в этом состоянии должен быть равным «0», в противном случае регистр зависнет в состоянии 11.

Таблица 2.19

Таблица 2.20

Функционирование регистра в

Функционирование регистра в

режиме делителя частоты на три

режиме делителя частоты на три

(цикл: 0-1-2-0-...)

(цикл: 1-3-2-1-...)

набораНомер

Q 1

Q 0

DR

0

0

0

1

 

 

 

 

1

0

1

0

 

 

 

 

2

1

0

0

 

 

 

 

3

1

1

 

 

 

 

 

набораНомер

Q 1

Q 0

DR

0

0

0

 

 

 

 

 

1

0

1

1

 

 

 

 

2

1

0

1

 

 

 

 

3

1

1

0

 

 

 

 

Состояние 00 в нормально работающей схеме с переходами 1-3-2-1-… никогда не будет присутствовать, поэтому если оно возникнет при первичном включении или под воздействием помехи, то сигнал DR2 в этом состоянии должен быть равным «1», в противном случае регистр зависнет в состоянии 00.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

DR1

Q1

 

DR2

Q1

 

 

 

 

 

0

0

1

1

0

1

 

Q0

 

 

 

Q0

 

а

 

 

 

б

Рис.2.44. Карты Карно: а - для DR1; б - для DR2

Карты Карно для сигналов DR1 и DR2 приведены на рис.2.44 из которого следует

DR1 =

 

 

 

 

 

 

 

 

 

(2.33)

Q1Q0 ;

DR2 =

 

 

 

 

 

 

(2.34)

Q1 + Q0 = Q1Q0 .

Схемы и соответствующие им временные диаграммы приведены на рис.2.45.

1

&

DR1

DR RG

Q0

1

 

 

 

Q1

C

 

 

C

 

 

a

 

 

C

Q0

Q1

DR1

б

&

DR2

DR RG

Q0

 

 

C

 

C

Q1

 

в

 

 

C

 

 

 

Q0

 

 

 

Q1

 

 

 

DR2

г

Рис.2.45. Схемы делителей на три: а - 1-й вариант; б - временные диаграммы для 1-го способа; в - 2-й вариант; г - временные диаграммы для 2-го способа

Реальные графы работы схем рис.2.45,а,в приведены на рис.2.46. В качестве выходного сигнала разработанных делителей частоты можно рассматривать любой из сигналов: Q1, Q0, DR. Совокупность всех этих трёх сигналов образует распределитель импульсов.

 

1

0

00

 

0

 

 

1

0

00

 

 

 

 

 

0

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

01

 

2

 

10

 

1

01

 

2

 

10

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

 

0

 

 

3

11

 

 

 

3

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

 

 

 

 

 

 

 

б

 

 

 

Рис.2.46. Графы схем делителей на три: а - для 1-го способа; б - для 2-го способа

Если сравнить выражение (2.34) с выражением для y3 в табл.2.17, они совпадают. Это означает, что если четырёхразрядный регистр К155ИР1 используется в режиме делителя на 3, то собственно делитель реализуется на двух разрядах: Q1 и Q0, а разряды Q2 и Q3 будут выполнять функцию сдвигового 2- разрядного регистра для сигнала Q1. Если эти сдвинутые сигналы не нужны разработчику, то можно сделать общий вывод, что реализация делителя частоты на ≤ 2n-1 нерациональна на n-разрядном сдвиговом регистре.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Пример 2.18. Разработать на 4-разрядном сдвиговом регистре типа К155ИР1 делитель частоты на 15. Один из 32 возможных вариантов циклов работы (с числом состояний, равным 15), которые могут быть

получены из графа на рис.2.42,г, имеет вид: 1-2-4-9-3-6-13-10-5-11-7-15-14-12-8-1…. Функционирование регистра в данном случае отображено в табл.2.21, которая составляется с использованием графа рис.2.42,г.

DR

 

Q1

 

 

 

 

 

 

Q3

1

1

1

1

0

0

0

0

 

1

1

1

Q2

 

1

 

0

0

0

 

 

 

 

Q0

 

Рис.2.47. Карта Карно для DR

Из рис.2.47 следует:

DR = Q3Q2 + Q3Q2 = Q3 Å Q2 . (2.35)

Таблица 2.21

Функционирование регистра в режиме делителя частоты на 15

Номер

Q3

Q2

Q1

Q 0

DR

набора

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

1

 

 

 

 

 

 

9

1

0

0

1

1

 

 

 

 

 

 

10

1

0

1

0

1

 

 

 

 

 

 

11

1

0

1

1

1

 

 

 

 

 

 

12

1

1

0

0

0

 

 

 

 

 

 

13

1

1

0

1

0

 

 

 

 

 

 

14

1

1

1

0

0

 

 

 

 

 

 

15

1

1

1

1

0

 

 

 

 

 

 

Прежде чем оформлять схему, рассмотрим, как будет вести себя регистр, если он по каким-либо причинам установится в состояние 0, которое отсутствует в рабочем цикле. При написании выражения

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

(2.35) значение DR на наборе (состоянии) 0 доопределено как «0». Ясно, что схема зациклится в состоянии

0, что равносильно катастрофическому отказу. Следовательно, если регистр попадет в это состояние, то на

входе DR нужно выработать значение «1», которое переведет схему в состояние 1 и далее она будет

работать в нормальном цикле. Из рис.2.47 следуют три возможных варианта реализации DR = 1 на наборе 0:

 

 

 

DR = Q Q Q Q = Q + Q + Q + Q

0

ü

 

 

 

 

 

 

 

1

3

2

1

0

 

3

2

1

 

ï

 

 

 

 

 

 

 

DR2 = Q2Q1Q0 = Q2 + Q1 + Q0

 

ý.

 

 

(2.36)

 

 

 

 

DR3 = Q3Q1Q0 = Q3 + Q1 + Q0

 

ï

 

 

 

 

 

 

 

 

þ

 

 

 

На рис.2.48,а показана схема, в которой сигнал DR реализуется следующим образом:

 

 

 

DR = Q3 Å Q2 + Q2 + Q1 + Q0 .

(2.37)

 

 

 

 

C

 

 

C1

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

RG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C2

 

Q0

 

 

 

 

 

1

 

 

 

 

 

 

 

DR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q2

 

 

 

=1

 

 

 

 

 

 

 

 

 

 

 

D0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

1

2

4

9

3

6

13

10

5

11

7

15

 

14

12

8

1

DR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q3

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

Рис.2.48. Делитель частоты на 15: а - схема; б - временные диаграммы

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

дешифрированием любого одного рабочего состояния сдвигового регистра, например, если дешифрируется рабочее состояние 11, то yвых = y11 = Q3Q2Q1Q0 для дешифратора с активной единицей

выхода или yвых = y11 = Q3Q2Q1Q0 для дешифратора с активным нулём выхода;

дешифрированием любого одного рабочего состояния сдвигового регистра с возможностью понижения ранга произведений для yвых , если воспользоваться наличием нерабочих состояний. В рассматриваемом случае имеется только одно нерабочее состояние 0, поэтому можно сформировать

следующие четыре варианта сигнала yвых (для формирования активной 1 выхода): yвых = y1 = Q3Q2Q1 ;

yвых = y2 = Q3Q2Q0 ; yвых = y4 = Q3Q1Q0 ; yвых = y8 = Q2Q1Q0 . Эти четыре произведения соответствуют двум клеткам карты Карно с наборами 1 и 0; 2 и 0 и т.д.;

дешифрированием нескольких рабочих состояний, если в рабочем цикле они расположены рядом во времени, в том числе и с учётом нерабочих состояний;

формированием осведомительного сигнала в зависимости от скважности выходного импульса по отношению к длительности рабочего цикла. Например, если требуется сформировать выходной сигнал, принимающий значение 1 на восьми рядом расположенных во времени состояниях и значение 0 на остальных семи рядом расположенных состояниях, то одним из возможных решений может быть формирование, например, следующего выходного сигнала, представленного в числовой форме СДНФ: y = V(1,2,4,9,3,6,13,10; ×: 0). После

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

минимизации (например, с помощью карт Карно) получаем yвых = Q3Q2 + Q3Q0 + Q2Q0 + Q3Q2Q1Q0 . Если модуль

деления частоты - четное число, то легко сформировать выходной сигнал со скважностью 2.

Для устранения рисков сбоя на выходе логического элемента, формирующего сигнал yвых, рекомендуется подключить конденсатор, емкость которого не должна превышать величину, указанную в технических условиях на используемую серию логических элементов.

Отметим также, что схема, показанная на рис.2.48,а, более известна как генератор цифровой псевдослучайной последовательности длительностью 2n 1 при n = 4.

2.4.6. Операции, выполняемые сдвиговым регистром

Сдвиговые регистры как многофункциональные узлы ЭВМ могут выполнять различные операции над данными, наиболее важными среди которых являются:

преобразование параллельного кода в последовательный;

преобразование последовательного кода в параллельный;

хранение чисел в ОЗУ с небольшим объемом данных с последовательной выборкой;

логические и арифметические сдвиги и др.

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

При преобразовании последовательного кода в параллельный данные загружаются в регистр через последовательный вход, после чего они могут быть считаны со всех разрядов регистра одновременно. Типичные примеры использования: построение приёмников для последовательных интерфейсов; вывод контролирующих кодов в БИС с ограниченным числом контактных площадок и т.д.

Хранение чисел в ОЗУ с небольшим объемом данных с последовательной выборкой основано на замыкании сдвигового регистра в кольцо, в котором данные могут записываться, храниться и считываться.

Логические и арифметические сдвиги относятся к командам и выполняются регистрами- аккумуляторами, входящими в состав центральных процессорных элементов всех микропроцессорных комплектов.

Команды выполняются для данных (чисел) без знака и чисел со знаком (рис.2.49).

 

 

 

 

 

 

 

B7

 

 

 

...

 

 

b0

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

1

0

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Данныеабез знака

 

 

 

 

 

 

b7

 

 

 

...

 

 

b0

 

 

 

 

b7

 

 

...

 

 

 

b0

0

0

0

0

1

1

0

0

 

 

 

 

1

1

1

1

0

1

0

0

Знак

 

 

Число

 

 

 

 

 

Знак

Дополнительный код числа

числа

 

 

 

 

 

 

 

 

 

 

числа

 

 

 

 

 

 

 

 

 

 

+12

 

 

 

 

 

 

 

 

 

 

-12

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

в

 

 

 

 

Рис.2.49. Представление данных в формате 1 байт (8 бит):

а- без знака; б - положительных чисел; в - отрицательных чисел

Вбольшинстве микропроцессоров реализуются восемь команд сдвига, представленных на рис.2.50 [49]. Для всех команд сдвига используется бит переноса С регистра состояний, который является как бы расширением операнда битом 9. Далее под операндом подразумеваются данные без знака либо числа со знаком. Четыре из восьми команд сдвигают операнд, а другие четыре вращают или циклически сдвигают операнд. Команды сдвига

ициклического сдвига образуют две группы.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

 

C

 

 

 

 

 

 

 

 

 

 

 

0

 

SHL

 

 

 

 

b7

 

 

 

 

 

 

b0

 

 

Логический сдвиг влево

 

0

 

 

 

 

 

 

 

 

 

 

 

C

SHR

 

 

 

b7

 

 

 

 

 

 

b0

 

Логический сдвиг вправо

 

C

 

 

 

 

 

 

 

 

 

 

 

0

 

SAL

 

 

 

 

b7

 

 

 

 

 

 

b0

 

Арифметический сдвиг влево

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SAR

 

 

 

B7

 

 

 

 

 

 

b0

 

C

Арифметический сдвиг вправо

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ROL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

b7

 

 

 

 

 

 

b0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Циклический сдвиг влево

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ROR

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

b7

 

 

 

 

 

 

b0

 

Циклический сдвиг вправо

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RCL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

b7

 

 

 

 

 

 

b0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Циклический сдвиг

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с переносом влево

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

RCR

 

 

b7

 

 

 

 

 

 

b0

 

 

Циклический сдвиг

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с переносом вправо

Рис.2.50. Команды сдвига

Логические команды сдвигают операнд, не считаясь с его знаком или они используются для действий над числами без знака и над нечисловыми значениями, например над масками. Сдвиг осуществляется по всем позициям регистра.

Арифметические команды сохраняют знаковый (старший) разряд операнда и используются для действия с числами со знаком; отметим, что арифметический сдвиг влево совпадает с логическим сдвигом влево.

Отметим несколько обстоятельств, которые необходимо иметь в виду, работая с командами простого и циклического сдвига. Во-первых, любая из выполняемых при этом операций эквивалентна умножению (сдвиг влево) или делению (сдвиг вправо) числа на 2 при сдвиге на один разряд. Во-вторых, при использовании команд простого сдвига данные, сдвигаемые за пределы регистра, теряются. В-третьих, команды циклического сдвига сохраняют сдвинутые за пределы регистра биты, помещая их обратно в регистр. В-четвертых, команды сдвига взаимодействуют с флагами регистра состояния. Разряд переноса С регистра состояния участвует в выполнении команд, и его значение изменяется по мере передачи данных в него или из него.

Рассмотрим подробнее все эти операции (команды).

Логический (SHL - shift logical left), арифметический (SAL - shift arithmetic left) сдвиг влево - эта команда часто используется для реализации операции умножения. Как видно из рис.2.50, при выполнении этих команд содержимое старшего разряда регистра передаётся в разряд переноса С регистра состояния. В младший разряд b0 регистра загружается при этом 0. Содержимое каждого разряда регистра перемещается в соседний старший разряд, а содержимое разряда переноса С (независимо от его значения) теряется. Команда SAL не сохраняет знак операнда, но заносит 1 во флаг переполнения V регистра состояния в случае изменения знака операнда.

Логический сдвиг вправо (SHR - shift logical right) - эта команда часто используется для операции деления. Как видно из рис.2.50, при выполнении этой команды содержимое младшего разряда b0 регистра передаётся в разряд переноса С регистра состояния. В старший разряд b7 регистра загружается при этом 0. Содержимое каждого разряда регистра перемещается в соседний младший разряд, а содержимое разряда переноса С теряется.

Арифметический сдвиг вправо (SAR - shift arithmetic right) - содержимое младшего разряда передаётся в разряд переноса С регистра состояний, содержимое всех остальных разрядов числа сдвигается вправо на одну позицию. Отличительной особенностью команды является то, что старший (знаковый) разряд сохраняет свое значение, это необходимо при выполнении некоторых арифметических операций в дополнительном коде. Содержимое разряда переноса С теряется.

Циклический сдвиг влево (ROL - rotate left) - содержимое старшего разряда b7 регистра загружается в разряд переноса С регистра состояния. Все разряды операнда, находящегося в регистре, сдвигаются на одну позицию влево, т.е. содержимое каждого разряда перемещается в позицию соседнего старшего разряда, а содержимое разряда b7 загружается в разряд b0.

Циклический сдвиг вправо (ROR - rotate right) - содержимое младшего разряда b0 регистра загружается в разряд переноса С регистра состояния. Все разряды операнда, находящегося в регистре, сдвигаются на одну позицию вправо, т.е. содержимое каждого разряда перемещается в позицию соседнего младшего разряда, а содержимое разряда b0 загружается в разряд b7.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Циклический сдвиг с переносом влево (RCL - rotate left through carry) - этой командой все данные,

находящиеся в регистре и разряде переноса, сдвигаются на одну позиция влево, причём содержимое b7 загружается в разряд переноса С, а последний - в разряд регистра b0.

Циклический сдвиг с переносом вправо (RCR - rotate right through carry) - этой командой все данные,

находящиеся в регистре и разряде переноса, сдвигаются на одну позиция вправо, причём содержимое b0 загружается в разряд переноса С, а последний - в разряд регистра b7.

При использовании команд циклического сдвига не происходит потерь данных, поскольку данные перемещаются по замкнутому контуру.

Пример 2.19. Спроектировать операционный блок, выполняющий указанные операций сдвига, на реверсивном восьмиразрядном сдвиговом регистре. В качестве разряда переноса С регистра состояний использовать отдельный триггер. Сигнал m направления сдвига закодировать так: m = 0 - сдвиг влево, m = 1 - сдвиг вправо. Триггер переноса и регистр должны иметь единую систему синхронизации.

Так как всего выполняется восемь операций, закодируем их 3-разрядным кодом а2а1а0.

Функционирование операционного блока представлено в табл.2.22. Рассматривая

Ct +1,bt +1

,bt +1 и m как

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,a , a ,Ct ,bt

 

и bt ,

 

 

 

7

0

функции алгебры логики (ФАЛ) от переменных

a

2

 

из табл.2.22

получаем выражения в

СДНФ:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

 

 

7

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D t = Ct +1

= a

a a b + a

a a b + a

a a b + a

 

a a b +

 

t

 

 

 

t +1

= a2a1a0b7 + a2a1a0b0 + a2a1a0C;

c

 

2 1 0 7

 

2 1 0 0

 

2 1 0 7

 

 

 

2 1 0 0

 

DL

 

= b7

+ a2a1a0b7

+ a2a1a0b7

+ a2a1a0b7

+ a2a1a0b0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DRt = b t+1

= a

2

a a

0

b + a

2

a a

C;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

1

 

 

7

 

 

1

0

 

 

 

 

 

 

 

 

 

 

 

m = a2a1a0 + a2a1a0b0 + a2a1a0 + a2a1a0.

 

 

Таблица 2.22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функционирование операционного блока, реализующего восемь сдвиговых команд

 

 

 

Операция

набораНомер

 

a2

 

 

a1

 

 

 

a0

 

C t+1

B 7t+1

b 0t+1

m

 

 

 

 

 

 

SHL

 

0

 

 

0

 

 

0

 

 

 

 

 

0

 

b 7t

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SHR

 

1

 

 

0

 

 

0

 

 

 

 

 

1

 

b 0t

 

 

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SAL

 

2

 

 

0

 

 

1

 

 

 

 

0

 

b 7t

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SAR

 

3

 

 

0

 

 

1

 

 

 

 

1

 

b 0t

 

 

b 1t

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ROL

 

4

 

 

1

 

 

0

 

 

 

 

 

0

 

b 7t

 

 

 

 

b 7t

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ROR

 

5

 

 

1

 

 

0

 

 

 

 

 

1

 

b 0t

 

 

b 0t

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RCL

 

6

 

 

1

 

 

1

 

 

 

 

0

 

b 7t

 

 

 

 

Ct

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RCR

 

7

 

 

1

 

 

1

 

 

 

 

1

 

b 0t

 

 

Ct

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После минимизации получаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dc t = Ct +1 = a0b7 + a0b0;

 

 

 

 

 

 

 

ü

 

 

 

 

 

 

 

 

 

t

 

t +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

DL

= b7

= (a2a1b7 + a2a1b0 + a2a1C)a0;ý

 

(2.38)

 

 

 

 

 

 

DRt = bt +1

= a

2

a (a b + a C);

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

1

7

 

 

 

 

1

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

m = a0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

þ

 

 

 

Уравнения (2.38) определяют структуру операционного блока, которая и приведена на рис.2.51. 8-разрядный сдвиговый регистр показан в обобщённом виде, так как может быть реализован в различных вариантах. На рис.2.51 обозначено: V - вход выбора режима (например, V = 0 - параллельная загрузка, V = 1 - сдвиг); DR (data right) -

данные справа (со стороны младших разрядов), на этот вход подаётся сигнал b0t +1 ; DL (data left) - данные слева (со стороны старших разрядов), на этот вход подаётся сигнал b7t +1 .

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com