Сигнальные процессоры. Аксенов В.П. - 80 стр.

UptoLike

Составители: 

80
Буфер коэффициентов использует память программ (РМ), буфер входного
сигнала память данных (DM). Перед выполнением программы коэффициенты
и отсчеты входного сигнала должны находиться в ячейках РМ и DM соответст-
венно. Указателем адреса памяти циклического буфера коэффициентов являет-
ся регистр I4, циклического буфера входного сигнала I0. Область адресов па-
мяти для организации буферов в программе определять не нужно, так как эту
задачу решает операционная система пакета проектирования Visual DSP++ на
этапе компоновки (Linker).
Первые команды во второй и третьей строках листинга задают параметры
буферов. Модификаторы адреса М1 и М5 равны единице (шаг изменения адре-
са). В регистрах L0, L4 задается длина буфера, равная порядку фильтра (L0 =
N, L4 = N). Команды четвертой строки очищают регистр MR и заполняют пер-
вым значением Х из памяти данных и первым значением k из памяти программ.
Затем в программе реализуется свертка данных Х и коэффициентов k.
Для этого в следующей строке листинга переменная CNTR определяет количе-
ство циклов: CNTR=N–1. Регистр CNTR используется в качестве счетчика
циклов умножения со сложением в устройстве МАС. Для выполнения цикла не
требуется дополнительных команд по проверке условия его завершения. Выход
из цикла выполнятся процессором автоматически при выполнении условия
CNTR = 0 после N–1 проходов. Начало цикла определено меткой Convolution
после оператора DO UNTIL, окончание первой точкой с запятой.
Результат вычислений заносится в регистр MR. Многофункциональная
команда MR=MR+MX0*MY0 (SS), MX0=DM(I0, M1), MY0=PM (I4, M5) вы-
полняется за один машинный цикл (13,3 нС). Последние две строки программы
умножают, суммируют N-ый раз и проверяют окончательный результат в реги-
стре MR на переполнение с помощью бита MV. Заключительная команда ум-
ножения с накоплением выполняется с включенным режимом округления RND
до старших 24 разрядов регистра MR. В случае переполнения (MV=1) процес-
     Буфер коэффициентов использует память программ (РМ), буфер входного
сигнала – память данных (DM). Перед выполнением программы коэффициенты
и отсчеты входного сигнала должны находиться в ячейках РМ и DM соответст-
венно. Указателем адреса памяти циклического буфера коэффициентов являет-
ся регистр I4, циклического буфера входного сигнала – I0. Область адресов па-
мяти для организации буферов в программе определять не нужно, так как эту
задачу решает операционная система пакета проектирования Visual DSP++ на
этапе компоновки (Linker).
     Первые команды во второй и третьей строках листинга задают параметры
буферов. Модификаторы адреса М1 и М5 равны единице (шаг изменения адре-
са). В регистрах L0, L4 задается длина буфера, равная порядку фильтра (L0 =
N, L4 = N). Команды четвертой строки очищают регистр MR и заполняют пер-
вым значением Х из памяти данных и первым значением k из памяти программ.
     Затем в программе реализуется свертка данных Х и коэффициентов k.
Для этого в следующей строке листинга переменная CNTR определяет количе-
ство циклов: CNTR=N–1. Регистр CNTR используется в качестве счетчика
циклов умножения со сложением в устройстве МАС. Для выполнения цикла не
требуется дополнительных команд по проверке условия его завершения. Выход
из цикла выполнятся процессором автоматически при выполнении условия
CNTR = 0 после N–1 проходов. Начало цикла определено меткой Convolution
после оператора DO UNTIL, окончание – первой точкой с запятой.
     Результат вычислений заносится в регистр MR. Многофункциональная
команда MR=MR+MX0*MY0 (SS), MX0=DM(I0, M1), MY0=PM (I4, M5) вы-
полняется за один машинный цикл (13,3 нС). Последние две строки программы
умножают, суммируют N-ый раз и проверяют окончательный результат в реги-
стре MR на переполнение с помощью бита MV. Заключительная команда ум-
ножения с накоплением выполняется с включенным режимом округления RND
до старших 24 разрядов регистра MR. В случае переполнения (MV=1) процес-




                                     80