[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [oc] complex division in Hardware
Sridhar,
Here's a book on Computer Arithmetic Algorithms which may be useful for your
task:
http://www.ecs.umass.edu/ece/koren/arith/
Regards,
Manoj
--------------------------------------------------
Manoj Viswambharan
Principle Engineer
Integrated Device Technologies
manoj.viswambharan@no-spam.idt.com
remove no-spam for real email address
I do not speak for IDT (they rarely speak for me).
--------------------------------------------------
-----Original Message-----
From: owner-cores@opencores.org [mailto:owner-cores@opencores.org]On
Behalf Of Johan Klockars
Sent: Tuesday, January 08, 2002 5:51 AM
To: cores@opencores.org
Subject: Re: [oc] complex division in Hardware
> I am implementing complex division in hardware. Is
> there any easy method to do that?
Do you need this to be done in a single (very long) cycle, or is
multi-cycle operation OK?
> As you know complex division can be done like this:
> a+bi a+bi c-di (a+bi) * (c-di)
> ------ = ------- * ------- = --------------------
> c+di c+di c-di c^2 + d^2
Equivalent to the following (unless I made some mistake):
tmp00 = c * c
tmp01 = d * d
tmp00 = tmp00 + tmp01
tmp00 = 1 / tmp00
tmp01 = a * c
tmp02 = b * d
tmp01 = tmp01 + tmp02
real = tmp01 * tmp00
tmp01 = a * d
tmp02 = b * c
tmp01 = tmp02 - tmp01
imag = tmp01 * tmp00
Possibly the output registers could be reused as temporaries too.
> But it takes lot of hardware if we directly implement
Obviously, both the multiplications and the division can be implemented
using an adder/subtractor if the capability to shift values is added.
That is, you can make do with a single adder/subtractor, a couple of
registers, a couple of multiplexers and a state machine.
For better performance, add a multiplier, divider, extra adder/subtractor,
etc.
--
Chalmers University | Why are these | e-mail: rand@cd.chalmers.se
of Technology | .signatures | johank@omicron.se
| so hard to do | WWW: rand.thn.htu.se
Gothenburg, Sweden | well? | (fVDI, MGIFv5, QLem)
--
To unsubscribe from cores mailing list please visit
http://www.opencores.org/mailinglists.shtml
--
To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml