[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено ВН 22 августа 2001 г. 16:47
В ответ на: А можно поподробнее о механизме конвертации форматов отправлено Евгений 22 августа 2001 г. 14:44

Правила простые. Есть 2 числа в форматах, допустим, A.B и C.D (A,C -число разрядов на целые части, B,D - на дробные части).
Суммарная разрядность результата умножения=A+C+B+D (режим умножителя -целочисленный, ena m_mode). Из них A+C разрядов - целая часть, B+D - дробная. Т.е. формат результата будет (A+C).(B+D). По другому - младшие B+D разрядов - дробная часть, остальные - целая.
Ужатие до требуемого формата делается отбросом (либо простым, либо с округлением) нескольких младших разрядов дробной части. Отброс же, в свою очередь, делается сдвигом, причем без разницы в какую сторону (число сдвигов разное, конечно). Но, если в требуемом выходном формате число разрядов на целую часть меньше A+C, возможно переполнение, это надо отслеживать.
Конкретно Ваш случай:
3.13*8.8=11.21 (с ena m_mode). Но с dis m_mode результат автоматически сдвигается влево на 1 разряд и, если брать только mr1,mr0 регистры, будет иметь формат 10.22. Отбросив 16 разрядов mr0, т.е. сохранив только MR1, автоматом получите 10.6. Но это пройдет только если Ваш результат по модулю меньше 512. В противном случае - переполнение. Т.е. -4*-128=512, но 512, при 10 разрядном представлении целой части, есть минус 512. Однако в Вашем случае переполнение легко обнаруживается и, следовательно, рез-т м.б. скорректирован:
dis m_mode;
mr=mx0*my0(ss) или mr=mx0*my0(rnd);
if mv sat mr; {контроль переполнения}
dm(result)=mr1;
Собственно все, что я написал, имеется в UM ADSP21XX.


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

Ответы


Отправка ответа

Имя (обязательно): 
E-mail: 

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

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru