Specialized processing block for programmable logic device

Information

  • Patent Application
  • 20070185952
  • Publication Number
    20070185952
  • Date Filed
    June 05, 2006
    18 years ago
  • Date Published
    August 09, 2007
    17 years ago
Abstract
A specialized processing block for a programmable logic device incorporates a fundamental processing unit that performs a sum of two multiplications, adding the partial products of both multiplications without computing the individual multiplications. Such fundamental processing units consume less area than conventional separate multipliers and adders. The specialized processing block further has input and output stages, as well as a loopback function, to allow the block to be configured for various digital signal processing operations.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:



FIG. 1 is a high-level diagram of one preferred embodiment of a specialized processing block in accordance with the present invention;



FIG. 2 is a functional diagram of the specialized processing block of FIG. 1;



FIG. 3 is a block diagram of a preferred embodiment of a fundamental processing unit for a specialized processing block in accordance with the present invention;



FIG. 4 is a preferred embodiment of an output stage of a specialized processing block in accordance with the present invention



FIG. 5 is a functional diagram of a specialized processing block in accordance with the present invention configured as a finite impulse response filter;



FIG. 6 is a functional diagram of a specialized processing block in accordance with the present invention configured for arithmetic shifting;



FIG. 7 is a preferred embodiment of an output stage of a specialized processing block in accordance with the present invention configured for logical shifting;



FIG. 8 is a functional diagram of a specialized processing block in accordance with the present invention configured for rotation;



FIG. 9 is a functional diagram of a specialized processing block in accordance with the preferred invention configured as a barrel shifter; and



FIG. 10 is a simplified block diagram of an illustrative system employing a programmable logic device incorporating the present invention.


Claims
  • 1. A specialized processing block for a programmable logic device, said specialized processing block comprising: a plurality of fundamental processing units, each of said fundamental processing units including:a plurality of multipliers; andcircuitry for adding, in one operation, partial products produced by all of said plurality of multipliers.
  • 2. The specialized processing block of claim 1 wherein each of said fundamental processing units further comprises circuitry for shifting said partial products prior to adding them.
  • 3. The specialized processing block of claim 1 further comprising loopback circuitry for feeding back an output of said specialized processing block to an input of said specialized processing block.
  • 4. The specialized processing block of claim 3 wherein said loopback circuitry is used to configure said specialized processing block as an adaptive filter.
  • 5. The specialized processing block of claim 3 further comprising input preprocessing circuitry for aligning inputs from a plurality of sources.
  • 6. The specialized processing block of claim 5 wherein said plurality of sources comprises an input to said specialized processing block and an output of said specialized processing block.
  • 7. The specialized processing block of claim 6 wherein said plurality of sources further comprises an output of another said specialized processing block.
  • 8. The specialized processing block of claim 5 wherein said input preprocessing circuitry comprises registers for registering said inputs.
  • 9. The specialized processing block of claim 8 wherein said registers are chained for inputting data seriatim to each said plurality of multipliers.
  • 10. The specialized processing block of claim 9 wherein said registers comprise an additional register for introducing in said chain delay between groups of said multipliers.
  • 11. The specialized processing block of claim 1 further comprising an output stage, said output stage including: for each of at least one subset of said specialized processing block, a plurality of adders, said plurality of adders being adaptable to provide as an output one of (a) an output of a multiplication operation involving a plurality of said fundamental processing units, and (b) a sum of (1) a multiplication operation involving at least one of said fundamental processing units and (2) a corresponding output cascaded from another said plurality of adders in another output stage in another one of said specialized processing blocks.
  • 12. The specialized processing block of claim 11 wherein said output stage further comprises feedback circuitry for providing, in cooperation with one of said adders, an accumulation function.
  • 13. The specialized processing block of claim 11 further comprising circuitry for selecting as a shifted output one of a plurality of bit ranges of said block output.
  • 14. The specialized processing block of claim 13 wherein said circuitry for selecting a shifted output comprises a pipeline register stage between said plurality of fundamental units and said output stage.
  • 15. The specialized processing block of claim 13 further comprising circuitry for combining said plurality of bit ranges into a combined output, and circuitry for selecting one of (a) one of said plurality of bit ranges, and (b) said combined output.
  • 16. The specialized processing block of claim 15 wherein said circuitry for combining comprises OR circuitry, wherein said combined output comprises a rotation of said block output.
  • 17. The specialized processing block of claim 11 wherein: each of said fundamental processing units comprises two multipliers;said plurality of fundamental processing units comprises at least two said fundamental processing units arranged in groupings of two said fundamental processing units; andsaid plurality of adders in said output stage comprises two adders for each said grouping, each of said adders having a first adder width, said two adders being configurable to perform one of (a) a single addition having a width greater than said first adder width to provide said output of said multiplication operation involving said at least two fundamental processing units, and (b) a first addition having a width of at most said first adder width to provide said multiplication operation involving at least one of said fundamental processing units, and a second addition having a width of at most said first adder width to provide said sum of (1) said multiplication operation and (2) said corresponding output cascaded from another said plurality of adders in another output stage in another one of said specialized processing blocks.
  • 18. The specialized processing block of claim 17 further comprising a pipeline register stage between said fundamental processing units and said output stage; wherein: said pipeline register stage is adaptable to align data output by said fundamental units to perform said addition having said width greater than said adder width.
  • 19. The specialized processing block of claim 1 further comprising a pipeline register stage between said fundamental processing units and said output stage.
  • 20. A programmable logic device comprising the specialized processing block of claim 1.
  • 21. A digital processing system comprising: processing circuitry;a memory coupled to said processing circuitry; anda programmable logic device as defined in claim 20 coupled to the processing circuitry and the memory.
  • 22. A printed circuit board on which is mounted a programmable logic device as defined in claim 20.
  • 23. The printed circuit board defined in claim 22 further comprising: memory circuitry mounted on the printed circuit board and coupled to the programmable logic device.
  • 24. The printed circuit board defined in claim 23 further comprising: processing circuitry mounted on the printed circuit board and coupled to the memory circuitry.
  • 25. An integrated circuit device comprising the specialized processing block of claim 1.
  • 26. A digital processing system comprising: processing circuitry;a memory coupled to said processing circuitry; andan integrated circuit device as defined in claim 25 coupled to the processing circuitry and the memory.
  • 27. A printed circuit board on which is mounted an integrated circuit device as defined in claim 26.
  • 28. The printed circuit board defined in claim 27 further comprising: memory circuitry mounted on the printed circuit board and coupled to the programmable logic device.
  • 29. The printed circuit board defined in claim 28 further comprising: processing circuitry mounted on the printed circuit board and coupled to the memory circuitry.
Provisional Applications (2)
Number Date Country
60772197 Feb 2006 US
60789535 Apr 2006 US