[an error occurred while processing this directive]
Вы произвольно переносите положение точки, так нельзя. Ваш пример хорош, но труден к восприятию. Вот более простой пример.
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено GM 03 октября 2006 г. 14:31
В ответ на: 32? Делаю умножение 7FFF_FFF на 7FFF_FFF (0.99...* 0.99...) и получаю 3FFF_FFFF (0.5) это QMPYUL делает 32*32, а QMPYL со знаком работает... В мотороле при умножении получается 7FFF_FFFF... отправлено <font color=gray>TiMatTU</font> 03 октября 2006 г. 06:52

Пусть у вас разрядная сетка имеет всего 4 разряда. Возьмём максимальное положительное число 0b0111 (0х7) и умножим на него же 0b0111 (0х7). В соответствии с теорией результат расширится до 8 разрядов: 0011'0001 (0х7 * 0х7 = 0х31).

Теперь увеличим разрядную сетку до 32 разрядов и проделаем то же самое. 0х7000'0000 * 0х7000'0000 = 0х3100'0000'0000'0000. Как видите, пока все честно и получен правильный результат с 64-мя разрядами.

До сих пор были просто целые числа со знаком. Теперь давайте поработаем с фиксированной точкой. Возьмем такое число 0.111, перемножим его на само себя 0.111 и получим результат 00.11'0001. Как видите, положение фиксточки сдвинулось! По существу, делается также, как мы привыкли делать в десятичном умножении: получаете целый результат и отсчитываете 6 разрядов справа налево, чтобы поставить фиксированную точку.

Теперь увеличьте разрядную сетку до 32 бит и проверьте результат. Вы увидите, что если фиксированная точка в сножителях стояла после 15 бита, то в произведении она будет стоять после 30-знака. А не после 31, как вам бы хотелось.

Во фракшионл моде произведение сдвигается влево на один бит автоматически. Возможно, в мотороле этот режим был включен, а в 28хх такого режима нет.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание