Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции РАЗДЕЛ 2.docx
Скачиваний:
60
Добавлен:
18.11.2019
Размер:
3.01 Mб
Скачать

2.14. Типовые узлы накапливающего типа

2.14.1. Регистры

Регистры предназначены для приема, временного хранения и выдачи данных. Чаще всего данные сохраняются в регистре на время выполнения одной или нескольких машинных команд. Кроме хранения данных регистры могут выполнять и другие операции (сдвиг данных, логические операции). Основу регистра составляют триггеры, число которых равно разрядности хранимых данных.

Наиболее простую схему имеет регистр с параллельной записью данных. На рис. 2.34 приведена схема регистра, построенного на синхронных D-триггерах с дополнительными асинхронными входами S и R. Записываемые данные (D0 ... Dn - 1) подаются на информационные входы триггеров. Запись производится при поступлении сигнала «Прием», подаваемого в определенный момент времени на входы синхронизации всех триггеров регистра. Для установки регистра в состояние «0» используется сигнал «Уст. 0», который подается на дополнительные входы триггеров R.

Рис. 2.34. Регистр с параллельной записью

Данные из регистра с параллельной записью и входом установки в состояние «0» могут быть выданы в прямом или обратном (инверсном) коде (рис. 2.35, а). Условное графическое обозначение регистра показано на рис. 2.35, б.

Рис. 2.35. Регистр:

а – схема выдачи данных из регистра; б – условное графическое обозначение

Для выдачи данных из регистра в прямом или обратном коде подается соответствующий управляющий сигнал.

Данные обычно выдаются из одного регистра и одновременно принимаются в другой (рис. 2.36). При этом используются регистры, построенные на синхронных RS-триггерах, а передача данных осуществляется в парафазном коде. В этом случае прием данных в регистр Рг1 производится при поступлении сигнала ПрРг1, а запись данных из Рг1 в регистр Рг2 – при поступлении сигнала ПрРг2.

Рис. 2.36. Схема передачи данных из регистра в регистр

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

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

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

Рис. 2.37. Схема сдвига данных на один разряд вправо

Схема регистра сдвига на один разряд вправо, выполненного на однотактных RS-триггерах, приведена на рис. 2.38. Сдвиг производится при поступлении сигнала «Сдвиг». Каждый сигнал «Сдвиг» вызывает сдвиг данных на один разряд. При этом в освободившийся разряд записывается «0», а данные, выходящие из регистра, теряются.

Рис. 2.38. Регистр сдвига вправо

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

На основе сдвигающего регистра можно построить преобразователь последовательного кода в параллельный, и наоборот (рис. 2.39).

Преобразователь выполнен на основе регистра со сдвигом данных вправо на один разряд. Регистр сдвига состоит из двухтактных JK-триггеров с дополнительными асинхронными входами S и R. Для преобразования параллельного кода в последовательный регистр устанавливается в нулевое состояние сигналом «Уст. 0». Затем данные в параллельном коде поступают на дополнительные входы регистра S. При подаче сигнала «Сдвиг» данные в последовательном коде выдаются на последовательный выход регистра. Для преобразования последовательного кода в параллельный данные подаются на последовательный вход одновременно с поступлением сигналов «Сдвиг». После заполнения регистра данные могут быть выданы в параллельном коде с выходов D1, D2, ..., Dn-1.

Рис. 2.39. Преобразователь параллельного кода в последовательный

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