On Sunday 06 February 2005 10:39, Timothy Miller wrote:
> On Sun, 6 Feb 2005 00:02:23 -0500, Daniel Phillips
<[EMAIL PROTECTED]> wrote:
> > This is just a fragment of a floating point adder of course, but
> > the object of the exercise was to convince myself that the
> > interpolater can, in theory, run at full speed. Is the logic
> > roughly right? Now that I've had fun trying to roll my own
> > solution, could you please tell me how it should be done?
>
> Well, say it took 4 cycles to compute one sum. Then what you need is
> dZ, dZ*2, dZ*3, and dZ*4, all of which are either trivial or easy to
> compute. You use dZ*4 to get to the next loop, and send Z,0; Z,dZ;
> Z,dZ*2; and Z,dZ*3 down the pipeline.
>
> Happy now? :)
Yes, because that was essentially my second-last approach: dedicated
adders for even/odd pixels. The next attempt used staggered adder
stages to deliver staggered results, which seems better to me because
it avoids replicating the adders.
I'm glad to hear it turned out to be only a theoretical problem.
However, a floating point interpolation step is for sure a multi-cycle
operation, so this problem rears its head again, does it not? Here are
a couple of suggestions:
- Don't bother with counting zeroes and left-shifting in the
normalize stage - denormalized arithmetic should be ok here
- The normalize then becomes a one bit right-shift on overflow, so
combine it with the operand right-shift of the next iteration
Regards,
Daniel
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)