Отдельный триггер может использоваться для хранения одного бита информации. Однако для машин, которые должны обрабатывать слова данных, состоящие из множества битов (обычно 64), удобнее объединить группу триггеров в стандартную структуру, называемую регистром. Работа триггеров, входящих в состав регистра, синхронизируется общим тактовым входом. Поэтому данные записываются (загружаются) во все триггеры и считываются изо всех триггеров одновременно.
В ходе обработки цифровых данных часто требуется сдвинуть или циклически прокрутить значения группы битов данных. Реализуются эти операции аппаратно. Простейшим механизмом для их выполнения является регистр, содержимое которого легко может быть сдвинуто вправо или влево на одну позицию за раз. В качестве примера рассмотрим 4-разрядный сдвиговый регистр, показанный на рис. 3.45. Он состоит из четырех D-триггеров, соединенных таким образом, что каждый
Рис. 3.45. Простейший сдвиговый регистр
тактовый импульс вызывает перемещение содержимого триггера Fi в триггер Fi +1, в результате чего получается «сдвиг вправо». Данные следовательно «вдвигаются» в регистр и «выдвигаются» из него. Для выполнения циклического смещения данных достаточно соединить выход Out и вход In.
Для корректного функционирования сдвигового регистра необходимо, чтобы на каждый тактовый импульс его содержимое смещалось ровно на одну позицию. Это условие накладывает некоторые ограничения на запоминающие элементы, которые могут использоваться в сдвиговых регистрах. Например, вентильные защелки (рис. 3.37) для этой цели не подходят. При высоком уровне тактового сигнала значение на входе D немедленно передается на выход, а оттуда — на следующую защелку. В результате количество сдвигов на один тактовый импульс никак не контролируется. Поэтому сдвиговые регистры создаются на основе двухступенчатых триггеров или триггеров, тактируемых фронтом сигнала. Интересной разновидностью сдвигового регистра является регистр, разряды которого могут считываться и загружаться параллельно. Для этого в него добавляются дополнительные вентильные схемы (рис. 3.46). Загрузка данного регистра выполняться как последовательно, так и параллельно. Когда на тактовый вход регистра подается очередной импульс, при условии, что Shift/Load =0, выполняется сдвиг, а в противном случае — параллельная загрузка регистра.
Рис. 3.46. Сдвиговый регистр с параллельным доступом