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.

problem in code of complex functions in VHDL

Status
Not open for further replies.

sougatavlsi

Newbie level 5
Joined
Aug 13, 2012
Messages
9
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,350
I have written the code of FFT in VHDL which includes complex calculation...and finally it is becoming non-synthesizable.From some pdf i came to know about cordic through which may be this problem get solved...after knowing about cordic everywhere it is given about rec to polar conv,sine and cosine functions but not the complex part calculations...my main doubt is that how to resolve this complex calculations in order to make my FFT code in running condition....please help me
 

If you can post an error and/or message you are getting then we might help you. Although I have never done any thing with complex numbers but may be the errors are just common...

Also give detail or HDL for your code
 

cordic algorithm is used to generate twiddle factors not to compute complex calculations. you have to design complex multiplier in order to do complex multiplications
 

cordic algorithm is used to generate twiddle factors not to compute complex calculations. you have to design complex multiplier in order to do complex multiplications
But sir complex calculations are not defined in VHDL.In order to design complex multiplier also i have to go through the j term.and to deal with the twiddle factors it involves complex additions.
but cordic is only involved with the rec to polar conversion,hyperbolic and trig functions....i found nothing associated with cordic which helps me in complex multiplication or subtraction....bcoz for FFT butterfly structure i need all these....so what to do...please help me
 

maybe you use real data instead of integer and your code is unsynthesizable then ?
plz post code or wtire sth more about it
 

if i use real data then it is not according to the algorithm.....
 

I dont know what the problem is. Complex arithmatic is just normal arithmatic - add, multiply etc. Easily done on an FPGA:

(A + Bj) * (C + Dj) = (AC - BD) + (BC + AD)j

Thats just 4 multipliers and 2 adders (to keep the real and imaginary paths separate). You can do this with fixed or floating.
 
  • Like
Reactions: rberek

    rberek

    Points: 2
    Helpful Answer Positive Rating
do complex multiplier TrickyDicky said taking real and imaginary values separately, you have to assume that imaginary part is present and do normal complex multiplication.

eg 3+4j, take input as 0011 real input
and 0100 as complex input
 
Thanks to all of you...i got u peoples point...yes i am implementing complex multiplier but i think for that also i have to go for partial product generation and partial product compression which can be done through booth algorithm and wallace tree structure...is it really necessary to go for wallace tree structure in order to implement tht partial product compression
 

Silly question on my part: what made you decide to go for partial product generation and partial product compression?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top