Сдвиговые регистры
← Все статьи

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

5 мин

Что делает сдвиговый регистр

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

Последовательный вход, последовательный выход (SISO)

В простейшей конфигурации данные входят по одному биту на вход D первого триггера и выходят по одному биту с выхода Q последнего триггера, задержанные ровно на N тактовых циклов для регистра из N каскадов. Это базовый строительный блок линий задержки и простой последовательной связи.

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

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

Где они применяются

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

Загрузите пример сдвигового регистра в Boolflow, переключите CLOCK и наблюдайте, как активный бит движется по цепочке элементов OUTPUT на одну позицию за импульс.

Загрузить пример сдвигового регистра