Рефераты. Арифметические устройства

Для того, чтобы схема работала как 3-разрядный вычитатель нужно на управляющий вход подать логическую 1. В этом случае элементы исключающее ИЛИ работают как инверторы и на входах сумматоров получим . Кроме этого, логическая 1 открывает логический элемент И, в результате чего, сигнал с выхода последнего сумматора поступает по цепи циклического переноса на вход сумматора единиц. На выходном индикаторе отобразится разность двух двоичных чисел.

Суммирующее устройство последовательного действия15.8. Суммирующее устройство последовательного действия

В параллельном сумматоре для каждого двоичного разряда нужен отдельный полный сумматор. При другом способе сложения последовательном, требуется только один полный сумматор. На рис. 15.17 показан принцип работы сумматора последовательного действия, которая помимо полного сумматора включает два регистра сдвига (А и В) и регистр суммы. Регистры сдвига А и В связаны со входами А и В полного сумматора.

Рис. 15.17. Принцип работы суммирующего устройства последовательного действия

Процесс последовательного суммирования состоит из нескольких шагов, которые отображены на рис. 15.17. На первом шаге регистры А и В загружаются двоичными числами и . С приходом первого тактового импульса складываются значения разряда единиц ( и ) и сумма заносится в выходной регистр, который связан с выходом У полного сумматора. С приходом второго тактового импульса складываются

значения разряда двоек ( и ) и перенос, который поступает на вход сумматора от триггера-задержки. Результат заносится в выходной регистр, при этом предыдущая сумма сдвигается вправо. С приходом третьего тактового импульса происходит сложение и переноса . Результат помещается в выходной регистр. Таким образом после трех тактовых импульсов в регистре суммы находится результат - двоичное число . Следует заметить, что в данной схеме тактовые входы всех регистров (двух входных и выходного) и триггера с задержкой связаны между собой. Кроме этого, в каждый момент времени складываются только два бита информации. Для сложения двух 3-разрядных чисел следует использовать только три тактовых импульса, поскольку большее число импульсов приведет к сдвигу двоичного числа в регистре суммы и на индикаторе будет неверный результат.

Двоичное умножение15.9. Двоичное умножение

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

Рис. 15.18. Правила двоичного умножения

Рассмотрим пример на умножение двоичных чисел 111 и 101 (рис. 15.19).

Рис. 15.19. Пример на двоичное сложение

Сначала множимое (111) умножается на значения разряда единиц множителя. В результате получается первое частичное произведение, равное 111. Затем множимое умножается на значение разряда двоек множителя, при этом младший разряд второго частичного произведения отбрасывается. На третьем этапе множимое умножается на значение разряда четверок множителя. В результате получается третье частичное произведение 11100, но записывается это число как 111. В конце, первое, второе и третье частичные произведения складываются.

На рис. 15.20 показан еще один пример на двоичное умножение.

Рис. 15.20. Пример на двоичное умножение

Рассмотрим способы, которыми можно реализовать умножение двоичных чисел. Первый способ умножения - это многократно повторяемая операция сложения. Рассмотрим пример. Допустим необходимо найти произведение десятичных чисел 6 и 4. Произведением этих чисел является число 24. Этот же результат можно получить, используя операцию сложения: 6+6+6+6=24. Таким образом, операцию умножения можно заменить многократным сложением.

Рассмотрим схему устройства, которое позволяет реализовать такой способ умножения (рис. 15.21).

Рис. 15.21. Структурная схема операции умножения с использованием многократно повторяемого сложения

Рассмотрим процесс умножения двоичного числа 110 (десятичное 6) на двоичное число 100 (десятичное 4). Число 110 загружается в регистр множимого. Множитель (100) содержится в вычитающем счетчике. Произведение накапливается в регистре произведения.

В табл. 15.5 показан пошаговый процесс умножения двоичных чисел.

Таблица 15.5. Пошаговый процесс умножения двоичных чисел путем многократного сложения

Сначала множимое и множитель загружаются в регистр множимого и вычитающий счетчик множителя соответственно, а регистр произведения обнуляется. После первого шага в регистре произведения появляется число 00110, а множитель уменьшается на 1. После второго шага в регистре произведения оказывается сумма множимого (110) и числа 00110, множитель уменьшается на 1. Таким образом процесс завершается после четырех шагов, когда счетчик множителя содержит 000, а регистр произведения 11000 (десятичное число 24). Но этот способ не всегда удобен. Например, для нахождения произведения 56*12 нужно определить сумму 12 слагаемых, каждое из которых равно 56. Такой процесс вычисления занимает слишком много времени.

Вторым способом умножения двоичных чисел является способ сложения со сдвигами.

Вернемся к примеру, показанному на рис. 15.19. В этом примере двоичное число 111 умножается на двоичное число 101. При рассмотрении данного примера можно сделать следующие выводы:

1) Частичное произведение всегда равно 000, если множитель равен 0, и равно множимому, если множитель равен 1.

2) Число разделов в регистре произведения должно быть в два раза больше числа разделов в регистре множимого.

3) При сложении первое частичное произведение сдвигается на одну позицию (разряд) вправо (по отношению ко второму произведению).

На основе сделанных выводов можно построить схему для умножения двоичных чисел (рис. 15.22).

Рис. 15.22. Структурная схема умножителя с использованием операций сложения и сдвига

В исходном состоянии множимое (111) загружается в регистр, регистр-накопитель очищен (установлен в состояние 0000) и множитель (101) загружен в регистр. При этом регистр-накопитель и регистр-множителя составляют единый регистр (рис. 15.22.). Рассмотрим пошаговый процесс умножения двоичных чисел.

1) Загрузка исходных данных в регистры.

2) Сложение содержимого регистра-накопителя и регистра-множимого, инициируемое логической 1 младшего разряда на управляющую шину.

3) Сдвиг содержимого регистра-накопителя и регистра-множителя на одну позицию вправо. При этом младший разряд регистра-множителя теряется.

4) Регистр-множитель подает логический 0 на управляющую шину. Этот сигнал блокирует сумматор и сложение не производится.

5) Сдвиг содержимого регистра - накопителя и регистра - множителя на одну позицию вправо.

6) Сложение содержимого регистра - накопителя и регистра - множимого, инициируемое логической 1 младшего разряда регистра - множителя на управляемую шину.

7) Сдвиг содержимого регистра - накопителя и регистра - множителя на одну позицию вправо.

В результате этих шагов произведение (100011) находится сразу в двух регистрах (табл. 15.6).

Таблица 15.6. Пошаговый процесс умножения с использованием операций сложения и сдвига

В таблицах 15.5 - 15.6 показаны принципы умножения двумя способами: путем многократного сложения и путем сложений со сдвигами. При этом микропроцессоры могут и не содержать в своих АЛУ умножителей. Конкретный способ умножения можно запрограммировать. Таким образом задавая процессору программу, он выполнит последовательность операций, которая обеспечит умножение двоичных чисел. Благодаря этому существенно уменьшается число электронных схем в центральном процессоре.

15.10. Сложение и вычитание чисел, представленных в дополнительном коде15.10. Сложение и вычитание чисел, представленных в дополнительном коде

До сих пор сложение и вычитание производилось над положительными числами. Однако микропроцессоры должны обрабатывать не только положительные, но и отрицательные числа. Используя дополнительный код числа, можно задать как знак числа, так и его абсолютную величину.

Рассмотрим 4 - разрядный дополнительный код. Старший разряд отводится под знак числа: 0 - соответствует положительному числу, 1 - отрицательному. Три разряда отводятся абсолютной величине числа. В табл. 15.7 приведен 4 - разрядный дополнительный код чисел от +7 до -8.

Таблица 15.7. Представление двоичных чисел со знаком.

Из табл. 15.7 видно, что дополнительный код положительных чисел совпадает с обычным представлением двоичного числа. Для получения дополнительного кода отрицательного числа нужно сначала сформировать дополнение этого числа до 1, а затем прибавить 1. На рис. 15.23 показана процедура получения дополнительного кода отрицательного числа.

Рис. 15.23. Пример преобразования числа со знаком в дополнительный код

Эта процедура состоит из трех шагов:

1) десятичное число преобразуется к его двоичному эквиваленту соответствующего положительного числа;

2) находится дополнение полученного двоичного числа до 1, путем замены всех единиц на нули и всех нулей на единицы;

3) к полученному дополнению до 1 прибавляется 1. В результате сложения получаем дополнительный код числа.

Процедура перехода от дополнительного кода к двоичному числу, по которому затем определяется десятичное число, показано на рис. 15.24. Обратное преобразование выполняется следующим образом:

1) находим дополнение до 1 для исходного дополнительного кода, путем замены всех единиц на нули и всех нулей на единицы;

к полученному дополнению до 1 прибавляется 1 путем двоичного сложения. В результате получаем искомое двоичное число, но поскольку в старшем разряде дополнительного кода стоит 1, соответствующее десятичное число является отрицательным.

Рис. 15.24. Пример преобразования дополнительного кода в двоичное число

Рассмотрим примеры на сложение и вычитание чисел, представленных в дополнительном коде (рис. 15.25).

Рис. 15.25. Примеры сложения и вычитания чисел в дополнительном коде

Из рис. 15.25 можно сделать выводы, что сложение чисел, представленных в дополнительном коде, осуществляется обычным способом, за исключением случая, когда в результате получается 5 - разрядная комбинация. В этом случае самый старший разряд отбрасывается и остается дополнительный код суммы.

При вычитании, вычитаемое представляется в дополнительном коде. Далее образуется дополнение до 2 полученного дополнительного кода. При получении 5 - разрядной комбинации самый старший разряд отбрасывается.

Сложение и вычитание чисел, представленных в дополнительном коде, можно осуществить с использованием сумматоров.

Рассмотрим схему 3-разрядного сумматора - вычитателя, работающего с числами, представленными в дополнительном коде (рис. 15.26).

Рис. 15.26. Структурная схема 3-разрядного сумматора - вычитателя чисел в дополнительном коде

Для сложения и вычитания двух чисел, представленных в 3-разрядном дополнительном коде, используется три полных сумматора. Для задания режима работы устройства на входе В каждого сумматора введем элемент исключающее ИЛИ. При подаче логического 0 устройство складывает двоичные комбинации и . На выходе отображается дополнительный код сумы. При этом уровень логического 0 поступает на вход полного сумматора разряда единиц, т. е. этот сумматор работает как обычный двоичный сумматор.

Для выполнения операции вычитания чисел, представленных в дополнительном коде, на управляющем входе задания режима устанавливается уровень логической 1. В этом случае элементы исключающее ИЛИ инвертируют информационные сигналы, поступающие на входы В. На входе полного сумматора разряда единиц устанавливается высокий уровень сигнала. Инвертирование информационных сигналов элементами исключающее ИЛИ с прибавлением 1 на входе сумматора единиц соответствует дополнению до 1 дополнительного кода вычитаемого и последующему сложению с 1 младшего разряда. Это эквивалентно дополнению до 2 дополнительного кода вычитаемого . В результате этих действий на выходе отображается дополнительный код разности.

Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.