210 likes | 343 Views
RC Project Report. Implementing FFT with Different Radix on FPGAs and Software Platform 陳羿安 蔡進義 Programming Methodology Lab IECS, Feng Chia University. Implementing FFT with Different Radix on FPGA and Software Platform. Outline. Introduction
E N D
RC Project Report Implementing FFT with Different Radix on FPGAs and Software Platform 陳羿安 蔡進義 Programming Methodology Lab IECS, Feng Chia University
Implementing FFT with Different Radix on FPGA and Software Platform Outline • Introduction • Fourier transform and tensor product notation • Design methodology • Implementation • Conclusion and future work
Implementing FFT with Different Radix on FPGA and Software Platform Introduction • To implement Cooley-Tukey FFT algorithm based on radix-2 and radix-4 for 4-point • From software to hardware • Transfer multistage interconnection to single stage interconnection network • Verilog HDL and Quartus II
Implementing FFT with Different Radix on FPGA and Software Platform Fourier Transform and Tensor Product Notation • Fourier transform is used to analyze frequency component for continuous signal • In order to compute in computer and use discrete signal, the DFT replace fourier transform • The definition of DFT is as below:
Implementing FFT with Different Radix on FPGA and Software Platform Fourier Transform and Tensor Product Notation The matrix of the definition of DFT
Implementing FFT with Different Radix on FPGA and Software Platform Fourier Transform and Tensor Product Notation • Tensor product • Stride permutation
Implementing FFT with Different Radix on FPGA and Software Platform Tensor Product Formulation • Cooley-Tukey FFT tensor product formulas • DIT • FIT
Implementing FFT with Different Radix on FPGA and Software Platform The relationship between DIT and DIF • DIT • DIF transpose
Implementing FFT with Different Radix on FPGA and Software Platform Design Methodology • Framework • Data representation • FFT representation on multistage interconnection network • Transfer to single stage interconnection network
Implementing FFT with Different Radix on FPGA and Software Platform Framework Twiddle Factor control InputReal Processing Unit InputImage Permutation OutputReal OutputImage
sign integer fraction 7 6 5 4 3 2 1 0 +7.9375 <= data <= -7.9375 Implementing FFT with Different Radix on FPGA and Software Platform Data Representation Data2 Data1 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Result 9 14 13 12 11 10 8 7 6 5 4 3 2 1 0 Result[14]=Data1[7]+Data2[7]
Implementing FFT with Different Radix on FPGA and Software Platform Data Representation Data1 Data2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Result 7 6 5 4 3 2 1 0 Result[7]=Result[7]+Data1[7]+Data2[7]
Implementing FFT with Different Radix on FPGA and Software Platform Multistage Interconnection Network Bit-reversal twd0 twd0 00 00 X[0] Y[0] twd1 twd1 01 10 X[2] Y[1] twd2 twd2 10 01 X[1] Y[2] twd3 twd3 11 11 X[3] Y[3] Radix-2
twd0 X[0] Y[0] twd1 X[1] Y[1] twd2 X[2] Y[2] twd3 X[3] Y[3] Implementing FFT with Different Radix on FPGA and Software Platform Multistage Interconnection Network Radix-4
twd0 twd0 X[0] Y[0] twd1 twd1 X[2] Y[1] twd2 twd2 X[1] Y[2] twd3 twd3 X[3] Y[3] 1 2 3 Implementing FFT with Different Radix on FPGA and Software Platform Single Interconnection Network Radix-2
D D F2 Implementing FFT with Different Radix on FPGA and Software Platform Software Implementation for i=1 to n for i1=0 to 2n-i-1 for i2=0 to 2i-1-1 B0=X[i1*2i+i2]*D[i2*2n-1*0] B1=X[i1*2i+2i-1+i2]*D[i2*2n-1*1] Y[i1*2i+i2]=B0+B1 Y[i1*2i+2i-1+i2]=B0-B1 end end Swap(X,Y) end Input basis: Output basis: j=0 j=1 j=0 j=1
Implementing FFT with Different Radix on FPGA and Software Platform Hardware Implementation • Experimental Environment • Processor: AMD Athlon 1.11GHz • Memory: 256 MB RAM • OS: Win XP • Compiler: Quartus II • HDL: Verilog
twd0 twd0 twd1 twd1 twd2 twd2 twd3 twd3 1 2 3 One operation 1 operation 2 start Ready Two operation 3 next stage Three End end Implementing FFT with Different Radix on FPGA and Software Platform Hardware Implementation • Finite State Machine
Implementing FFT with Different Radix on FPGA and Software Platform Simulation
Implementing FFT with Different Radix on FPGA and Software Platform Verification DFT4 FFT
Implementing FFT with Different Radix on FPGA and Software Platform Conclusion and Future Work • We make use of tensor product and interconnection network to design and implement Cooley-Tukey FFT • We choose point-4 as our problem size and implement it based on radix-2 and radix-4 • We attempt to increase the problem size • We hope the algorithm is not only Cooley-Tukey FFT algorithm