AN2768 Freescale Semiconductor / Motorola, AN2768 Datasheet - Page 25

no-image

AN2768

Manufacturer Part Number
AN2768
Description
Implementation of a 128-Point FFT on the MRC6011 Device
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
The scaling step incurs three more cycles at each stage than are shown in Example 3. To implement scale down,
the code in Example 3 is changed as follows:
Freescale Semiconductor
W
W
W
W
W
W
W
W
N
Example 5. Scale Down Approach Applied to Stage 1 Butterfly for Group 1 and 2 Data
N
4
0
N
N
0
4
N
N
0
4
N
N
0
4
/* Result of G1,G2[Re,Im] = k1[R8,R9], k2[R4,R0] */
/* Stage1 */
/* G1,G2[Re,Im] = k1[R4,R0], k2[R5,R1], tmp = R8,R9 */
CELL{*,*} R13 = MULSIH{FB{psiFBInputTwiddleCos, 0, OMEGA_BR2, COL_BUS, WORD},
CELL{*,*} R12 = MULSIH{FB{psiFBInputTwiddleCos, 0, OMEGA_BR2, COL_BUS, WORD},
CELL{*,*} R11 = MULSIH{FB{psiFBInputTwiddleSin, 0, OMEGA_BR2, COL_BUS, WORD},
CELL{*,*} R10 = MULSIH{FB{psiFBInputTwiddleSin, 0, OMEGA_BR2, COL_BUS, WORD},
CELL{*,*} NOP{};
CELL{*,*} R13 = ADD{R13, R11} >> 1; // scale down;
CELL{*,*} R12 = SUB{R12, R10} >> 1; // scale down;
CELL{*,*} R11 = MULL{R15,R4} >> 1;// scale down for adjustment;
CELL{*,*} R10 = MULL{R15,R0} >> 1;// scale down for adjustment;
CELL{*,*} NOP{};
CELL{*,*} R8 = ADD{R11, R13};
CELL{*,*} R9 = ADD{R10, R12};
CELL{*,*} R4 = MULSIL{R15,R4,R8}; // scale down
CELL{*,*} R0 = MULSIL{R15,R0,R9}; // scale down
Implementation of a 128-Point FFT on the MRC6011 Device, Rev. 0
Figure 22. Scale Down By Two Applied to an 8-Point FFT
1/2
W
W
W
W
W
W
W
W
N
N
N
N
N
N
N
0
2
4
6
0
2
4
N
6
1/2
R5, R14} << 1;
R5, R14} << 1;
R1, R14} << 1;
R1, R14} << 1;
Fixed-Point and Precision Issues
W
W
W
W
W
W
W
W
N
N
N
N
N
N
N
0
1
2
3
4
5
6
N
7
1/2
25

Related parts for AN2768