34-3. СДВИГОВЫЕ РЕГИСТРЫ
Сдвиговый регистр — это последовательная логическая цепь, широко используемая для временного хранения данных. Данные могут быть загружены в сдвиговый регистр и удалены оттуда либо в параллельной, либо в последовательной форме. На рис. 34–23 показаны четыре различных метода загрузки и чтения данных в сдвиговом регистре. Благодаря их способности перемещать данные по одному биту из одного места хранения в другое, сдвиговые регистры полезны при выполнении различных логических операций.
Рис. 34–23. Методы загрузки и чтения данных в сдвиговом регистре.
Сдвиговые регистры состоят из соединенных между собой триггеров. Триггеры обладают всеми функциями, необходимыми для регистра: их можно установить в исходное состояние, предустановить, переключить или управлять уровнями 1 или 0. На рис. 34–24 изображен основной сдвиговый регистр, состоящий из четырех триггеров. Он называется четырехразрядным сдвиговым регистром, так как состоит из четырех двоичных элементов хранения информации.
Рис. 34–24. Сдвиговый регистр, составленный из четырех триггеров.
Важной особенностью сдвигового регистра является то, что он может перемещать данные вправо и влево по отношению к исходному положению разрядов. Это эквивалентно умножению или делению записанного числа на определенный множитель. Данные сдвигаются на один разряд при подаче каждого тактового импульса. Тактовые импульсы полностью управляют работой сдвигового регистра.
На рис. 34–25 изображен типичный 4-разрядный сдвиговый регистр, состоящий из JK-триггеров.
Рис. 34–25. Типичный сдвиговый регистр, составленный из JK-триггеров.
Последовательные данные и их дополнения подаются на JK входы триггера А . Остальные триггеры соединены каскадно, то есть выходы одного подсоединены ко входам следующего. Переключатели всех триггеров соединены вместе, и по этой линии подаются тактовые импульсы. Поскольку все триггеры переключаются одновременно — цепь является синхронной. Кроме того, входы очистки каждого триггера соединены вместе и образуют линию сброса. Данные, поданные на вход, сдвигаются триггерами на один разряд по каждому тактовому импульсу. Например, если на вход сдвигового регистра подано двоичное число 1011, и подан сдвиговый импульс, то число, записанное в сдвиговом регистре, выдвигается на один разряд и теряется, тогда как новое число вдвигается на один разряд. На рис. 34–26 показана последовательность совершаемых действий при записи числа в сдвиговый регистр.
Рис. 34–26. Хранение числа в сдвиговом регистре.
Одним из наиболее частых применений сдвигового регистра является преобразование данных из последовательной формы представления в параллельную, и наоборот. На рис. 34–27 показано как данные в параллельном коде могут быть загружены в сдвиговый регистр. Для работы с данными в параллельном коде входные данные предустанавливаются в сдвиговом регистре. Когда данные находятся в сдвиговом регистре, они могут быть последовательно выдвинуты, как было описано ранее.
Рис. 34–27. Загрузка данных в сдвиговый регистр при использовании параллельного входа.
Для преобразования данных из последовательной формы представления в параллельную, они сначала помещаются в сдвиговый регистр с помощью тактовых импульсов.
Когда данные находятся в сдвиговом регистре, выходы отдельных триггеров контролируются одновременно, и данные направляются по назначению.
Сдвиговые регистры могут выполнять арифметические операции, такие как умножение или деление. Сдвиг двоичного числа, хранящегося в сдвиговом регистре, вправо, дает такой же эффект, что и деление этого числа на некоторую степень 2. Сдвиг двоичного числа, хранящегося в сдвиговом регистре, влево, дает такой же эффект, что и умножение этого числа на некоторую степень 2. Сдвиговые регистры предоставляют простой и недорогой способ выполнения умножения и деления чисел.
Читать дальше