Patent ID: 7467177

Claim:
A DSP slice in an array of DSP slices comprising: a first operand input port for receiving a first signed operand, the first signed operand including a first sign bit; a second operand input port for receiving a second signed operand, the second signed operand including a second sign bit; wherein the first signed operand is a value selected from a group consisting of an upstream-output-cascade value from another DSP slice upstream from the DSP slice, a concatenated value of another first signed operand and another second signed operand from the other DSP slice upstream from the DSP slice, a partial product value from the other DSP slice upstream from the DSP slice, a product value from the other DSP slice upstream from the DSP slice, and an output value from the other DSP slice upstream from the DSP slice; a third operand input port for receiving a rounding constant; a product generator having: a multiplier port connected to the first operand input port for receiving the first signed operand; a multiplicand port connected to the second operand input port for receiving the second signed operand; and a product port for producing a product of the first and second signed operands; a correction circuit having: first and second correction-circuit input terminals connected to the respective first and second operand input ports for receiving the first and second sign bits; and a correction-circuit output terminal, the correction circuit configured for generating a correction factor from the first and second sign bits for providing the correction factor on the correction-circuit output terminal; and a adder having a first addend terminal connected to the product port for receiving the product, a second addend terminal connected to the third operand input port for receiving the rounding constant, and a third addend terminal connected to the correction-circuit output terminal for receiving the correction factor; the adder configured to sum the rounding constant, the correction factor, and the product to obtain a rounded product.