Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 5 - 6.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
21.24 Mб
Скачать

5.8.3 Операция умножения цифровых сигналов

Операцию умножения чисел можно заменить последовательным сложением множимого столько раз, чему равен множитель. Но такой алгоритм выполнения умножения довольно громоздкий и потребует значительных затрат времени. Наиболее удобен алгоритм выполнения умножения "в столбик". Причем при умножении двоичных чисел процесс значительно упрощается, так как умножение на "0" дает в результате "0", а умножение на "1" – множимое. Алгоритм выполнения умножения "в столбик" следующий. Множимое умножается на младший разряд множителя, в результате получается первое частичное произведение. Затем множимое умножается на второй разряд множителя, результат (второе частичное произведение) сдвигается на один разряд влево и суммируются с первым частичным произведением. Далее процесс выполняется аналогично. Функциональная схема умножителя, построенного по такому принципу, приведена на рисун- ке 5.47.

Умножитель состоит из регистра множимого (RG1), регистра множителя (RG2), регистра накопителя (RG3), сумматора SM и схемы управления. Регистры RG2 и RG3 выполнены как один регистр сдвига, причем RG3 занимает старшие разряды, а RG2 – младшие. Сдвиг осуществляется в сторону RG2.

Рассмотрим работу умножителя на конкретном примере.

Допустим, производится умножение чисел 7 и 5:

в десятичной системе: 7*5 = 35

в двоичной системе: 111

101

____

  111

000

111

______

1000111*25+0*24 + 0*23 + 0*22 + 1*21 + 1*20 = 35

Множимое (111) записывается в регистр RG1, множитель (101) – в регистр RG2. В регистре-накопителе RG3 в исходном состоянии записаны нули (рисунок 5.47а).

RG3

RG2

Исходное

состояние

0000

101

RG1+RG3

101

Сдвиг 

0011

110

Сдвиг 

0001

111

RG1+RG3

111

Сдвиг 

0100

011

Останов

0100

011

Результат

25+21+20=32+2+1=35

а б

а – таблица состояний RG2, RG3 в процессе умножения; б – схема.

Рисунок 5.47 – Функциональная схема умножения цифровых сигналов

Если в младшем разряде множителя "1", то схема управления выдает команду на сложение содержимого регистров RG1 и RG3 и результат операции из сумматора SM записывается в RG3. Далее в соответствии с алгоритмом необходимо произвести сдвиг содержимого регистра RG3 вправо на один разряд. Сдвиг вправо осуществляется потому, что в данный момент времени в RG3 находится первое частичное произведение. После сдвига информации в младшем разряде RG2 находится нуль. Производить умножение на "0" и складывать нет смысла, поэтому схема управления вырабатывает сигнал на выполнение сдвига еще на один разряд. В результате повторного сдвига в младшем разряде RG2 – "1" и схема управления вырабатывает сигналы на сложение RG1 и RG3 и затем сдвига содержимого RG2, RG3 на один разряд. В результате указанных действий множитель "вытолкнут" из RG2, а в RG3 и RG2 записано число (0100011)2 = (35)10, равное произведению.

Схема управления кроме подачи сигналов на сложение и сдвиг и только сигнала сдвиг при "0" в младшем разряде RG2 вырабатывает сигналы начального пуска, очистки, записи, считывания и останова работы умножителя.

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

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