[IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA...

6
IEEE EIT 2007 Proceedings 390 . 1-4244-0941-1/07/$25.00 c 2007 IEEE Efficient FFT Engine with Reduced Addressing Logic Xin Xiao, Erdal Oruklu, and Jafar Saniie Electrical and Computer Engineering Department Illinois Institute of Technology Chicago, Illinois 60616 Abstract- In this study, an efficient address generation method for pipelined Radix-2 fast Fourier transform (FFT) is presented. Conventional pipelined FFT addressing schemes utilize dedicated address generators in order to enable parallel access to the memory units and in-place calculation. These address generator units require substantial hardware logic including counters and rotational shifters to generate the addresses and registers to buffer the outputs of each butterfly operation. In the proposed method, the new parallel addressing scheme utilizes only counters and inverters to generate the addresses; replacing the barrel shifter units and reducing the hardware requirements. In order to replace the barrel shifters, two outputs of the butterfly unit switch places depending on the status of the butterfly pass operation. The only additional hardware unit is extra multiplexers for switching the butterfly outputs. We present the signal flow graph for 8, 16, and 32-point FFT and derive the methodology for r 2 = N-point transforms. Furthermore, as a case study, 16-point FFT with 64-bit complex numbers is synthesized using an FPGA device. The results indicate that approximately 20% logic reduction can be achieved with exactly same throughput. I. INTRODUCTION Many high-performance FFT processors use a butterfly calculation unit to realize Radix-2 FFT, and the in-place strategy is a practical choice to minimize the amount of memory. With in-place method, the outputs of a butterfly are stored within the same memory location used by the inputs. If this strategy is not possible due to inefficient data ordering, the amount of implementation memory would be doubled. This bears a significant problem especially for large (> 1024- point) transform implementations. In this study, reduced logic addressing schemes for in-place radix-2 decimation in-frequency type FFT is examined. The discrete Fourier transform of the N- point is defined by N j N N n nk N e W N k W n x k X π 2 1 0 , 1 ,..., 1 , 0 ) ( ) ( = = = = (1) Fig. 1 shows the signal flow graph of 16-point FFT algorithm [1]. Conventional Radix-2 butterfly operation is shown in Figure 2 and Equation 2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 W0 W1 W2 W3 W4 W5 W6 W7 W0 W2 W4 W6 W0 W2 W4 W6 W0 W4 W0 W4 W0 W4 W0 W4 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15 0 Pass 0 Pass 1 Pass 2 Pass 3 Fig. 1. Signal Flow Graph of 16-point FFT Algorithm Fig. 2. Radix-2 Butterfly ); ( ' ' Yb Ya i Xb Xa iYa Xa + + + = + ]; ) ( ) [( ) ( ) ( ' ' Wr Yb Ya Wi Xb Xa i Wi Yb Ya Wr Xb Xa iYb Xb + = + (2) From Fig. 2, it can be seen that any butterfly operation has two data inputs and two data outputs. Therefore, parallel data access with in-place strategy necessitates the use of a block of 4-port memory for simultaneous two data read and two data write operations. However 4-port memory blocks are costly and inefficient. In most of the cases, only two-port high-speed memories are provided in hardware, and

Transcript of [IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA...

Page 1: [IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA (2007.05.17-2007.05.20)] 2007 IEEE International Conference on Electro/Information Technology

IEEE EIT 2007 Proceedings 390.

1-4244-0941-1/07/$25.00 c©2007 IEEE

Efficient FFT Engine with Reduced Addressing Logic

Xin Xiao, Erdal Oruklu, and Jafar Saniie

Electrical and Computer Engineering Department

Illinois Institute of Technology Chicago, Illinois 60616

Abstract- In this study, an efficient address

generation method for pipelined Radix-2 fast Fourier transform (FFT) is presented. Conventional pipelined FFT addressing schemes utilize dedicated address generators in order to enable parallel access to the memory units and in-place calculation. These address generator units require substantial hardware logic including counters and rotational shifters to generate the addresses and registers to buffer the outputs of each butterfly operation. In the proposed method, the new parallel addressing scheme utilizes only counters and inverters to generate the addresses; replacing the barrel shifter units and reducing the hardware requirements. In order to replace the barrel shifters, two outputs of the butterfly unit switch places depending on the status of the butterfly pass operation. The only additional hardware unit is extra multiplexers for switching the butterfly outputs. We present the signal flow graph for 8, 16, and 32-point FFT and derive the methodology for

r2 = N-point transforms. Furthermore, as a case study, 16-point FFT with 64-bit complex numbers is synthesized using an FPGA device. The results indicate that approximately 20% logic reduction can be achieved with exactly same throughput.

I. INTRODUCTION

Many high-performance FFT processors use a butterfly calculation unit to realize Radix-2 FFT, and the in-place strategy is a practical choice to minimize the amount of memory. With in-place method, the outputs of a butterfly are stored within the same memory location used by the inputs. If this strategy is not possible due to inefficient data ordering, the amount of implementation memory would be doubled. This bears a significant problem especially for large (> 1024- point) transform implementations. In this study, reduced logic addressing schemes for in-place radix-2 decimation in-frequency type FFT is examined. The discrete Fourier transform of the N-point is defined by

Nj

N

N

n

nkN eWNkWnxkX

π21

0

,1,...,1,0)()(−−

=

=−==∑(1)

Fig. 1 shows the signal flow graph of 16-point FFT algorithm [1]. Conventional Radix-2 butterfly operation is shown in Figure 2 and Equation 2.

123456789101112131415

0

W0W1W2W3W4W5W6W7

W0W2W4W6

W0W2W4W6

W0W4

W0W4

W0W4

W0W4

84

122

106

14195

133

117

15

0Pass 0 Pass 1 Pass 2 Pass 3

Fig. 1. Signal Flow Graph of 16-point FFT Algorithm

Fig. 2. Radix-2 Butterfly

);('' YbYaiXbXaiYaXa +++=+

];)()[()()(''

WrYbYaWiXbXaiWiYbYaWrXbXaiYbXb

−−−+−−−=+ (2)

From Fig. 2, it can be seen that any butterfly

operation has two data inputs and two data outputs. Therefore, parallel data access with in-place strategy necessitates the use of a block of 4-port memory for simultaneous two data read and two data write operations. However 4-port memory blocks are costly and inefficient. In most of the cases, only two-port high-speed memories are provided in hardware, and

Page 2: [IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA (2007.05.17-2007.05.20)] 2007 IEEE International Conference on Electro/Information Technology

IEEE EIT 2007 Proceedings 391.

Fig. 3. 16-point FFT Signal Flow Graph in [6]

parallel addressing can be achieved using two banks of two-port memories by a special addressing algorithm.

II. RELATED WORK

Memory segmentation and simplified control logic

have been studied in [2],[3],[4]. In particular, Ma [5], [6], [7] proposed a method to realize parallel addressing of radix-2 FFT by using two banks of two-port memories. The signal flow graph of 16-point FFT with Ma’s [6] method is shown in Fig. 3. (For signal flow graphs, the following expression is used: if the two inputs of the butterfly is x and y, we express the two outputs as xy and yx). In this method, memory is composed of two separate memory banks M0 and M1, and each memory bank is a two-port RAM, which can read one datum and write one datum simultaneously at one time. Each input of any butterfly unit arrives from different memory banks, which indicates that the inputs can be accessed in parallel. However, butterfly outputs are written to the same memory bank (see Fig. 3); hence, registers are necessary to buffer the signals before parallel write back to the memory. Multiple counters and barrel shifters are utilized to generate all the read and write addresses. Table I shows the address generation for this implementation. RR(x,i) operations denote rotating x right over i bits and they are implemented via shifter blocks.

TABLE I ADDRESS GENERATION TABLE OF MA’S METHOD [6]

Counter B Pass 0 [RR(b,1)]

Pass 1 [RR(b,2)]

Pass 2 [RR(b,3)]

Pass 2 [RR(b,4)]

000 000 000 000 000

001 100 010 001 100

010 001 100 010 001

011 101 110 011 101

100 010 001 100 010

101 110 011 101 110

110 011 101 110 011

111 111 111 111 111

III. REDUCED ADDRESS GENERATION LOGIC FOR FFT

The drawback to the method given in [6] are the

requirements that the barrel shifters and the extra buffers are used for writing two simultaneous outputs to memory. However, the addresses of the two outputs of a butterfly could be exchanged, and parallel data access can be realized without any registers or any delay. The addresses of butterflies’ outputs will be exchanged based on the status of the butterfly pass. The resulting signal data flow is very similar to standard FFT butterfly operation. (See Fig. 2 for the standard butterfly structure). Fig. 4 shows the new butterfly design whose two outputs have been exchanged.

Fig. 4. Butterfly Operation with Outputs Exchanged

We can build a new butterfly structure whose two outputs can be exchanged by a control signal C, the two outputs will exchange their addresses when C=0, or they will not change their addresses when C=1. Fig. 5 shows this kind of new butterfly where:

If 0=C : ;'','' iYaXaZbiYbXbZa +=+=

Else: ;'','' iYbXbZbiYaXaZa +=+=

Fig. 5. Modified Butterfly Architecture

Page 3: [IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA (2007.05.17-2007.05.20)] 2007 IEEE International Conference on Electro/Information Technology

IEEE EIT 2007 Proceedings 392.

(a) Signal Flow Graph for 8-point FFT with the Proposed Method

(b) Signal Flow Graph for 16-point FFT with the Proposed Method

(c) Signal Flow Graph for 32-point FFT with the Proposed Method

Fig. 6. Reduced Addressing Scheme for 8,16, and 32-point FFT

Page 4: [IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA (2007.05.17-2007.05.20)] 2007 IEEE International Conference on Electro/Information Technology

IEEE EIT 2007 Proceedings 393.

TABLE II ADDRESS GENERATION TABLE OF THE PROPOSED METHOD FOR 16-POINT FFT

Pass 0 (exchange control

signal: C= 2b )

Pass 1 (exchange control

signal: C= 1b )

Pass 2 (exchange control

signal: C= 0b )

Pass 3 (exchange control

signal: C=1)

Counter )( 012 bbbB

Counter

)( 012 bbbB

Bank1 address

012 bbb

Bank2 address

012 bbb

Bank1 address

012 bbb

Bank2 address

012 bbb

Bank1 address

012 bbb

Bank2 address

012 bbb

Bank1 address

012 bbb

Bank2 address

012 bbb

000 111 000 000 000 100 000 110 000 111 001 110 001 001 001 101 001 111 001 110 010 101 010 010 010 110 010 100 010 101 011 100 011 011 011 111 011 101 011 100 100 011 100 100 100 000 100 010 100 011 101 010 101 101 101 001 101 011 101 010 110 001 110 110 110 010 110 000 110 001 111 000 111 111 111 011 111 001 111 000

TABLE III

ADDRESS GENERATION OF TWIDDLE FACTORS FOR 16-POINT FFT

Counter

)( 012 bbbB

W address of Pass 0

012 bbb

W address of Pass 1

001bb

W address of Pass 2

000b W address of Pass 3

000

000 000 000 000 000

001 001 010 100 000

010 010 100 000 000

011 011 110 100 000

100 100 000 000 000

101 101 010 100 000

110 110 100 000 000

111 111 110 100 000

A. 8, 16 and 32-point FFT examples

Fig. 6 shows signal flow graphs for 8, 16, and 32-point FFT realized by the proposed method. In Figure 6(b), the straight lines indicate the butterflies without output address exchanging and the broken line indicates the butterflies whose two outputs addresses are exchanged. The memory is also composed of two separate memory banks M0 and M1. We can use a single three-bit counter, three inverters and one three-bit shifter to generate all the addresses required for the 16-point FFT: CounterB counts every clock cycle, the inverters generate an inverted count value Counter B . 2-bit CounterP is used to indicate which butterfly pass is in process, and the three-bit shifter is used to combine certain bits of counterB and B . Table II and III shows the details of the implementation. The proposed method needs only one counter, one multi-bit inverter and one

multi-bit shifter to generate all the addresses needed and the control signal C, therefore the structure of the address generator is reduced .

B. N-point FFT Implementation

For N = r2 point FFT, we need an (r-1)-bit counter: 0132 ... bbbbB rr −−= (3)

and an (r-1)-bit inverter to generate an inverse counter:

0132 ... bbbbB rr −−= (4) as well as a pass counter

P = 0, 1, 2, r −1 (5) to indicate which butterfly pass is in progress. At any pass, the read and write address of memory bank M0 is exactly the same as the value of counter B, and at pass s, the read and write address of memory bank M1 is

Page 5: [IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA (2007.05.17-2007.05.20)] 2007 IEEE International Conference on Electro/Information Technology

IEEE EIT 2007 Proceedings 394.

Pass Counter P Butterfly Counter B

Memory Bank

M1

Memory Bank

M0

40:20 MUX

CXa'+iYa' Xb'+iYb'

Za Zb

40:20 MUX

10:1

MU

X

9bit Inverter

9bit shifter

18:9 MUX(9 2:1 MUX)

(a) Read operation (b) Write Operation

Fig 7. Address Generation Circuits for 1024-point FFT

012132 ...... bbbbbb srsrrr −−−−−− (6) which is a combination of counter B and inverse counter B outputs, the (r-1)-bit shifter is used to generate the control signals for the multiplexer which combine the counter B and B . The control signal C (it decides whether or not to exchange the positions of the two outputs of any butterfly) is equal to br−s−2 when pass number s is even, or equal to 2−−srb when pass number s is odd, and C = 1 at the last pass r−1. And the address of twiddle factors at s pass is 0...0... 032 bbb srsr −−−− (s ‘0’s,

and when 1−= rs , it’s all ‘0’s). Figure 7(a) and 7(b) show the circuit diagram of the

read and write address generators for 1024-point FFT.

IV. IMPLEMENTATION

The proposed FFT algorithm is implemented by CMOS technology, and we evaluate the logic complexity similar to [6] with the sizes of some basic circuit and gates listed in Table IV.

Gate count comparison for 1024-point FFT processor of 40-bit complex data (20-bit each for the real part and imaginary part) is shown in the Table V.

An FPGA chip Stratix EP1S40F1508C5 has been used to simulate 16-point FFT by these two methods, the results are shown in Table VI.

TABLE IV TRANSISTOR COUNTS FOR CMOS CELLS

TABLE V LOGIC COMPARISON FOR 1024-POINT FFT WITH 40-BIT COMPLEX DATA

Types of Gates and Circuits Number of Transistors

1-bit Inverter 2 2-Input XOR 10 2-input Multiplexer 6 1-bit Register/Latch 10 9-bit Counter 182 13-bit Counter 270 9-bit barrel Shifter 152 10-bit barrel Shifter 168 9-bit CLA 354 10-bit Comparator 76 10-bit Comparator 72

Design Schemes Components Transistor Counts

Our Design

2 13-bit Counters 2 9-bit Inverters 1 10-bit register

1 10-bit Multiplexers 2 18-bit Multiplexers 2 40-bit Multiplexers

1432

Ma’s Design

2 13-bit Counters 3 9-bit barrel Shifters

2 9-bit Latches 2 40-bit Latches

2 9-bit Multiplexers 2 40-bit Multiplexers

2564

Page 6: [IEEE 2007 IEEE International Conference on Electro/Information Technology - Chicago, IL, USA (2007.05.17-2007.05.20)] 2007 IEEE International Conference on Electro/Information Technology

IEEE EIT 2007 Proceedings 395.

TABLE VI FPGA SYNTHESIS RESULTS FOR 16-POINT FFT

Resource Proposed method

Ma’s method

Total logic elements 885 1012 Total LABs(Logic Array

Block) 125 150

Total memory bits 1,536 1,536 DSP block 9-bit elements 48 48

Clk frequency 148.26MHz 148.26MHz

V. SUMMARY

FFT is a fundamental tool for many signal processing and communications applications. Therefore, many methods had been proposed to realize conflict free memory addressing of FFT, however most methods try to reorder the addresses of the butterfly inputs or outputs to realize the parallel accessing of the memory. These implementations require shifters to build their address generators and they buffer the interim data to realize the in-place strategy. This paper proposes a reduced addressing logic by building a new butterfly unit whose two outputs’ positions can be exchanged. Based on this concept, we deduce a new addressing scheme to realize parallel access of butterfly addresses. Our method have two advantages: first, proposed method use inverters instead of shifters to generate the addresses, second, because any butterfly operation in our scheme is in-place by default, we don’t need any registers to buffer the interim data.

These changes do not impact the throughput of the FFT operation, however it improves area and power metrics. For a case study, we have implemented 16-point FFT with a Stratix FPGA. The results show approximately 20% reduction in logical blocks.

REFERENCES

[1] R. K. Rao and P. Yip. Discrete Cosine Transform: Algorithm, Advantages, and Applications. Academic, New York, 1990.

[2] D. Cohen. Simplified control of FFT hardware. IEEE Trans.

Acoust., Speech, Signal Processing, 24:577–579, December 1976. [3] B. P. Sinha, J. Dattagupta, and A. Sen. A cost effective FFT

processor using memory segmentation. In Proceedings of IEEE ISCAS, volume 1, pages 20–23, March 1983.

[4] L. G. Johnson. Conflict free memory addressing for dedicated FFT

hardware. IEEE Trans. Circuits Syst.II, 39:312–316, May 1992. [5] Yutai. Ma. A vlsi-oriented parallel FFT algorithm. IEEE

Transactions on Signal Processing, 44(2):445–448, June 1996. [6] Yutai. Ma. An effective memory addressing scheme for FFT

processors. IEEE Transactions on Signal Processing, 47(3):907–911, March 1999.

[7] Yutai. Ma and L. WanHammar. A hardware efficient control of

memory addressing for high-performance FFT processors. IEEE Transactions on SignalProcessing, 48(3):917–921, March 2000.