Регистры для сдвига вправо
Схема 4-разрядного регистра сдвига вправо на D -триггерах приведена на рис. 1.5.
Рис. 1.5. Регистр сдвига вправо на D -триггерах
Параллельный код записывается по входам D 1 ÷ D 4 (D 1 – младший разряд, D 4 – старший разряд) при единичном уровне сигнала на входе WR, на входе сброса Изменение состояния триггеров и, соответственно, выходов регистра сдвига, осуществляется по фронту сигнала C. Выходы регистра 20 ÷ 23 соответствуют двоичным весам разрядов параллельного кода, который записывается в регистр. Вход D – вход последовательного ввода данных. Пусть на вход R был подан нулевой сигнал, после чего на входе R постоянно присутствует «1», а на входе WR – «0» (рис. 1.6) после предварительной записи числа 0110. Первый синхроимпульс (его номер 2) на входе C вызывает следующие действия (рис. 1.6): – в триггер 1 записывается «1» с входа D; – в триггер 2 записывается «0» с выхода триггера 1; – в триггер 3 записывается «0» с выхода триггера 2; – в триггер 4 записывается «0» с выхода триггера 3.
Рис. 1.6. Временные диаграммы работы регистра сдвига вправо на D -триггерах Второй синхроимпульс (его номер 3) вызывает следующие действия: – в триггер 1 записывается «0» с входа D; – в триггер 2 записывается «1» с выхода триггера 2; – в триггер 3 записывается «0» с выхода триггера 2; – в триггер 4 записывается «0» с выхода триггера 3. Синхроимпульсы с 3-го по 5-й выполняют аналогичные действия, 6-й синхроимпульс «выталкивает» логическую единицу с выхода триггера 1, обнуляя его. В промежутке между 6-м и 7-м синхроимпульсом вновь выполняется запись числа 0110, тогда после 7-го синхроимпульса на выходе регистра будет 0011, после 8-го синхроимпульса на выходе регистра будет код 0001, а после Если бы значение «1» присутствовало на входе D до момента прихода – синхроимпульс № 2 – 1000 – синхроимпульс № 3 – 1100 – синхроимпульс № 4 – 1110 – синхроимпульс № 5 – 1111
Логические операции сдвига вправо (или влево) выполняются при помощи мультиплексоров, операция циклического сдвига вправо (или влево) может быть выполнена при помощи регистра, изображенного на рис. 1.5, если на вход D подать сигнал с выхода 20 (влево – с выхода 23, если триггеры 1, 2, 3 и 4 будут иметь выход с двоичным весом 20, 21, 22 и 23 соответственно). Рассмотрим работу такого регистра (рис. 1.7).
Рис. 1.7. Сдвиговый регистр для циклического сдвига вправо Пусть в регистр было записано двоичное число 0101, тогда после первого синхроимпульса (такта) на выходе будет значение 1010, после второго такта на выходе будет значение 0101, после третьего такта – значение 1010 и т. д., а если записано значение 0110, то будут значения 0011, 1001, 1100, 0110 и т. д. соответственно.
|