ident 1,3 page 132,60
opt nomd,nomex,loc,nocex,mu include ‘bergsincos’
include ‘bergorder’ include ‘norm2berg’ include ‘rfft-56b’
Real Input FFT Based on Glenn Bergland Algorithm (Sheet 8 of 8)

BENCHMARK PROGRAMS

Real input FFT based on Glenn Bergland algorithm

;

;Normal order input and normal order output.

;Since 56001 does not support bergland addressing, extra instruction cycles are needed

;for converting bergland order to normal order. It has been done in the last pass by

;looking at the bergtable.

;The micro ‘bergsincos’ generates SIN and COS table with size of points/4, COS in Y, SIN in X

;The micro ‘bergorder’ generates table for address conversion, the size of twiddle factors is half

;of FFT output’s.

;The micro ‘norm2berg’ converts normal order data to bergland order.

;The micro ‘rfft-56b’ does FFT.

;

;Real input data are split into two parts, the first part is put in X, the second in Y.

;Real output data are in X, imaginary output data are in Y.

;The bergland table for converting berglang order to normal order is stored in output buffer.

;In the last pass the FFT output overwrites this table.

;The first real output plus the first imaginary output is DC value of the spectrum.

;Note that only DC to Nyquist frequency range is calculated by this algorithm.

;After twiddle factors and bergtable are generated, you may overwrite ‘bergorder’,

;‘norm2berg’ by ‘rfft-56b’ for saving P memory.

;

 

 

 

 

;

 

Performance

 

 

;

-----------------------------------------------------------------

 

 

;

Real input data points

 

Clock cycle

;

64

 

 

1686

;

128

 

 

3846

;

256

 

 

8656

;

512

 

 

19296

;

1024

 

 

49776

;

------------------------------------------------------------------

 

 

;

 

 

 

 

;

 

Memory (word)

 

 

;

------------------------------------------------------------------

 

 

;

P memory

X memory

 

Y memory

;

87

points/2 (real input)

+

points/2 (imaginary input)

;

 

points/4 (SIN table)

+

points/4 (COS table)

;

 

points/2 (real output) + points/2 (imaginary output)

;

 

points/2 (bergtable)

 

 

;

-------------------------------------------------------------------

 

 

;

 

 

 

 

;

 

 

 

 

rfft56bt

;

Figure B-5

MOTOROLA

BENCHMARK PROGRAMS

B - 19

Page 581
Image 581
Motorola 24-Bit Digital Signal Processor, DSP56000 manual Figure B-5