Цифровые устройства Часть Последовательностные логические устройства
Скачать 1.54 Mb.
|
Регистр памяти с последовательным вводом и выводом информации Преобразование параллельного двоичного кода в последовательный двоичный код Сигнал V осуществляет выбор режима работы регистра. Если V =0, то по приходу синхроимпульса триггеры на выходах триггеров Q3, Q2, Q 1 и Q0 появляется значение сигналов на входах D3, D2, D 1 и D0. Таким образом, схема работает как регистр памяти. Если V = 1, то схема осуществляет последовательный сдвиг данных с входа первого триггера □вх. Выходные данные не зависят от D3, D2 и D 1. Таким образом, схема осуществляет преобразование последовательного кода в параллельный код. Для того чтобы схема осуществляла преобразование параллельного двоичного кода в последовательный двоичный код, сначала нужно записать входные параллельные данные D3D2D 1 D0 в соответствующие триггеры, а затем осуществлять их последовательный сдвиг. Тогда на выходе Dвых по каждому синхроимпульсы будут последовательно появляться информация с Q3, Q2, Q 1 и Q0, т.е. D3, D2, D 1 и D0. Первым появится сигнал D3, а последним D0. Несколько слов о направлении сдвига в цифровой технике (не микропроцессорной) сдвиг вправо - сдвиг в сторону старших разрядов, преобразование входных данных в последовательном двоичном коде в параллельный код сдвиг влево - сдвиг в сторону младших разрядов, преобразование входных данных в параллельном двоичном коде в выходные в последовательном коде drRG Qo Реверсивный регистр сдвигает как вправо, так и влево в зависимости от сигнала на входе выбора операции S, DR - входные данные для сдвига вправо, DL - входные данные для сдвига влево Т Арифметические операции, выполняемые с помощью регистров сдвига Поскольку в записи двоичного числа старший разряд находится слева, а младший справа, в микропроцессорной технике принято, что сдвиг влево - сдвиг в сторону старших разрядов, сдвиг вправо - в сторону младших разрядов. С помощью регистров можно выполнять операции умножения на два и деления на два. Умножение хранящегося числа на 2 осуществляется путем сдвига влево и записи «0» в младший разряд. Пример 00011 = 310 - сдвигаем влево 00110 = 610 - сдвигаем влево 01100 = 1210 - таким образом, умножили сначала на 2, потом еще раз на 2. Целочисленное деление хранящегося числа на 2 осуществляется путем сдвига вправо и записи «0» в старший разряд. Пример 01011 = 11 10 - сдвигаем вправо 00101 = 510 - сдвигаем вправо 00010=2 10 - сдвигаем еще раз вправо 00001 = 110 - таким образом, число 11 разделили на 2, получилось 5, затем 5 поделили на 2, получилось 2, и 2 поделили на 2, получилось 1. 63
|