Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
409
Добавлен:
06.01.2022
Размер:
33.47 Mб
Скачать

Определение переполнения

Как уже упоминалось, при суммировании двух чисел с одинаковыми знаками можно получить неверный результат из-за выхода числа из допустимой области (переполнения разрядной сетки). Однако такая ошибка обнаруживается весьма просто. Если А и В положительны, то их сумма также положительна. Появление отри-

Рис. 19.36. Суммирование двух двоичных чисел с любыми знаками при представлении отрицательных чисел в форме двоичного дополнения.

Рис. 19.37. Включение логики определения знака суммы в арифметический блок.

дательного знака s означает положительное переполнение. Отсюда следует

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

Для любого переполнения на основании полученных выражений можно записать

Чтобы обнаружить возникновение неверного результата из-за переполнения сумматора, можно дополнить его схему специальными цепями для вычисления функции (19.11). Например, это предусмотрено в четырехразрядном арифметическом устройстве Am 25LS2517 фирмы Advanced Micro Devices".

19.6. Умножители

Рассмотрим умножение двоичных чисел сначала на численном примере. Вычисляя произведение 13*11 = 143, получим

Отметим, что в случае представления чисел в двоичном коде все вычисления выполняются достаточно просто, поскольку умножение производится только на единицу и нуль. Поэтому для вычисления произведения необходимо каждый раз сдвигать множимое на один разряд влево. Полученное в результате сдвига частное произведение прибавляется к результату, если соответствующий данному шагу сдвига разряд множителя равен единице. Если он равен нулю, то сложение не происходит. Таким образом, в процессе умножения отдельные разряды множителя анализируются последовательно друг за другом, поэтому этот метод умножения называется последовательным.

Такую процедуру можно реализовать с помощью регистра сдвига и одного сумматора. Однако в случае подобной схемы с памятью необходимо использовать программное управление. Как мы уже видели при рассмотрении преобразования двоичного кода в двоично-десятичный, процесс сдвига можно также реализовать с помощью комбинационной схемы, соединяя соответствующим образом N сумматоров. Хотя при этом требуется много сумматоров, нет необходимости в регистре сдвига и устройстве управления. Но основным преимуществом является сокращение времени операции, поскольку оно определяется уже не тактами управления, а лишь временем задержки логических элементов.

На рис. 19.38 показана возможная структура комбинационной схемы для умножения 4х4 разрядов. Для суммирования можно использовать неоднократно упоминавшиеся ранее арифметические блоки SN 74181, поскольку выполняемая ими функция может изменяться с помощью нескольких управляющих сигналов. Множимое Х подключается параллельно к четырем суммирующим входам всех арифметических блоков. Множитель поразрядно подается на их управляющие входы т. При этом сигнал т действует следующим образом:

Предположим сначала, что дополнительное число К == 0. Тогда на выходе первого арифметического блока появится результат

Это произведение соответствует первому слагаемому в приведенной ранее схеме умножения. Младший разряд So является младшим разрядом общего произведения Р; он передается непосредственно на выход схемы. Более старшие разряды So складываются во втором сумматоре с выражением Х•у1. Возникающее при этом число представляет собой промежуточную сумму первой и второй строк в схеме умножения. Ее младший разряд является вторым по старшинству младшим разрядом Р; следовательно, он поступает в разряд p1 результата. Аналогичным образом формируются и следующие, более старшие промежуточные суммы. С целью пояснения вышеизложенного на рис. 19.38 приведены числовые значения всех величин для ранее рассмотренного примера.

С помощью дополнительных входов можно прибавить к произведению еще одно 4-разрядное число К. При этом в умножителе выполняется следующая операция:

Расширение этой схемы для чисел большой разрядности производится непосредственно путем увеличения разрядности и числа сумматоров. Для каждого следующего разряда множителя У в нижний угол схемы добавляется еще один арифметический блок. Для увеличения разрядности множимого Х следует наращивать длину слова, увеличивая количество арифметических блоков в каждой ступени.

Блоки, состоящие из двух управляемых суммирующих схем, очерченных на рис. 19.38 штрих пунктирной линией, выпускаются в виде интегральных микросхем 4х2 разрядных умножителей:

Am 25S05 (ТТЛ) фирмы Advanced Micro Devices, 93S43 (ТТЛ) фирмы Fairchild.

Рис. 19.38. Схема умножения двух четырехразрядных чисел. Показан пример 13-11 = 143. Результат: P=X*Y+К.

При использовании этих микросхем время умножения достигает следующих значений:

Умножители, выпускаемые в виде интегральных микросхем с высокой степенью интеграции:

Все эти микросхемы выполняют также умножение отрицательных чисел в форме двоичного дополнения.

При использовании описанного способа умножения каждый раз производится прибавление новой части произведения к ранее полученной промежуточной сумме. Этот способ требует незначительного количества логических элементов, а реализующие его схемы имеют понятную и легко расширяемую структуру. Однако время вычисления можно сократить, если по возможности большее число сложений выполнять одновременно, а полученные при этом промежуточные суммы складывать в быстродействующем сумматоре. Для этого разработаны различные способы, которые отличаются только последовательностью сложения [19.1].