Выполнение арифметических операций в АЛУ для чисел с фиксированной запятой. Часть I. Базарова С. Б-М - 20 стр.

UptoLike

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