Как работает сдвиговый регистр
Перейти к содержимому

Как работает сдвиговый регистр

  • автор:

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

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

Сдвиговые регистры реализуются на СИС – устройствах, выполненных с применением RS-, JK-, или D – триггеров, и различия между ними главным образом связаны с методом обработки входных и выходных данных. В данном разделе описываются основные типы этих регистров.

Рис. 2.29. Типичный 4 х разрядный регистр с последовательным входом.

Рис. 2.30. Временная диаграмма работы 4 х разрядного сдвигового регистра.

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

Сдвиговый регистр с последовательным входом – это устройство, в котором данные последовательно поступают на вход, как показано на рис. 2.29 для 4 х разрядного сдвигового регистра. В данном случае используются D – триггеры. Работает регистр следующим образом. В исходном положении импульс сброса (логический 0) подается на вход «Установка в 0», устанавливая выходы Q0-Q3 в 0. Дале первый бит данных подается на последовательный вход. При воздействии переднего фронта первого тактового импульса Q0 принимает значение равное D1. Затем на последовательный вход подается D2. При воздействии переднего фронта второго тактового импульса Q0=D2 и Q1=D1. Продолжается этот процесс, после четырех тактовых импульсов имеем Q0=D4, Q1=D3, Q2=D3, Q3=D1. Временная диаграмма для последовательно поступающих входных данных показана на рис. 2.30.

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

Сдвиговый регистр с параллельным входом

Сдвиговый регистр с параллельным, входом — это устройство, в котором входные данные поступают одновременно по параллельным информационным каналам (рис. 2.31).. Запись данных в регистр осуществляется следующим образом. Сначала производится сброс содержимого регистра подачей импульса (логического 0) на вход «Установка в 0». Далее D1—D4 подаются на входы и импульс (логическая 1) .поступает на вход записи. Это приводит к записи информации во все регистры с использованием входов предустановки. После этого при появлении каждого тактового импульса информация сдвигается на один разряд вправо. Выход данных может быть как последовательным, так и параллельным. Многие сдвиговые регистры, выполненные в виде ИС, имеют параллельный вход и последовательный выход. Эти устройства известны как параллельно-последовательные преобразователи.

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

Рис. 2.31. Типичный 4-разрядный сдвиговый регистр с параллельным выходом.

Пример регистра

В микросхеме ИР1 каждый разряд образован синхронным двухступенчатым триггером RS с логикой на входе (рис. 2.32). Регистр сдвига позволяет реализовать следующие режимы работы: запись информации параллельным кодом; сдвиг вправо; сдвиг влево. Управление режимом работы регистра осуществляется по входам VI, V2, С1, С2 (выводы 1, 6, 9, 8).

Рис. 2.32. Логическая структура микросхемы ИР1

Для записи в регистр информации параллельным кодом следует на вход управления режимом V2 подать напряжение высокого уровня, на вход С2 напряжение низкого уровня, а информационные сигналы на входы D1 — D8. Напряжение на входах С1, VI может быть любым. Для сдвига за писанной параллельным кодом информации вправо тактовые импульсы подаются на вход С2 (вывод 8). При этом на входе V2 (вывод 6) следует поддерживать напряжение высокого уровня. При операциях с данными, представленными в последовательном коде, входную информацию в виде последовательности импульсов подают на вход информации VI (вывод 1), тактовые импульсы на вход синхронизации С1 (вывод 9), а на входах V2, D1 — D8 поддерживают напряжение низкого уровня. Режимы работы ИС ИР1 при различных видах записи информации представлены в табл. 2.11.

При сдвиге влево на вход выбора режима V2 подается напряжение высокого уровня, которое блокирует прохождение тактовых импульсов, для сдвига вправо. Если при этом на входы параллельного кода разрядов D1 — D8 не подавать параллельный код числа, а выход последнего разряда соединить с входом параллельного кода предыдущего разряда, его выход с аналогичным входом предшествующего ему разряда и т. д. то получим регистр сдвига влево. Входом последовательного кода в этом случае служит вход параллельного ко­да последнего разряда регистра сдвига.

Микросхемы ИР1 могут быть использованы в качестве основного элемента в арифметических устройствах буферной памяти, элемента задержки на n тактов, преобразователя последовательных кодов в параллельные и наоборот, делителя частоты, закольцованного распределителя импульсов и т. д.

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

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

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

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

Рис. 8.14. Направление сдвига в сдвиговых регистрах

В стандартные серии цифровых микросхем входит несколько типов сдвиговых регистров, отличающихся возможными режимами работы, режимами записи, чтения и сдвига, а также типом выходных каскадов (2С или 3С). Большинство регистров сдвига имеет восемь разрядов. На рис. 8.15 представлены для примера четыре типа микросхем регистров сдвига.

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

Рис. 8.15. Сдвиговые регистры

Регистр ИР9 выполняет функцию, обратную регистру ИР8. Если ИР8 преобразует входную последовательную информацию в выходную параллельную, то регистр ИР9 преобразует входную параллельную информацию в выходную последовательную. Однако суть сдвига не меняется, просто в ИР9 все внутренние триггеры имеют выведенные параллельные входы, и только один, последний триггер имеет выход (причем как прямой, так и инверсный). Запись входного кода в регистр производится по нулевому сигналу на входе -WR. Сдвиг осуществляется по положительному фронту на одном из двух тактовых входов С1 и С2, объединенных по функции 2ИЛИ. Имеется также вход расширения DR, сигнал с которого в режиме сдвига перезаписывается в младший разряд сдвигового регистра.

Рис. 8.16. Соединение регистров ИР8 для увеличения разрядности

Как и все остальные сдвиговые регистры, ИР8 и ИР9 допускают каскадирование, то есть совместное включение для увеличения разрядности.

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

Регистр ИР24 обеспечивает сдвиг информации в обоих направлениях. Имеются входы расширения DR и DL, а также выходы расширения Q0 и Q7, что позволяет легко наращивать разрядность.

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

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

Рис. 8.19. Последовательная передача информации с помощью регистров сдвига

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

Первый бит последовательного входа (со входа 7 регистра ИР9) начинает передаваться с началом сигнала записи -Зап. Следующие разряды передаются с каждым следующим положительным фронтом тактового сигнала С. Последним передается сигнал со входа 0. В регистр ИР8 разряды последовательного кода записываются в том же самом порядке, в каком они были в регистре ИР9. По окончании передачи первый переданный сигнал данных окажется в разряде 7 шины данных регистра ИР8, а последний переданный сигнал данных — в разряде 0.

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

Рис. 8.20. Линия задержки входного сигнала на регистре сдвига

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

Рис. 8.21. Формирователь импульсов с длительностью, задаваемой управляющим кодом

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

Пусть управляющий код равен 5. Тогда в тот момент, когда на выходе 5 сдвигового регистра появится единица, она будет передана на выход мультиплексора КП7 с инверсией. При этом нулевой сигнал на входе –R триггера сбросит триггер в нуль, то есть выходной сигнал закончится.

Таким образом, длительность выходного сигнала будет определяться управляющим кодом. Погрешность установки этой длительности равна одному периоду тактового сигнала и зависит от временного сдвига между фронтом входного сигнала и фронтом ближайшего к нему тактового импульса. Чем больше длительность выходного сигнала, тем меньше относительная погрешность установки его точности. Например, при управляющем коде 0 длительность выходного сигнала может быть от 0 до Т, где Т — период тактового сигнала. А при управляющем коде 7 длительность выходного сигнала будет от 7Т до 8Т. При этом мы не учитываем задержек триггера, сдвигового регистра и мультиплексора.

Сдвиговые регистры могут также использоваться для умножения и деления двоичных чисел на 2 n , где n — целое число, большее нуля. Сдвиг двоичного числа вправо (в сторону младших разрядов) на один разряд равносилен делению на 2. Сдвиг двоичного числа влево (в сторону старших разрядов) на один разряд равносилен умножению на 2. Для того чтобы сдвиговый регистр умножал и делил двоичный код, надо всего лишь записать этот код в регистр и сдвинуть его нужное количество раз вправо или влево. Наиболее удобен для этого регистр ИР13. При этом необходимо, чтобы в освободившиеся разряды вдвигались нули, то есть на входы расширения DR и DL регистра надо подать нулевые сигналы.

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

Задача состоит в том, чтобы выходной сигнал или код менял свое состояние случайно (или почти случайно). Сигнал должен случайно переключаться из 0 в 1 и из 1 в 0, а код должен случайно принимать значения из диапазона от 0 до (2 N–1 ), где N — число разрядов кода (например, от 0 до 255 при 8-разрядном коде). Псевдослучайные последовательности имеют то преимущество перед истинно случайными, что они — предсказуемые и периодические, но в этом же и их недостаток.

Структура генератора квазислучайной последовательности на сдвиговом регистре очень проста (рис. 8.22). Она представляет собой регистр сдвига с параллельными выходами (например, ИР8), несколько (минимум два) выходных сигналов которого объединены с помощью элемента Исключающее ИЛИ, с выхода которого сигнал подается на вход регистра, замыкая схему в кольцо. Схема тактируется сигналом с частотой fT.

Рис. 8.22. Структура генератора псевдослучайной последовательности

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

Выгоднее брать число разрядов не кратное 8, например, 7, 15 или 31. В этом случае для обратной связи используются всего лишь два выхода, то есть достаточно одного двухвходового элемента Исключающее ИЛИ.

Период выходной последовательности генератора составляет (2 N -1) тактов, где N — количество разрядов регистра сдвига. За это время каждое из возможных значений выходного кода (кроме одного) встречается один раз. Количество единиц в выходном сигнале больше количества нулей на единицу.

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

Частоты в спектре выходного сигнала будут следовать с интервалом (fT/2 N –1), а огибающая спектра будет практически постоянной до частоты 0,25fT, то есть шум до этой частоты можно считать белым (спад в 3 дБ происходит на частоте 0,45 fT).

Такой генератор использовала известная фирма Hewlett–Packard в своем генераторе шума.

Что такое регистр?

Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Для тех, кто не знает, что такое триггер, рекомендуем познакомиться с простейшим RS-триггером.

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

На входы D0 – D2 подаётся число, которое необходимо сохранить. Как только на входе С появляется импульс синхронизации, число записывается в триггер, изменяя их состояние. На рисунке показан трёхразрядный регистр хранения. При подаче на входы числа 1112 оно же появится на прямых выходах триггеров (Q0Q2). На инверсных выходах (Q0Q2) будет, естественно 0002. Сигналом R (Reset) или сброс, триггеры устанавливаются в нулевое состояние.

Обычно используются регистры, состоящие из 4, 8, или 16 триггеров. Изображение четырёхразрядного регистра на принципиальных схемах может быть таким.

На рисунке не показаны инверсные выхода триггеров и сигнал R. Регистры всегда обозначаются латинскими буквами RG. Если регистр сдвигающий, то под обозначением рисуется стрелка направленная влево, вправо или двойная.

Сдвигающие регистры или регистры сдвига.

Регистр сдвига это устройство, состоящее из нескольких последовательно соединённых триггеров, число которых определяет разрядность регистра. Регистры широко используются в вычислительной технике для преобразования кодов. Параллельного в последовательный и наоборот.

Кроме того сдвигающие регистры являются основой (АЛУ) арифметико-логического устройства, так как при сдвиге записанного в регистр двоичного числа на один разряд влево производится умножение числа на два, а при сдвиге числа на один разряд вправо число делится на два. Поэтому наибольшее распространение получили реверсивные или двунаправленные регистры.

Рассмотрим четырёхразрядный регистр сдвига, преобразующий последовательный двоичный код в параллельный. Применение последовательного кода оправдано тем, что по одной линии можно передавать огромные массивы информации. Таким примером может служить универсальная последовательная шина — USB порт любого устройства. Число триггеров в данном регистре может быть любым. Достаточно соединить прямой выход Q3 с D входом следующего триггера и так далее до достижения необходимой разрядности.

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

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

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

Видно, что на условном изображении присутствует стрелка — указатель того, что это сдвиговый регистр.

Рассмотрим, как работает четырёх разрядный универсальный регистр сдвига К155ИР1 (аналог — SN7495N). Вот его внутреннее устройство.

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

  • V2 – вход управления. С его помощью выбирается режим работы регистра.
  • Q1 – Q4 выходы триггеров с которых снимается параллельный код.
  • V1 – вход для подачи последовательного кода.
  • C1, C2 – тактовые синхроимпульсы.
  • D1 – D4 – входы для записи параллельного кода.

Алгоритм работы регистра следующий. Если на вход V2 подать низкий потенциал, тактовые импульсы на C1, а на вход V1 подавать информационные биты, то регистр осуществляет сдвиг вправо. После приёма четырёх разрядов на выходах триггеров Q1 – Q4 мы получаем параллельный код. Таким образом осуществляется преобразование последовательного кода в параллельный.

Для обратного преобразования параллельный код записывается по входам D1 – D4, с подачей на вход V2 высокого потенциала и тактовых импульсов на вход С2. Затем подавая на вход V2 низкий потенциал, а тактовые импульсы на вход С1 мы сдвигаем записанный код, а с выхода последнего триггера снимается последовательный код.

По своей структуре это один из самых простых регистров сдвига.

Регистры сдвига в цифровой технике могут послужить основой, на которой собираются узлы с интересными свойствами. Это, например, кольцевые счётчики, которые называются счётчики Джонсона. Такой счётчик имеет количество состояний вдвое большее, чем число составляющих его триггеров. Например, если кольцевой счётчик состоит из трёх триггеров, то он будет иметь шесть устойчивых состояний. На вход счётчика ничего не подаётся кроме синхроимпульсов. В первоначальном состоянии все триггеры «сброшены», то есть на прямых выходах триггеров логические нули, а вот на входе D первого триггера с инверсного выхода третьего триггера находится логическая единица. Начнём подавать тактовые импульсы и процесс пошёл.

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

N Q2 Q1 Q0
1 0 0 1
2 0 1 1
3 1 1 1
4 1 1 0
5 1 0 0
6 0 0 0

Теперь вы знаете, что такое регистр и как он может использоваться на практике. Основа любого регистра — это триггер. Число триггеров в регистре определяет его разрядность. Те, кто увлекается микроконтроллерами знает, что важнейший элемент любого микроконтроллера, будь то PIC, AVR, STM или MSP, это регистр.

8.4. Регистры сдвига

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

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

Рис. 8.10. Функциональная схема (а) и условное обозначение

(б) сдвигового регистра

Регистр состоит из цепочки триггеров. Пусть ТТ0 – триггер младшего разряда, ТТ3 – триггер старшего. D-вход каждого триггера (кроме ТТ0) подключен к выходу соседнего (младшего) триггера. Когда на все объединенные С-входы триггеров поступает активный отрицательный фронт (спад) сигнала “сдвиг”, выход каждого триггера принимает состояние своего младшего соседа. Таким образом, информация, содержащаяся в регистре, сдвигается на один разряд в сторону старших триггеров, вправо. Выход D триггера ТТ0 принимает при этом состояние последовательного входа DS. Регистр загружается данными, последовательно поступающими по этому входу. Считывать данные, хранимые в RG, можно как в последовательном коде с выхода последнего разряда, так и в параллельном, сразу со всех разрядов.

Сдвиг может производиться как влево, так и вправо.

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

Кольцевые счетчики

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

Рис . 8.11. Схема кольцевого счетчика на базе сдвигающего регистра

В этом регистре продвигается одна единица, которая при подаче очередного продвигающего импульса передается в следующую по порядку ячейку. Дойдя до конца регистра, единица записывается в первую ячейку и счет повторяется. Входной импульс с (тактирующий) в этом счетчике выполняет функции продвигающего. Число поступивших на вход импульсов фиксируется позицией единицы в регистре в данный момент времени. В таких счетчиках отсутствует последовательная передача сигнала переноса от ячейки к ячейке и поэтому задержка выходного импульса относительно входного оказывается незначительной. Количество двоичных ячеек должно быть равно коэффициенту счета (деления), при больших коэффициентах такой счетчик неэкономичен. Для существенного увеличения коэффициента счета при малых аппаратурных затратах счетчики соединяют последовательно (рис. 8.12). Если у одного счетчика коэффициент счета равен n, а у другого – m, то общий коэффициент счета будет равен произведению

Рис. 8.12. Последовательное соединение счетчиков

Продолжим далее рассмотрение сдвиговых регистров. В качестве первого примера сдвигового регистра рассмотрим микросхему К155ИР1 – четырехразрядный регистр сдвига с последовательным или параллельным вводом и параллельным выводом информации. Он может быть использован в качестве буферной памяти, элемента задержки на несколько тактов, преобразователя последовательного кода в параллельный и наоборот, делителя частоты, кольцевого распределителя импульсов, элемента арифметических устройств и т. п. Условное изображение приводится на рис. 8.13.

Рис. 8.13. Реверсивный сдвиговый регистр

С1, С2 – тактовые входы; V2 – выбор режима; V1 – для ввода информации в последовательном коде; D1-D4 для записи информации в параллельном коде; Q1Q4 – четыре разряда выхода. Входы С1 и С2 для синхронизации от одного или двух генераторов. Срабатывание триггера по перепаду 1,0 импульсов на одном из входов С.

Если на входе сигнал V2 = 0 – ввод последовательным кодом через V1 и сдвиг вправо, а тактовые импульсы подаются на С1. Сдвиг вправо при каждом перепаде 1,0 тактовых импульсов. Через 4 тактовых импульса информацию можно считать в параллельном коде.

Ввод параллельным кодом производится при V2 = 1 по спаду импульса на входе С2. Входы V1 и С1 при этом блокированы и роли не играют.

В этом же режиме V2 и С2 производится преобразование последовательного кода в параллельный со сдвигом влево. В этом случае информация идет от 4-го триггера к 3-му, от 3-го ко 2-му и т. д. Для этого выходы Q4, Q3, Q2 соединяют со входами D3, D2, D1 соответственно. Информация в последовательном коде поступает через вход D4 при каждом перепаде С2 с 0 на 1. Таблица состояний регистра 155ИР1 приведена ниже.

Запись параллельным кодом, сдвиг влево

Запись последов. кодом, сдвиг вправо

Во избежание сбоев смена состояний V2 должна происходить только при С1 = С2 = 0. Последовательным соединением n микросхем можно получить 4-n разрядный регистр с преобразованием параллельного кода в последовательный и наоборот.

Микросхема К155ИР13 – универсальный 8-ми разрядный регистр сдвига с большими функциональными возможностями – представлена на рис. 8.14.

Регистр может работать в следующих режимах (табл. 8.2):

– последовательный ввод информации со сдвигом вправо;

  • последовательный ввод со сдвигом влево;
  • параллельный ввод;
  • хранение;
  • установка нулей (сброс).

Рис. 8.14. Универсальный восьмиразрядный сдвиговый регистр Информационные входы последовательного ввода: DR – при сдвиге вправо; DL – при сдвиге влево; D1¸D8 – параллельный ввод; С – тактовый вход; S1, S0 – для выбора режима; R – для установки триггера в 0; QQ8 – выходы.

Таблица 8.2
Входы Выходы Режим
R C S1 S0 DR DL Di Q1,Q2…Q8
1 1 1 1 × Di n D1 n D8 n Параллельный ввод
1 0 0 × × × Q1 n Q8 n Хранение
1 1 0 × 0 × Q2 n Q8 n , 0 Сдвиг влево
1 1 0 × 1 × Q2 n …Q8 n ,1
1 0 1 0 × × 0, Q1 n Q7 n Сдвиг вправо
1 0 1 1 × × 1, Q1 n …Q7 n
0 × × × × × × 0…0 Сброс

Далее приведена схема регистра сдвига с параллельным и последовательным вводом информации и последовательным ее выводом (рис. 8.15). Режим работы регистра определяется сигналом на входе s/p (последовательно–параллельно). Допустим, сигнал на этом входе имеет уровень 1. На выходе инвертора DD8 будет 0, который закроет логические элементы DD5.1–DD5.4 и DD6.1–DD6.4 и создаст тем самым на асинхронных входах триггеров Sa и Ra уровни 1, разрешающие синхронное действие. Входы D1–D4 для параллельного ввода информации при этом заблокированы. Тактовые импульсы на входе обеспечат синхронный ввод информации в последовательном коде (со входа А) и также сдвиг ее вправо. За счет инверсии тактовых импульсов элементом DD7 тактирование происходит по фронту 0,1 (а не по срезу). Рис. 8.15. Схема реверсивного регистра Когда на входе s/p 0 элемент DD7 заперт, тактирование триггеров прекращается. Сигнал на общих входах элементов DD5.1–DD5.4 и DD6.1–DD6.4 становится 1, вследствие чего каждый из этих элементов для сигналов на шинах параллельного ввода D1–D4 служит инвертором. Под воздействием входных сигналов параллельного ввода выходы соответствующих триггеров примут те же состояния – Qi = Di. С появлением на входе s/p 1 (разрешение тактирования) информация, введенная в параллельном коде, с каждым тактовым импульсом будет сдвигаться на один разряд и выдаваться в последовательной форме, т. е. произойдет преобразование информации параллельного вида в последовательный. Если в такой схеме сделать выводы с выхода каждого JK-триггера, то можно будет вводить и выводить информацию в параллельном и в последовательном коде и преобразовывать из последовательного кода в параллельный, и наоборот.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *