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

00 Проектирование цифровых устройств

.pdf
Скачиваний:
257
Добавлен:
12.04.2015
Размер:
1.44 Mб
Скачать

71

1001

1011

 

 

 

1010

0011

0010

1110

0001

0110

 

1101

 

 

0000

 

0111

 

 

1111

 

 

1000

0101

 

1100

0100

 

Рис. 2.26. Диаграмма состояний десятичного счетчика

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

Пример 2.4. Десятичный (декадный) вычитающий счетчик. Модуль счета М = 10. Применяется такое же кодирование десятичных цифр, как и в предыдущем примере. Коды цифр приведены в табл. 2.х.

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

72

 

D0

Q0

 

 

D1

 

Q0

 

D2

 

Q0

 

 

D3

Q0

 

 

0

0

1

1

 

0

0

0

1

 

0

0

0

0

 

1

0

0

0

Q2

1 1

0

0

Q2

0 1

1

1

Q2

1 1

1

0

Q2

0 0

0

0

 

0

 

 

Q3

 

0

 

 

 

Q3

1

 

 

 

Q3

0

 

 

Q3

 

0

 

 

 

0

 

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q1

 

 

 

Q1

 

 

 

Q1

 

 

 

Q1

Рис.2.27. Диаграммы Вейча для функций возбуждения D-триггеров десятичного вычитающего счетчика

В результате минимизации получаем выражения для сигналов

Di:

D0 Q3 Q1Q2 Q1Q2 Q3 Q1 Q2 ;

D1 Q2Q0 Q1Q0;

D2 Q3 Q2Q1 Q2Q0;

D3 Q2Q1Q0.

Сигнал заема вырабатывается при переключении счетчика из состояния «0» в состояние «9»:

z10 Q3Q2Q1Q0.

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

1001 → 0100; 1010 → 0110; 1011 → 0100; 1101 → 0110; 1110 → 0110; 1111 → 0110.

2.4. Распределители тактов на регистрах сдвига

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

Регистры сдвига или сдвиговые регистры (англ. shift register) представляют собой последовательно соединенную цепочку триггеров. Основной режим их работы – это сдвиг разрядов кода,

73

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

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

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

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

74

DS

 

Q0

Q

Q6

Q

J TT

1

J TT

7

 

J

TT

J TT

 

C

C

 

C

C

1

K

K

 

K

K

Shift

 

 

 

 

 

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

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

DS

 

Q0

Q

Q6

Q

D T

1

D T

7

 

D

T

D T

 

C

C

 

C

C

Shift

R

R

 

R

R

 

 

 

 

 

Rese

 

 

 

 

 

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

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

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

Винтегральном исполнении существуют статические

(параллельные), сдвиговые (последовательные) и

75

многофункциональные регистры. Многофункциональный регистр может работать в нескольких режимах: установка в нулевое состояние, параллельное занесение данных, сдвиг вправо (от младшего разряда к старшему), сдвиг влево (от старшего разряда к младшему), хранение данных. Для работы регистра в режиме сдвига вправо или влево предусмотрены входы DSR (Data Serial Right) и DSL (Data Serial Left), на которые поступают данные, синхронизированные с импульсами Shift. Если в регистр предварительно записать определенное двоичное слово и включить цепь обратной связи, соединяющую выход регистра с его входом, возникает циклический режим. Длительность цикла в тактах определяется числом разрядов регистра и видом функции сигнала обратной связи. На рисунке 2.13 приведены два простых примера: кольцевой регистр (а) и счетчик с кодом Джонсона (б).

а)

 

555ИР8

 

б)

555ИР8

 

 

 

 

 

 

 

 

 

D0

RG

Q0

 

RG

Q0

 

 

 

Q1

 

DS

Q1

 

 

DS

 

 

 

 

 

Q2

 

 

Q2

 

 

 

 

 

 

 

Shift

 

 

Q3

Shift

 

Q3

 

C

 

Q4

C

Q4

 

 

 

 

 

“1”

 

 

Q5

“1”

 

Q5

555ЛН2

R

 

Q6

R

Q6

 

 

 

1

 

 

 

Q7

 

 

Q7

 

 

 

 

 

 

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

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

76

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

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

а) Q0

 

Q0

б) Q0

 

Q0

 

 

 

0

0

0

Q3

 

 

0

 

 

 

 

Q3

 

 

 

 

Q4

0

 

Q4

Q3

 

Q5

Q3

 

Q5

 

 

 

1

 

 

 

Q1

Q2

 

Q1

Q2

 

 

 

 

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

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

DS Q4 Q3Q2 Q1Q0 .

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

77

регистре оказалось несколько единиц. Как только регистр обнулится, на вход DS поступит единица, и регистр восстановит работу кольцевого счетчика в режиме «1 из N».

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

DS Q4 Q3 Q2 Q1 Q0

Убедимся в том, что сигнал обратной связи обеспечивает самовосстановление после сбоя. Рассмотрим самый «трудный» случай

– состояние Q0Q1Q2Q3Q4Q5 = 1 1 1 1 1 1. Граф переходов имеет вид:

111111 → 011111 → 001111 → 000111 → 000011 → 000001. Как видно,

внутри регистра происходит вытеснение лишних единиц, пока не останется одна единица на выходе старшего разряда. При возникновении нулевого кода 0 0 0 0 0 0 вырабатывается сигнал D0 = 1, и возобновляется правильный цикл.

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

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

Состояние

Q0

Q1

Q2

Q3

Q4

Q5

Q6

Q7

Код «1 из N»

0

0

0

0

0

0

0

0

0

Q7Q0

1

1

0

0

0

0

0

0

0

Q1Q0

2

1

1

0

0

0

0

0

0

Q2Q1

3

1

1

1

0

0

0

0

0

Q3Q2

4

1

1

1

1

0

0

0

0

Q4Q3

5

1

1

1

1

1

0

0

0

Q5Q4

6

1

1

1

1

1

1

0

0

Q6Q5

7

1

1

1

1

1

1

1

0

Q7Q6

8

1

1

1

1

1

1

1

1

Q7Q0

9

0

1

1

1

1

1

1

1

Q1Q0

10

0

0

1

1

1

1

1

1

Q2Q1

11

0

0

0

1

1

1

1

1

Q3Q2

78

12

0

0

0

0

1

1

1

1

Q4Q3

13

0

0

0

0

0

1

1

1

Q5Q4

14

0

0

0

0

0

0

1

1

Q6Q5

15

0

0

0

0

0

0

0

1

Q7Q6

Счетчик Джонсона строится на сдвиговом регистре с перекрестной обратной связью. На рисунке 2.30 приведена схема четырехразрядного счетчика Джонсона, на рисунке 2.31 – временные диаграммы.

 

 

 

 

Q0

 

Q1

 

Q2

Q3

 

 

 

D

D

 

 

D

 

 

 

D

Т И

C

C

 

 

C

 

 

 

C

 

 

 

 

 

 

 

 

 

 

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

 

 

3

4

 

 

 

 

 

 

8

1

 

2

5

 

6

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

ТИ

Q0

Q1

Q2

Q3

Рис.2.33. Временные диаграммы в счетчике Джонсона

t

t

t t

t

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

Ji Qi 1;

Ki Qi 1;

i 1,...,7.

79

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

J0 DS Q7 ;

K0 DS.

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

 

Рабочий цикл

 

 

 

Ложный цикл

 

Q0

Q1

Q2

 

Q3

 

Q0

Q1

Q2

Q3

 

 

 

 

 

 

 

 

 

 

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 необходимо ввести коррекцию, которая позволит за конечное число тактов войти в рабочий цикл. Для n, равного 4, 5 и 6, синтез функции DS можно провести на диаграммах Вейча. На рисунке 2.34 поясняется процесс синтеза сигнала DS для 4-разрядного счетчика Джонсона. Необходимо доопределить значениями «1» ячейки, соответствующие запрещенным состояниям регистра, с тем чтобы за конечное число тактов «вытолкнуть» из регистра «нули» среди «единиц». При этом допускается, что некоторые запрещенные ячейки можно оставить непокрытыми единицами…

80

 

 

Q0

 

1

1

1

 

Q2

 

1

 

 

 

 

0

 

0

0

Q3 0 ×

Q1

Рис.2.34. Синтез сигнала обратной связи в 4-разрядном счетчике Джонсона

Для 4-разрядного регистра сигнал обратной связи

DS Q3 Q0 Q1 Q2

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

0100 → 1010 → 1101 → 1110;

0010 → 1001 → 1100;

1010 → 1101 → 1110;

0110 → 1011 → 1101 → 1110;

1001 → 1101 → 1110;

1101 → 1110;

1011 → 1101 → 1110;

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

0101 → 0010 → 0001 → 0000.

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

На рисунке 2.5, а представлены диаграммы Вейча сигнала обратной связи с коррекцией после сбоя для 5-разрядного (а) и 6- разрядного (б) счетчиков Джонсона.