ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 78
- 79
- 80
- 81
- 82
- …
- следующая ›
- последняя »
