[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [oc] complex division in Hardware
Hi,
I am trying to implement an HDL Module that performs a 16b/16b division
and i can't find efficient algorith or strategy, when you write
tmp00 = 1 / tmp00 , it is not staitforward, but how do you perform such
an operation, of course it is not a simple shifter .
could you please tell how to perform it.
Kind regards
----- Original Message -----
From: Johan Klockars <rand@c... >
To: cores@o...
Date: Tue, 8 Jan 2002 11:50:51 +0100
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@c...
> of Technology | .signatures |
> johank@o...
> | 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