Процесс суммирования

Сложение является наиболее распространенной арифметической операцией, которую выполняет процессор. Когда два n-битовых числа складываются вместе, всегда можно получить результат с n + 1 ненулевыми цифрами из-за переноса из самой левой цифры.

Предположим, вы хотите суммировать три числа. Каждое из этих чисел представлено 8-битным словом, и каждое имеет разное масштабирование только для двоичных точек. Кроме того, выход ограничен 8-битным словом с двоичным масштабированием только для точек 2-3.

Суммирование показано в следующей модели для входных значений 19.875, 5.4375 и 4.84375.

Сумма следует этим шагам:

  1. Поскольку смещения совпадают, начальное значение Qa тривиально:

    Qa=00000.000.

  2. Первое число, которое будет суммировано (19.875), имеет дробный наклон, который соответствует выходу дробному наклону. Кроме того, двоичные точки и типы памяти идентичны, поэтому преобразование тривиально:

    Qb=10011.111,QTemp=Qb.

  3. Операция суммирования выполняется:

    Qa=Qa+QTemp=10011.111.

  4. Второе число, которое будет суммировано (5.4375), имеет дробный наклон, который соответствует выходному дробному наклону, поэтому регулировка наклона не требуется. Типы данных хранилища также совпадают, но различие в двоичных точках требует, чтобы и биты, и двоичная точка были смещены на одно место вправо:

    Qc=0101.0111,QTemp=convert(Qc)QTemp=00101.011.

    Обратите внимание, что происходит потеря точности одного бита с полученным значением QTemp, определяемым режимом округления. В данном примере используется метод «скругление на пол». Переполнение не может произойти в этом случае, потому что биты и двоичная точка сдвинуты вправо.

  5. Операция суммирования выполняется:

    Qa=Qa+QTemp     10011.111=+00101.01111001.010=25.250.

    Обратите внимание, что переполнение не произошло, но это возможно для этой операции.

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

    Qd=100.11011,QTemp=convert(Qd)QTemp=00100.110.

    Обратите внимание, что происходит потеря точности двух бит с полученным значением QTemp, определяемым режимом округления. В данном примере используется метод «скругление на пол». Переполнение не может произойти в этом случае, потому что биты и двоичная точка сдвинуты вправо.

  7. Операция суммирования выполняется:

    Qa=Qa+QTemp     11001.010=+00100.11011110.000=30.000.

    Обратите внимание, что переполнение не произошло, но это возможно для этой операции.

Как показано здесь, результат шага 7 отличается от идеальной суммы:

 10011.111   0101.0111=+100.1101111110.001=30.125.

Блоки, которые выполняют сложение и вычитание, включают блоки Add, Gain и Discrete FIR Filter.