Сдвиговые регистры


Сдвиговые регистры предназначены для сдвига записанных в них двоичных кодов влево или вправо. Эти регистры обычно строятся на триггерах типа J-K или D с динамическим управлением или двухступенчатых. Типовая схема четырехразрядного регистра сдвига имеет вид:

 Сдвиговые регистры

В общем случае регистр сдвига может иметь:

а) входы параллельной записи информации во все триггеры регистра D3…D0;

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

в) вход записи последовательного кода S;

г) тактовый вход записи последовательного кода и сдвига информации в регистре C1;

д) выходы всех триггеров регистра Q3…Q0.

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

Для сдвигов кода в регистре используются пары входов с динамическим управлением. При этом по переднему фронту каждого из тактовых импульсов C1 логическое состояние каждого левого триггера переписывается в каждый правый. Исходный код при этом сдвигается на один разряд вправо. Бит, находящийся в триггере Q0 — теряется — выходит за пределы разрядной сетки регистра. Освободившийся при сдвиге бит в триггере Q3 заполняется значением сигнала на входе S в момент сдвига. Работу регистра сдвига в котором был записан четырехразрядный код abcd, где a,b,c,d={0,1}. Удобно пояснить с помощью графа:

 Сдвиговые регистры

Здесь S1…S4 — логическое состояние входа S в моменты подачи соответственно 1-го…4-го тактового импульса C1.

Рассмотрим логическое состояние триггера Q0. В те же самые моменты времени:

Q01=d;

Q02=c;

Q03=b;

Q04=a.

Легко видеть, что состояние триггера Q0 изменялось в соответствии со значениями битов исходного параллельного кода abcd начиная с младшего, то есть в регистре имеет место преобразование из параллельного кода в последовательный. В то же самое время в регистре может идти и обратное преобразование. Четыре разряда последовательного кода поступающие извне на вход S синфазно с тактовыми импульсами C1 превращаются после четырех таких импульсов в четырехразрядный параллельный код S4S3S2S1 записанный в триггеры регистра. Этот код может быть легко считан во внешнее устройство. На функциональных схемах регистр сдвига изображают следующим образом:

 Сдвиговые регистры

Стрелка (→)в условном обозначении регистра указывает на сдвиг вправо. В принципе могут использоваться регистры сдвига влево (←) и реверсивные (↔).

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

 Сдвиговые регистры

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