[Open-graphics] peer review of a fast boolean addition algorithm, please...

Mark mark at jarvin.net
Wed Aug 29 17:14:35 EDT 2007


Timothy Normand Miller wrote:
> On 8/29/07, Dennis Heuer <dh at triple-media.com> wrote:
>>
>> what do you think?
> 
> instruction.  I presume there'd be a similiar solution for SUB.
>
Negate one input, right?  Is there a better way?

> If you were to convert this to combinatorial logic, however, you'd
> pretty much just end up with a regular ripple-carry adder.
> 
I don't think that's quite right -- I think you'd wind up with something 
that looks much more like an array than a chain.  If you unroll this 
implementation completely, you wind up with n stages, each containing n 
2-input XORs and n 2-input ANDs.  Once you apply constant propagation, 
the bottom-right triangle gets optimized away (assuming the input is at 
the top & output at the bottom, MSB left & LSB right).  Assuming the 
circuit is mapped to two-input gates, my back-of-the-envelope result is:

        Ripple Heuer
       +------+--------
area  | 5n   | n(n+1)
delay | 2n-1 | n

Of course, these area & delay costs are just in principle.  In reality, 
architectural features make this kind of cursory analysis moot (at least 
in FPGAs -- I'm thinking of the fast carry chains present in any modern 
architecture and hard adders like those in DSP48 slices; I'm not an ASIC 
guy, but I'm sure there's an equivalent principle at work there, like 
domino logic magic or some clever use of pass transistors or something).

Of course, everything I said here could be riddled with mistakes.  Hope 
not! :)



More information about the Open-graphics mailing list