Занятие № 7. Регистры

Вопросы

  • Для чего используются регистры?
  • В каком порядке данные записываются и считываются из регистров?

Задачи

  • Изучить процесс записи значений в D-триггер.
  • Изучить процесс записи значений в четырёхразрядные регистры с последовательной записью.
  • Вспомнить алгоритм преобразования двоичных чисел в десятичные.

Теория

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

Для хранения одного бита в регистре используется триггер. Для хранения n-разрядного двоичного числа необходимо n триггеров. Схемы регистров в данной лабораторной работе составлены с помощью D-триггеров.

Выделяют 4 режима записи и чтения:

  • Последовательный ввод - параллельный вывод (SIPO - Serial-in to Parallel-out);
  • Последовательный ввод - последовательный вывод (SISO - Serial-in to Serial-out);
  • Параллельный ввод - последовательный вывод (PISO - Parallel-in to Serial-out);
  • Параллельный ввод - параллельный вывод (PIPO - Parallel-in to Parallel-out).

Если вывод Q одного триггера соединить с входом данных D следующего триггера регистра, получим регистр сдвига. Сдвиг разрядов может происходить вправо или влево.

Регистр с последовательной записью и параллельным чтением

На рисунке приведена схема 4-х разрядного регистра сдвига, построенного на основе динамических D-триггеров:

Число записывается в регистр последовательно, разряд за разрядом. Очередной разряд выставляется на входе данных D первого триггера. После подачи синхроимпульса на вход С, значение на входе D запишется в первый триггер и установится на выходе Q0. Последующие разряды числа записываются в триггер аналогичным образом. После 4-х синхроимпульсов, число записано в регистр и доступно для чтения на выходах Q3 Q2 Q1 Q0, где Q3 - старший разряд числа, Q0 - младший разряд числа.

Порядок чтения числа

Расположение старшего разряда числа в последнем триггере условно. При необходимости можно считать, что первый D-триггер хранит старший разряд, а последний - младший. Выбор обуславливается условием решаемой задачи.

Подобные регистры полезны при управлении несколькими сигналами при помощи небольшого количества входов. Например, всего два входа (D и C) понадобятся для управления состоянием 4 выходов (Q0..Q3). При необходимости несколько регистров соединяются последовательно. Объединив два 4-х разрядных регистра сдвига, получим 8 выходов (Q0..Q7), управление которыми всё также происходит с помощью всего двух входов.

Регистр с последовательной записью и чтением

Запись и чтение данных в таком регистре происходит последовательно. Схема 4-х битного регистра приведена на рисунке:

Разряды для записи последовательно поступают на информационных вход D первого D-триггера. Для записи 4-х битного числа потребуется подать 4 синхронизирующих импульса на вход C.

Чтение числа происходит последовательно из выхода Q. Как и для записи, для чтения числа потребуется 4 синхронизирующих импульса.

Такой регистр применяется как для хранения числа, так и для создания задержки в передаче данных. Величина задержки определяется количеством последовательно соединённых триггеров в схеме регистра.

Практические задания

Задание № 1. Исследование работы динамического D-триггера

Изучим режимы работы динамического D-триггера.

  1. Обнулите содержимое триггера, щёлкнув по входу R. Прямой выход Q должен содержать 0.
  2. Заполните столбец Q таблицы. По очереди устанавливайте необходимые значения на входах D и С и записывайте значения на выходе Q в нужную строку.
  3. Нажмите кнопку Проверить таблицу, чтобы убедиться в корректности её заполнения.
D C Q
0 1
0 0
1 1
1 0
1 1
1 0
0 1
0 0

Ответьте на вопросы:

  • Верно ли, что запись числа в регистр всегда происходит при изменении значения на входе C ?
  • Какое значение устанавливается на выходе Q после подачи 1 на вход R ?
  • Верно ли, что выход Q всегда повторяет значение на входе D ?

После сброса триггера подачей 1 на вход R, на прямом выходе Q устанавливается значение 0.

Чтобы поменять значение хранящееся в триггере и выводимое на Q, на входе С должен произойти переход значения от логического 0 к 1. Для записи нового значения в триггер не достаточно изменить значение на информационном входе D.

Задание № 2. Изучение регистра с последовательной записью и чтением

Запись производится последовательно, начиная со старшего разряда числа. В схеме контакты C и R работают в режиме кнопок: зажав и удерживая левую кнопку мыши меняем значение на входе с 0 на 1, отпустив левую кнопку мыши - с 1 на 0. Поэтому для записи следующего разряда и сброса регистра будет достаточно одиночного клика по контактам. В таблице клик по контакту С обозначен следующим образом: 01.

Запишем в регистр двоичное число 1101.

  1. Обнулите содержимое регистра, щёлкнув по входу R.
  2. Последовательно устанавливайте на входе D значения из таблицы и нажимайте контакт С для подачи тактового импульса на триггеры регистра. После каждого записанного разряда, записывайте в таблицу значения на выходе регистра Q.
  3. Нажмите кнопку Проверить таблицу, чтобы убедиться в корректности её заполнения.
D C Q
01
01
01
01
01
01
01
01

Ответьте на вопросы:

  1. Сколько импульсов нужно подать на вход C, чтобы записать 4-х разрядное число в данный регистр?
  2. Старший или младший разряд числа устанавливается на выходе Q после записи 4-х разрядного числа в регистр?
  3. Верно ли что в данном регистре мы можем одновременно прочитать все разряды записанного числа?

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

Разряды записываются по-очереди: первый вошёл - первый вышел. Если первым записывается старший разряд числа, то первым он и окажется на выходе регистра.

В регистре с последовательным выводом можно прочитать только 1 разряд числа за один тактовый импульс на входе C.

Задание № 3. Изучение работы регистра с последовательной записью и параллельным чтением

Запись числа в SIPO-регистр происходит последовательно, а чтение - параллельно. Будем считать, что за хранение старшего разряда записываемого числа будет отвечать последний D-триггер регистра.

Запишем в регистр двоичное число 1100.

  1. Обнулите содержимое регистра, щёлкнув по входу R.
  2. Последовательно устанавливайте на входе D значения из таблицы и нажимайте контакт С для подачи тактового импульса на триггеры регистра. После каждого записанного разряда, записывайте в таблицу значения на выходах регистра Q0..Q3.
  3. Нажмите кнопку Проверить таблицу, чтобы убедиться в корректности её заполнения.
D C Q0 Q1 Q2 Q3
01
01
01
01

Обнулите содержимое регистра и самостоятельно запишите в него двоичное число 0000. Продемонстрируйте результат преподавателю.

Порядок записи

Помните, что старший разряд числа должен храниться в триггере с выходом Q3.

Число 0000 2 = 10. На входе D установите логический 0. Подайте один тактовый импульс, нажав на вход C. Теперь в регистре хранится двоичное число 2 = 10. Это означает, что сдвиг вправо привёл к . Проверьте правильность ваших ответов.