Открыть сервис

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

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

История

Идея последовательного сдвига данных восходит к ранним этапам развития вычислительной техники. Первые сдвиговые регистры были реализованы на электромеханических реле и вакуумных лампах в 1940-х годах. Например, в компьютере ENIAC (1945) использовались сдвиговые регистры для временного хранения и обработки чисел. С появлением транзисторов и интегральных микросхем в 1960-х годах сдвиговые регистры стали компактными и надёжными. Первые серийные интегральные микросхемы сдвиговых регистров, такие как SN7495 (4-битный сдвиговый регистр) от Texas Instruments, появились в начале 1970-х годов. С развитием технологии КМОП (комплементарная структура металл-оксид-полупроводник) в 1980-х годах сдвиговые регистры стали неотъемлемой частью многих цифровых устройств, включая микроконтроллеры, процессоры и периферийные интерфейсы.

Классификация

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

По направлению сдвига

  • Однонаправленные (сдвиг вправо или влево) — данные смещаются только в одну сторону. Например, регистр сдвига вправо (Serial-In, Parallel-Out, SIPO) принимает последовательный вход и выдает параллельный выход.
  • Реверсивные (двунаправленные) — могут сдвигать данные как вправо, так и влево в зависимости от управляющего сигнала. Такие регистры часто используются в арифметических операциях (умножение, деление) и в буферах FIFO (First In, First Out).

По способу ввода/вывода

  • Последовательный вход — последовательный выход (SISO) — данные вводятся и выводятся по одному биту за такт. Используется для задержки сигнала.
  • Последовательный вход — параллельный выход (SIPO) — данные вводятся последовательно, а после заполнения регистра могут быть считаны параллельно. Применяется в преобразователях последовательного кода в параллельный, например, в интерфейсах SPI.
  • Параллельный вход — последовательный выход (PISO) — данные загружаются параллельно, а затем выводятся последовательно. Используется в преобразователях параллельного кода в последовательный, например, в интерфейсах UART.
  • Параллельный вход — параллельный выход (PIPO) — данные вводятся и выводятся параллельно, но сдвиг может выполняться внутри. Такие регистры применяются как буферы или регистры общего назначения.

По разрядности

Сдвиговые регистры выпускаются с различной разрядностью: 4-битные, 8-битные, 16-битные, 32-битные и более. В микросхемах общего назначения наиболее распространены 8-битные регистры (например, 74HC595).

По типу триггеров

  • На D-триггерах — наиболее распространённый тип, так как D-триггеры просты в реализации и обеспечивают чёткое копирование входного сигнала на выход при каждом такте.
  • На JK-триггерах — используются в более сложных схемах, где требуется дополнительная логика (например, сброс или установка).
  • На RS-триггерах — редко применяются в современных интегральных схемах из-за неопределённого состояния при одновременной подаче сигналов.

Устройство и принцип работы

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

Пример работы 4-битного SIPO регистра

Пусть на вход последовательно подаются биты 1, 0, 1, 1. После первого такта в первом триггере записывается 1, остальные триггеры содержат 0. После второго такта первый триггер содержит 0 (второй входной бит), а второй триггер — 1 (первый бит). После четвёртого такта все четыре триггера содержат последовательность 1, 1, 0, 1 (в порядке от первого к четвёртому). Если теперь подать сигнал разрешения параллельного вывода, данные будут доступны на параллельных выходах.

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

Для реализации двунаправленного сдвига используются мультиплексоры на входах триггеров. Управляющий сигнал (например, DIR) определяет, какой вход подключается к каждому триггеру: при сдвиге вправо — выход предыдущего триггера, при сдвиге влево — выход следующего. Такие регистры часто содержат также входы параллельной загрузки.

Применение

Сдвиговые регистры находят применение в самых разных областях цифровой электроники.

Преобразование кодов

Одно из основных применений — преобразование последовательного кода в параллельный и обратно. Например, в интерфейсе SPI (Serial Peripheral Interface) ведущее устройство передаёт данные по последовательной линии, а ведомое устройство принимает их с помощью сдвигового регистра SIPO. В интерфейсе UART (Universal Asynchronous Receiver-Transmitter) используется регистр PISO для передачи данных в последовательный поток.

Умножение и деление на степени двойки

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

Задержка сигнала

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

Управление светодиодными матрицами и дисплеями

Сдвиговые регистры, такие как 74HC595, широко применяются для управления большим количеством светодиодов или сегментов дисплеев при ограниченном количестве выводов микроконтроллера. Например, для управления 8-сегментным индикатором достаточно трёх выводов (данные, такт, стробирование), а не восьми.

Цифровые фильтры и обработка сигналов

В цифровой обработке сигналов (ЦОС) сдвиговые регистры используются в составе КИХ-фильтров (конечная импульсная характеристика) для хранения отсчётов сигнала и выполнения свёртки.

Примеры микросхем

Наиболее известные интегральные микросхемы сдвиговых регистров:

  • 74HC595 — 8-битный SIPO регистр с выходным защёлкивающим регистром и тремя состояниями выходов. Широко используется в любительской и промышленной электронике.
  • 74HC164 — 8-битный SIPO регистр без выходного защёлкивающего регистра.
  • 74HC165 — 8-битный PISO регистр, используется для чтения параллельных данных через последовательный интерфейс.
  • CD4015 — сдвоенный 4-битный SIPO регистр на КМОП-технологии.
  • SN74LS299 — 8-битный реверсивный сдвиговый регистр с параллельной загрузкой.

Критика и ограничения

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

Интересные факты

  • В ранних компьютерах (например, в IBM 650) сдвиговые регистры реализовывались на магнитных сердечниках.
  • В некоторых архитектурах процессоров (например, в ARM) сдвиговые регистры встроены непосредственно в АЛУ и могут выполнять сдвиг за один такт.
  • Сдвиговые регистры используются в генераторах псевдослучайных чисел на основе линейных регистров сдвига с обратной связью (LFSR).

Источники

  • Хоровиц П., Хилл У. «Искусство схемотехники» (3-е издание, 2001).
  • Титце У., Шенк К. «Полупроводниковая схемотехника» (12-е издание, 2008).
  • Data sheets: 74HC595, 74HC165, CD4015 (Texas Instruments, NXP, ON Semiconductor).
  • ГОСТ 2.743-91 «Обозначения условные графические в схемах. Элементы цифровой техники».
  • Учебное пособие «Цифровая схемотехника» (МГТУ им. Н.Э. Баумана, 2015).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →