Пр о ц е с с о р TMS 3 2 0C4 x
162
Приложение Д
.
Примеры программ
Пример Д.1. Программа БПФ
(Кули-Тьюки, основание 2, прореживание по частоте)
; В скобках дано время выполнения в циклах и временная группа в
; соответствии с алгоритмом, в которую входит данная команда
; Память: код
39 слов
;
константы
84 слова
;
входной массив 128 слов
; Время выполнения 64-точечного БПФ
3048 циклов ( 121.92 мкс )
.version
40
.ref
_SINE, _INPUT
.global
START
.data
Const
.word
_SINE
; адрес таблицы констант W
.word
_INPUT
; адрес входного массива данных x[k]
.word
64
; размерность БПФ N
.word
6
; log
2
(N)
.text
START
LDPK
Const
;
инициализация начальных параметров
(1:T
0
)
LDI
@Const, AR3
; адрес коэффициентов
W
(1:T
0
)
LDI
@Const+1, AR5
; адрес массива вх. отсчетов
(1:T
0
)
LDI
@Const+2, R9
; R9 = N
(1:T
0
)
LDI
@Const+3, AR7
; AR7 = log
2
N
(1:T
0
)
SUBI
1, AR7
;
(1:T
0
)
LDI
1, R8
; R8 = 1
(1:T
0
)
ASH3-2, R9, IR1
; IR1 = N/4
(1:T
0
)
LDI
R9, IR0
; IR0 = N (2R9)
(1:T
0
)
ASH
-1, R9
; R9 = N/2
(1:T
0
)
LDI
AR5, AR4
;
T
0
= 11
(1:T
0
)
S_LOOP
;
инициализация параметров ступени
SUBI3
1, R8, AR2
;
T
1
= 1
(1:T
1
)
G_LOOP
;
инициализация параметров группы
SUBI
1, R9, RC
;
(1:T
2
)
butterfly loop
;
цикл по “бабочкам”
RPTBD
B_LOOP
;
(1:T
2
)
LDI
AR3, AR1
;
(1:T
2
)
LDI
AR4, AR0
;
(1:T
2
)
ADDI
AR0, IR0, AR6
;
T
2
= 7
(4:T
2
)
SUBF3
AR6,
AR0, R2
; a - p
(1:T
3
)
I...,152,153,154,155,156,157,158,159,160,161 163,164,165,166,167,168,169,170,171,172,...186