
Программирование цифровых сигнальных процессоров семейства SHARC с использованием среды разработки «Analog Devices Visual DSP 3.5»
.pdf
151
насыщения (бит режима насыщения ALU установлен в MODE1) при положительном переполнении возвращается максимальное положительное число (0х7FFF FFFF), при отрицательном переполнении возвращается максимальное отрицательное число (0х8000 0000).
С плавающей точкой
Синтаксис:
Fa = Fx + Fy, Fs = Fx – Fy
Функция:
Выполнение двойного сложения/вычитания операндов с плавающей точкой в регистрах Fx и Fy. Нормализованные результаты помещаются в регистры Fa и Fs (сумма в Fa, разность в Fs). Округление к ближайшему или усечение до 32 бит или до 40 бит (в зависимости от установки битов режима округления и границы округления в MODE1). При переполнении после округления возвращается ±∞ гление к ближайшему) или
±NORM.MAX (округление к нулю). После округления ненормализованного операнда возвращается ±0. Ненормализованные входные операнды обнуляются. При вводе NAN возвращается NAN (1 во всех разрядах).
Параллельная операция умножителя и ALU
В параллельной операции умножителя и ALU выполняется умножение или умножение/накопление и одна из следующих операций ALU: сложение,
вычитание, усреднение, преобразование из формата с фиксированной точкой к формату с плавающей точкой и наоборот, операции с плавающей точкой
ABS, MIN или MAX.
Операции умножителя и ALU определяются OPCODE. X-операнд и
Y-операнд умножителя берутся из регистров данных RXM (FXM) и RYM (FYM). Операнд результата умножителя возвращается в регистр данных RM
(FM). X-операнд и Y-операнд ALU берутся из регистров данных RXA (FXA)
и RYA (FYA). Операнд результата ALU возвращается в регистр данных RA
152
(FA). Операнды результатов могут возвращаться в любой регистр регистрового файла. Каждый из четырех входных операндов ограничен определенным набором из четырех регистров данных.
Разрешенные источники
Х умножителя: R3_R0 (F3_F0)
Y умножителя: R7_R4 (F7_F4)
XALU: R11_R8 (F11_F8)
YALU: R15_R12 (F15_F12)
Синтаксис
Rm=R3_0 * R7_4 (SSFR), Ra=R11_8 + R15_12
Rm=R3_0 * R7_4 (SSFR), Ra=R11_8 _ R15_12
Rm=R3_0 * R7_4 (SSFR), Ra=(R11_8 + R15_12)/2
MRF=MRF + R3_0 * R7_4 (SSF), Ra=R11_8 + R15_12
MRF=MRF + R3_0 * R7_4 (SSF), Ra=R11_8 _ R15_12
MRF=MRF + R3_0 * R7_4 (SSF), Ra=(R11_8 + R15_12)/2
Rm=MRF + R3_0 * R7_4 (SSFR), Ra=R11_8 + R15_12
Rm=MRF + R3_0 * R7_4 (SSFR), Ra=R11_8 _ R15_12
Rm=MRF + R3_0 * R7_4 (SSFR), Ra=(R11_8 + R15_12)/2
MRF=MRF _ R3_0 * R7_4 (SSF), Ra=R11_8 + R15_12
MRF=MRF _ R3_0 * R7_4 (SSF), Ra=R11_8 _ R15_12
MRF=MRF _ R3_0 * R7_4 (SSF), Ra=(R11_8 + R15_12)/2
Rm=MRF _ R3_0 * R7_4 (SSFR), Ra=R11_8 + R15_12
Rm=MRF _ R3_0 * R7_4 (SSFR), Ra=R11_8 _ R15_12
Rm=MRF _ R3_0 * R7_4 (SSFR), Ra=(R11_8 + R15_12)/2
Fm=F3_0 * F7_4, Fa=F11_8 + F15_12
Fm=F3_0 * F7_4, Fa=F11_8 _ F15_12
Fm=F3_0 * F7_4, Fa=FLOAT R11_8 by R15_12
Fm=F3_0 * F7_4, Fa=FIX F11_8 by R15_12
Fm=F3_0 * F7_4, Fa=(F11_8 + F15_12)/2
153
Fm=F3_0 * F7_4, Fa=ABS F11_8
Fm=F3_0 * F7_4, Fa=MAX (F11_8, F15_12)
Fm=F3_0 * F7_4, Fa=MIN (F11_8, F15_12)
Параллельные операции умножения и двойного сложения/
вычитания
При параллельных операциях умножения и двойного сложения/вычитания выполняется умножение или умножение/накопление и вычисляется сумма и разность входных операндов ALU. Более подробно об операциях умножителя – в описании однофункциональных операций. Об операции двойного сложения/вычитания в разделе – двойное сложение/
вычитание.
С фиксированной точкой:
Синтаксис:
Rm=R3_0 * R7_4 (SSFR), Ra=R11_8 + R15_12, Rs=R11_8 – R15_12
С плавающей точкой:
Синтаксис:
Fm=F3_0 * F7_4, Fa=F11_8 + F15_12, Fs=F11_8 – F15_12
X-операнд и Y-операнд умножителя берутся из регистров данных RXM (FXM) и RYM (FYM). Операнд результата умножителя возвращается в регистр данных RM (FM). X-операнд и Y-операнд ALU берутся из регистров данных RXA (FXA) и RYA (FYA). Операнд результата ALU возвращается в регистр данных RA (FA). Операнды результатов могут возвращаться в любой регистр регистрового файла. Каждый из четырех входных операндов ограничен определенным набором из четырех регистров данных.
Разрешенные источники
Х умножителя: R3_R0 (F3_F0)
Y умножителя: R7_R4 (F7_F4)
XALU: R11_R8 (F11_F8)
YALU: R15_R12 (F15_F12)
154
ЛИТЕРАТУРА
1.Ю.С.Юрченко. Программирование алгоритмов цифровой обработки сигналов на базе процессоров ADSP-21x6x SHARC. Учеб.Пособие.
Спб.: Изд-во СПбГЭУ «ЛЭТИ», 2004. 80с.
2.Руководство пользователя по сигнальным процессорам семейства
SHARC ADSP-2106x. Пер.с англ. А.В. Бархатов, А.А. Коновалов, М.Н.
Петров. Санкт-Петербург. 2002. 684с.