Specialized processing block for programmable logic device
First Claim
1. A specialized processing block for a programmable logic device, said specialized processing block comprising:
- arithmetic circuitry for providing products of inputs and sums of said products to output a result, said arithmetic circuitry comprising a plurality of fundamental processing units, each of said fundamental processing units including;
a plurality of partial product generators, each respective one of said partial product generators having a respective pair of inputs different from inputs of each other one of said partial product generators and providing a respective plurality of vectors representing a respective partial product,compressor circuitry that compresses each respective plurality of vectors into a smaller number of vectors representing said respective partial product, andcircuitry for adding, in one operation, partial products represented by said smaller number of vectors produced by all of said plurality of partial product generators, each said respective partial product being unroutable to any output of said specialized processing block, thereby being unavailable for output, except after being added, by said circuitry for adding, to other of said respective partial products;
said specialized processing block further comprising;
rounding circuitry that provides both;
a first user-selectable option to round said result to a nearest integer, anda second user-selectable option to round said result to a nearest even integer.
3 Assignments
0 Petitions
Accused Products
Abstract
A specialized processing block for a programmable logic device includes circuitry for performing multiplications and sums thereof, as well as circuitry for rounding the result. The rounding circuitry can selectably perform round-to-nearest and round-to-nearest-even operations. In addition, the bit position at which rounding occurs is preferably selectable. The specialized processing block preferably also includes saturation circuitry to prevent overflows and underflows, and the bit position at which saturation occurs also preferably is selectable. The selectability of both the rounding and saturation positions provides control of the output data word width. The rounding and saturation circuitry may be selectably located in different positions based on timing needs. Similarly, rounding may be speeded up using a look-ahead mode in which both rounded and unrounded results are computed in parallel, with the rounding logic selecting between those results.
-
Citations
34 Claims
-
1. A specialized processing block for a programmable logic device, said specialized processing block comprising:
-
arithmetic circuitry for providing products of inputs and sums of said products to output a result, said arithmetic circuitry comprising a plurality of fundamental processing units, each of said fundamental processing units including; a plurality of partial product generators, each respective one of said partial product generators having a respective pair of inputs different from inputs of each other one of said partial product generators and providing a respective plurality of vectors representing a respective partial product, compressor circuitry that compresses each respective plurality of vectors into a smaller number of vectors representing said respective partial product, and circuitry for adding, in one operation, partial products represented by said smaller number of vectors produced by all of said plurality of partial product generators, each said respective partial product being unroutable to any output of said specialized processing block, thereby being unavailable for output, except after being added, by said circuitry for adding, to other of said respective partial products;
said specialized processing block further comprising;rounding circuitry that provides both; a first user-selectable option to round said result to a nearest integer, and a second user-selectable option to round said result to a nearest even integer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A specialized processing block for a programmable logic device, said specialized processing block comprising:
-
arithmetic circuitry that operates on values in a range that extends up to a most highly positive value and down to a most highly negative value for providing products of inputs and sums of said products to output a result, said arithmetic circuitry comprising a plurality of fundamental processing units, each of said fundamental processing units including; a plurality of partial product generators, each respective one of said partial product generators having a respective pair of inputs different from inputs of each other one of said partial product generators and providing a respective plurality of vectors representing a respective partial product, compressor circuitry that compresses each respective plurality of vectors into a smaller number of vectors representing said respective partial product, and circuitry for adding, in one operation, partial products represented by said smaller number of vectors produced by all of said plurality of partial product generators, each said respective partial product being unroutable to any output of said specialized processing block, thereby being unavailable for output, except after being added, by said circuitry for adding, to other of said respective partial products;
said specialized processing block further comprising;saturation circuitry for clipping said result to a value inside said range;
wherein;said saturation circuitry accepts input of a variable that encodes a bit position at which saturation of said result is performed. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification