Найти в Дзене
Владимир С.

Универсальный сдвиговый регистр

В данной статье мы рассмотрим построение универсального сдвигового регистра. Регистром называется цифровой автомат, основным назначением которого является приём информации (запись), временное хранение и выдача. Этот минимум операций выполняется простейшим триггером хранения. Сдвиговый регистр - это модифицированный регистр хранения, в котором триггеры связаны между собой цепями последовательного переноса, позволяющими синхронно переносить содержимое одних триггеров в другие триггеры внутри регистра, в результате чего реализуется сдвиг. Универсальность нашего регистра будет заключаться в реализации всех возможных способов записи и вывода информации, а именно: Регистры реализуются на любых триггерах с динамической синхронизацией, как правило, на D-триггерах. В нашем случае не будем отступать от этого правила. Схема одного разряда нашего регистра представлена на рисунке 1. Разряд состоит из одного D-триггера и одного мультиплексора 4-1. Мультиплексор имеет следующие режимы работы: Адрес

В данной статье мы рассмотрим построение универсального сдвигового регистра.

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

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

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

  • последовательный приём справа/слева
  • последовательный вывод справа/слева
  • параллельный приём
  • параллельный вывод

Регистры реализуются на любых триггерах с динамической синхронизацией, как правило, на D-триггерах. В нашем случае не будем отступать от этого правила. Схема одного разряда нашего регистра представлена на рисунке 1.

Рисунок 1 - схема одного разряда
Рисунок 1 - схема одного разряда

Разряд состоит из одного D-триггера и одного мультиплексора 4-1. Мультиплексор имеет следующие режимы работы:

-2

Адресные (A0, A1) входы мультиплексора определяют режим работы (на схеме они объединены в шину), значения режимов определятся информационными входами. Для реализации режима параллельной записи на информационный вход D3 необходимо подать сигнал с самостоятельного параллельного входа. Для реализации записи слева на информационный вход D2 необходимо подать сигнал с триггера, стоящего после текущего (сосед справа), для крайнего правого триггера это будет самостоятельный левый вход. Для реализации записи справа на информационный вход D1 необходимо подать сигнал с триггера, стоящего перед текущим (сосед слева), для крайнего левого триггера это будет самостоятельный правый вход. Для оставшегося информационного входа D0 отдельного режима нет, т.к. все необходимые уже реализованы, поэтому будем использовать его для хранения информации, т.е. будем подавать на него сигнал с текущего триггера.

Для примера произведём реализацию четырёхразрядного универсального сдвигового регистра в среде моделирования Logisim (рис. 2).

Рисунок 2 - схема четырёхразрядного универсального сдвигового регистра
Рисунок 2 - схема четырёхразрядного универсального сдвигового регистра

На схеме контакты D0, D1, D2, D3 являются входами параллельной записи. Контакты "левый" и "правый" отвечают за последовательную запись слева и справа соответственно. Контакт E - разрешающий вход, контакт R - асинхронный вход сброса триггеров в начальное состояние. Контакты A0, A1 - адресные входы мультиплексора, т.е. это контакты, отвечающие за режим работы регистра. Контакт C - сигнал синхронизации.

Проверим работу регистра. Сначала произведём параллельную запись значения 1100 (рис. 3), для этого на контакты A0, A1 ставим значение "1", а на контактах D0-D3 устанавливаем требуемое значение, затем подаём синхроимпульс.

Рисунок 3 - регистр с параллельно записанным значением 1100
Рисунок 3 - регистр с параллельно записанным значением 1100

Теперь произведём сдвиг вправо (рис. 4), а затем сдвиг влево (рис. 5). Для этого сначала установим на адресных входах комбинацию 01 и подадим синхроимпульс, а затем установим на адресных входах комбинацию 10 и снова подадим синхроимпульс.

Рисунок 4 - регистр с произведённым сдвигом на 1 значение вправо
Рисунок 4 - регистр с произведённым сдвигом на 1 значение вправо
Рисунок 5 - регистр с произведённым сдвигом на 1 значение влево
Рисунок 5 - регистр с произведённым сдвигом на 1 значение влево

Заметим, что после этих операций регистр вернулся в исходное состояние (состояние непосредственно после записи), значит схема работает корректно.

Таким образом, нам удалось реализовать четырёхразрядный универсальный сдвиговый регистр на D-триггерах.