Multi-operand floating point operations in a programmable integrated circuit device
First Claim
1. A method of configuring a programmable integrated circuit device to perform floating point addition operations on more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said method comprising:
- configuring logic of said programmable integrated circuit device to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent;
configuring logic of said programmable integrated circuit device to shift each respective mantissa of said more than two numbers by said respective shifting amount;
configuring a compressor in said programmable integrated circuit device to simultaneously combine said more than two shifted mantissas into a carry vector and a save vector; and
configuring a carry-propagate adder in said programmable integrated circuit device to combine said carry vector and said save vector.
1 Assignment
0 Petitions
Accused Products
Abstract
A programmable logic device is programmed to add a plurality N of unnormalized numbers at once. Because the inputs are not normalized, they could all have different exponents. The largest exponent of the N exponents is found, and for each of the inputs, its mantissa is right-shifted at by the difference between the largest exponent and the exponent of that particular input. The N shifted mantissas are combined, optionally with sign data, in an (N+1):2 compressor to provide carry and save vectors which may be combined in a carry-propagate adder. Numbers may converted back to normalized form at the end of the operation. If necessary to avoid data loss, a number may be normalized after an intermediate step.
-
Citations
29 Claims
-
1. A method of configuring a programmable integrated circuit device to perform floating point addition operations on more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said method comprising:
-
configuring logic of said programmable integrated circuit device to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent; configuring logic of said programmable integrated circuit device to shift each respective mantissa of said more than two numbers by said respective shifting amount; configuring a compressor in said programmable integrated circuit device to simultaneously combine said more than two shifted mantissas into a carry vector and a save vector; and configuring a carry-propagate adder in said programmable integrated circuit device to combine said carry vector and said save vector. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A programmable integrated circuit device configurable to perform floating point addition operations on more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said programmable integrated circuit device comprising:
-
programmable logic configurable to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent; programmable logic configurable to shift each respective mantissa of said plurality of numbers by said respective shifting amount; programmable logic configurable as a compressor to simultaneously combine said plurality of shifted mantissas into a carry vector and a save vector; and programmable logic configurable to combine said carry vector and said save vector. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable data storage medium encoded with machine-executable instructions for configuring a programmable integrated circuit device to perform floating point addition operations on a more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said instructions comprising:
-
instructions to configure logic of said programmable integrated circuit device to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent; instructions to configure logic of said programmable integrated circuit device to shift each respective mantissa of said more than two numbers by said respective shifting amount; instructions to configure a compressor in said programmable integrated circuit device to simultaneously combine said more than two shifted mantissas into a carry vector and a save vector; and instructions to configure a carry-propagate adder in said programmable integrated circuit device to combine said carry vector and said save vector. - View Dependent Claims (18, 19, 20, 21)
-
-
22. Circuitry for performing floating point addition operations on more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said circuitry comprising:
-
logic to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent; logic to shift each respective mantissa of said more than two numbers by said respective shifting amount; a compressor to simultaneously combine said more than two shifted mantissas into a carry vector and a save vector; and logic to combine said carry vector and said save vector. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
-
Specification