ВУЗ:
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
- …
- следующая ›
- последняя »