ВУЗ:
39
Рисунок 2.10 - Алгоритм умножения чисел
с фиксированной запятой
Вычисление сумм час-
тичных произведений
Коррекция результата в
формате двойной длины
Начало
Рг1:=ШИВх; РгВ:=0; CчЦ:=n-1
Рг2:=ШИВх
1
2
Рг2[n-1]=1
да нет
да
6
СчЦ=0
нет
Конец
ТгЗн1:=Рг1[0]; ТгЗн2:=Рг2[0];
Рг1[0]:=0; Рг2[0]:=0
РгА:=0
3
РгА:=Рг1
4
Cм:=РгА+РгВ
СчЦ:=СчЦ-1; РгВ:=РгСм; Рг2:=Рг2’
5
РгСм[0]:=0; РгСм:=П(1)См;
Рг2’[0]:=См[n-1]; Рг2’:=П(1)Рг2
РгА:=0
См:=РгА+РгВ
7
РгСм[0]:=0; РгСм:=П(1)См;
Рг2’[0]:=См[n-1]; Рг2’:=П(1)Рг2
См:=РгА+РгВ
РгВ:=Рг2
РгСм:=См
ШИВых:=РгСм
РгСм
[
0
]
:=ТгЗн1
⊕
ТгЗн2
Начальная установка
ШИВых:=РгСм; Рг2:=Рг2’
40
Начальная установка
выполняется в блоке 1. На
этом этапе происходит прием операндов с шины входа: в
первом такте на Рг1 поступает множимое, одновременно с
приемом множимого обнуляется РгB, хранящий сумму
частичных произведений, а в счетчик циклов заносится
число обрабатываемых цифровых разрядов множителя; во
втором такте на Рг2 поступает множитель. В третьем такте
производится фиксация знаков сомножителей: в триггере
ТгЗн1 – знак множимого, в триггере ТгЗн2 – знак
множителя. В знаковые разряды регистров множимого и
множителя заносится ноль.
Вычисление сумм частичных произведений
выполняется в блоках 2-6. Этот этап выполняется
циклически до тех пор, пока счетчик циклов не станет
равен нулю. В зависимости от значения младшего разряда
модуля множителя к частичному произведению
прибавляется либо 0, либо модуль множимого, для чего
соответствующее значение присваивается РгА. На
сумматоре См производится суммирование РгА и РгВ.
Полученная сумма передается в РгСм со сдвигом вправо на
один разряд, и затем передается в РгB. Модуль множителя,
хранящийся в Рг2, с помощью Рг2’ сдвигается вправо на
один разряд, при этом старший разряд Рг2 остается
Начало Начальная установка выполняется в блоке 1. На
Рг1:=ШИВх; РгВ:=0; CчЦ:=n-1
этом этапе происходит прием операндов с шины входа: в
Рг2:=ШИВх Начальная установка первом такте на Рг1 поступает множимое, одновременно с
1
ТгЗн1:=Рг1[0]; ТгЗн2:=Рг2[0];
Рг1[0]:=0; Рг2[0]:=0 приемом множимого обнуляется РгB, хранящий сумму
частичных произведений, а в счетчик циклов заносится
да нет
2 Рг2[n-1]=1 число обрабатываемых цифровых разрядов множителя; во
3 РгА:=0 4 РгА:=Рг1
втором такте на Рг2 поступает множитель. В третьем такте
Cм:=РгА+РгВ Вычисление сумм час- производится фиксация знаков сомножителей: в триггере
РгСм[0]:=0; РгСм:=П(1)См; тичных произведений
5 Рг2’[0]:=См[n-1]; Рг2’:=П(1)Рг2 ТгЗн1 – знак множимого, в триггере ТгЗн2 – знак
СчЦ:=СчЦ-1; РгВ:=РгСм; Рг2:=Рг2’ множителя. В знаковые разряды регистров множимого и
нет множителя заносится ноль.
6 СчЦ=0
Вычисление сумм частичных произведений
да
РгА:=0 выполняется в блоках 2-6. Этот этап выполняется
См:=РгА+РгВ
РгСм[0]:=0; РгСм:=П(1)См; циклически до тех пор, пока счетчик циклов не станет
Рг2’[0]:=См[n-1]; Рг2’:=П(1)Рг2
Коррекция результата в равен нулю. В зависимости от значения младшего разряда
7 РгСм[0]:=ТгЗн1 ⊕ ТгЗн2 формате двойной длины
ШИВых:=РгСм; Рг2:=Рг2’ модуля множителя к частичному произведению
РгВ:=Рг2
См:=РгА+РгВ прибавляется либо 0, либо модуль множимого, для чего
РгСм:=См соответствующее значение присваивается РгА. На
ШИВых:=РгСм
сумматоре См производится суммирование РгА и РгВ.
Конец
Полученная сумма передается в РгСм со сдвигом вправо на
Рисунок 2.10 - Алгоритм умножения чисел один разряд, и затем передается в РгB. Модуль множителя,
с фиксированной запятой
хранящийся в Рг2, с помощью Рг2’ сдвигается вправо на
один разряд, при этом старший разряд Рг2 остается
39 40
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »
