Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Cordic algorithm for FFT butterfly structure

Status
Not open for further replies.

sougatavlsi

Newbie level 5
Newbie level 5
Joined
Aug 13, 2012
Messages
9
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,350
Sir,I have written the code for FFT butterfly structure in Xilinx 14.1 and platform is VHDL.while writing the code i have faced the problem in handling complex functions as well as floating point numbers.After referring through some pdf's i came to know that i have to implement cordic algorithm in order to solve the prob.So now my doubt is that should i need to implement cordic algo first and then implement FFT bcoz i hv already written the code for FFT its check syntax is ok but while simulating may be due to tht complex functions it is nt showing proper output.....................what should i do now please help me?
 

hello sougatavlsi,
you said you wrote fft, my question is how you generated twiddle factors.. if your N is fixed you no need to go for cordic algorithm.. pre calculate twiddle factors and store it in ram block, if input samples (N) is vector then you have to go through cordic algorithm
 

hi achaleus...i have generated twiddle factor on the basis of calculative formula....this is some portion of code which helps u to clarify the doubt.


architecture behav of fft_eightpt is
component butterfly is
port(x1,x2:in complex; --input
w: in complex; --twiddle factor
g1,g2:eek:ut complex); --output but acting as input to 2nd and 3rd stage
end component;

signal g1,g2 : comp_array := (others => (0.0,0.0));
constant w:comp_array2:=((1.0,0.0),(0.707,-0.707),(0.0,-1.0),(-0.707,-0.707));
 

I assume you do not intend to synthesise this code, as complex and real types are not synthesisable.
 

I assume you do not intend to synthesise this code, as complex and real types are not synthesisable.

yes sir, i agree the code will not be synthesizable since i am dealing with complex calculations...but my doubt is that is it really necessary to go for cordic in order to resolve the complex and flating point issues with FFT
 

since your N is fixed you no need to go for cordic, represent twiddle factors in binary form.. and do calculation( represent real numbers(both input and twiddle factors) in some 16.16(Q.Q) format for example

0.707 rep in 0000000000000000.1011010011111101(remove decimal point) do some shifting operations according to the output while butterfly calculation)
 
Last edited:

I said no need as your N is fixed just generate twiddle factors using some matlab or c.. save those values in a read only ram block
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top