Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рыбаков.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
758 Кб
Скачать
☆
  1. Анализ исходных данных

Целью данного курсового проекта является разработка арифметического устройства для реализации вычисления функции F=(А*В)-С.

Умножение будет реализовано по алгоритму Бута (умножение на два разряда множителя одновременно ). Операция вычитания будет представлена в виде сложения в дополнительных кодах чисел.

Формат чисел, в котором они будут передаваться устройству:

5 0

S0

А4

А3

А2

А1

А0

Где:

А0 – А4 – пять числовых разрядов передаваемых чисел.

S0 – знаковый разряд.

Комбинационная схема арифметического устройства будет реализована в алгебре Жигалкина.

Последние 4 бита результата будут представлены в кодес избытком 3.

  1. Описание алгоритма реализации заданной операции.

В данной курсовой работе необходимо разработать арифметическое устройство, отвечающее определённым требованиям.

Вышеупомянутое устройство должно выполнять послебовательно действия, представленные на схеме:

р

Умножение чисел А и В по алгоритму Бута.

Схема представления результата в коде с избытком 3

B

нр

Вычитание из результата умножения числа С

С

2.1 Операция умножения двух чисел используя алгоритм Бута

Суть алгоритма Бута - уменьшение количества слагаемых при умножении. Такой метод позволяет сократить время суммирования. Алгоритм Бута позволяет умножать сразу два разряда числа.

Э то соотношение позволяет разреживать последовательность степеней суммы частичных произведений.

Рис 2.1–Схема разбиения по тройкам.

Исключение чётных и нечётных степеней позволяет сократить количество произведений вдвое, что увеличивает скорость операций.

Остальные частичные произведения имеют :

где i-порядковый номер группы.

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

Знак произведения определяется как сумма знаков обоих сомножителей по модулю 2. Если оба сомножителя имеют одинаковые знаки, то сумма знаков по модулю 2 будет равна 0 (0=0+0 (mod 2), 0=1+1 (mod 2)), что означает, что произведение положительно. Если оба сомножителя имеют разные знаки, то сумма знаков равна 1 (0+1=1+0=1), что означает, что произведение отрицательно.

    1. Блок вычитания двух чисел

Операцию вычитания будем реализовывать как сложение 2 чисел в дополнительных кодах. F=(A*B)-C=-C+(A*B).

Значение С анализируется по его знаковому биту. Если число положительное, то его представляют в виде –С и переводят в дополнительный код, после чего подают на сумматор, а если число С отрицательно, то число С подаётся на сумматор со знаковым битом 1 без каких либо преобразований .

Если число положительное (знаковый бит равен 0), то его форма в дополнительном коде будет тоже самое число , что и в прямом коде. Если же число отрицательное (знаковый бит равен 1), то для перевода числа в дополнительный код сначала нужно проинвертировать каждый бит числа и добавить к младшему биту 1. После суммирования результат нужно перевести обратно в прямой код.