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

UptoLike

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

79
в программе необходимо организовать два циклических буфера один для дан-
ных Х, другой для коэффициентов k.
Одновременная выборка двух операндов k и Х в сигнальном процессоре
осуществляется по двум независимым шинам: шине данных памяти программ и
шине данных памяти данных. Кроме того, имеются отдельные шина адреса па-
мяти программ и шина адреса памяти данных. Таким образом, МАС может по-
лучать входные данные по каждой шине данных одновременно. Для задания
длины циклического буфера в программе можно использовать только регистры
L0 L7, указателя адреса регистры I0 I7, шага изменения адреса реги-
стры М0 М7.
В листинге 6 приведен фрагмент программы вычисления одного значе-
ния выходного сигнала КИХ-фильтра N-го порядка по следующему алгоритму:
- выборка коэффициента из циклического буфера коэффициентов;
- обновление указателя адреса буфера коэффициентов;
- выборка отсчета из циклического буфера входного сигнала;
- обновление указателя адреса буфера входного сигнала;
- умножение коэффициента на отсчет;
- добавление нового слагаемого к промежуточному результату;
- переход в начало цикла программы, если просуммированы не все произ-
ведения.
Листинг 6. Расчет фильтра с циклической буферизацией
ADSP – 21xx Пример ассемблерного кода:
М1, М5 = 1 ;
L0, L4 = N ;
MR = 0, MX0 = DM (I0, M1), MY0 = PM (I4, M5) ;
CNTR = N – 1 ;
DO convolution UNTIL CE ;
Convolution :
MR = MR + MX0 * MY0 (SS), MX0 = DM (I0, M1), MY0 = PM (I4, M5) ;
MR = MR + MX0 * MY0 (RND) ;
IF MV SAT MR ;
в программе необходимо организовать два циклических буфера – один для дан-
ных Х, другой – для коэффициентов k.
     Одновременная выборка двух операндов k и Х в сигнальном процессоре
осуществляется по двум независимым шинам: шине данных памяти программ и
шине данных памяти данных. Кроме того, имеются отдельные шина адреса па-
мяти программ и шина адреса памяти данных. Таким образом, МАС может по-
лучать входные данные по каждой шине данных одновременно. Для задания
длины циклического буфера в программе можно использовать только регистры
L0 – L7, указателя адреса – регистры I0 – I7, шага изменения адреса – реги-
стры М0 – М7.
     В листинге 6 приведен фрагмент программы вычисления одного значе-
ния выходного сигнала КИХ-фильтра N-го порядка по следующему алгоритму:
     - выборка коэффициента из циклического буфера коэффициентов;
     - обновление указателя адреса буфера коэффициентов;
     - выборка отсчета из циклического буфера входного сигнала;
     - обновление указателя адреса буфера входного сигнала;
     - умножение коэффициента на отсчет;
     - добавление нового слагаемого к промежуточному результату;
     - переход в начало цикла программы, если просуммированы не все произ-
ведения.


    Листинг 6.                         Расчет фильтра с циклической буферизацией

    ADSP – 21xx Пример ассемблерного кода:
    М1, М5 = 1 ;
    L0, L4 = N ;
    MR = 0, MX0 = DM (I0, M1), MY0 = PM (I4, M5) ;
    CNTR = N – 1 ;
    DO convolution UNTIL CE ;
    Convolution :
    MR = MR + MX0 * MY0 (SS), MX0 = DM (I0, M1), MY0 = PM (I4, M5) ;
    MR = MR + MX0 * MY0 (RND) ;
    IF MV SAT MR ;




                                         79