Пр о ц е с с о р TMS 3 2 0C4 x
163
SUBF3
+AR6,
+AR0, R1
; b - q
(1:T
3
)
ADDF3
AR0,
AR6, R0
; a + p
(1:T
3
)
ADDF3
+AR0,
+AR6, R3
; b + q
(1:T
3
)
MPYF3
R2,
+AR1(IR1), R0
; (a-p)cos
(1:T
3
)
||
STF
R0,
AR0++
; a+p
Re(x[k])
MPYF3
R1,
AR1, R3
; (b-q)sin
(1:T
3
)
||
STF
R3,
AR0++
; b+q
Im(x[k])
ADDF
R3, R0
; (b-q)sin + (a-p)cos
(1:T
3
)
MPYF3
R2,
AR1, R0
; (a-p)sin
(1:T
3
)
||
STF
R0,
AR6++
; (b-q)sin + (a-p)cos
Re(x[k+R])
MPYF3
R1,
+AR1(IR1),R3
; (b-q)cos
(1:T
3
)
SUBF
R0, R3
; (b-q)cos - (a-p)sin
(1:T
3
)
STF
R3,
AR6++
; (b-q)cos - (a-p)sin
Im(x[k+R])
(1:T
3
)
;
T
3
= 11
B_LOOP ADDIR8, AR1
;
T
3
= 1
(1:T
3
)
end of butterfly loop
;
конец цикла по “бабочкам”
DBD
AR2, G_LOOP
;
(1:T
2
)
ADDIIR0, AR4
;
(1:T
2
)
ADDIIR0, AR4
;
(1:T
2
)
NOP
;
конец цикла по группам
T
2
= 4
(1:T
2
)
ASH
1, R8
;
(1:T
1
)
DBD
AR7, S_LOOP
;
(1:T
1
)
LDI
R9, IR0
; IR0 = R9
(1:T
1
)
ASH
-1, R9
; R9 = R9/2
(1:T
1
)
LDI
AR5, AR4
;
конец цикла по ступеням
T
1
= 5
(1:T
1
)
NOP
.end
;
теоретический расчет времени выполнения БПФ
; Грубый расчет:
;
T
БПФ
= 1.3
(T
3
+ T
3
)(log
2
N)N/2 = 1.3
12
6
32 = 2995
; Точный расчет:
;
T
БПФ
= T
0
+ log
2
N (T
1
+T
1
) + (N-1)(T
2
+T
2
) + (log
2
N)(N/2)(T
3
+T
3
) =
; = 11 + 6
6 + 63
11 + 6
32
12 = 11 + 36 + 693 +2304 = 3044
; (время, измеренное в симуляторе, составляет 3048 циклов)
I...,153,154,155,156,157,158,159,160,161,162 164,165,166,167,168,169,170,171,172,173,...186