Partial product accumulation in high performance multipliers
AssigneeHewlett-Packard Company
InventorFrederick A. Ware
Life of this patent
Estimating the term…
Abstract
A new technique for the accumulation of partial product terms in a monolithic VLSI multiplier is disclosed. The method requires fewer than a 5% increase in transistors over older techniques yet provides more than three times the performance of the prior art when used to implement a 64.times.64 multiplier. The accumulator is implemented with one-bit cells to facilitate the VLSI mask design and is expandable to any desired precision.
Claims13
A circuit for accumulating partial products in a multiplier of first and second multiple-bit operands, said accumulator circuit comprising:
- a first block of ripple cells arranged as
- a first row of first ripple cells coupled to a digit of both said first and second operands for producing first local ripple signals, said first row of first ripple cells terminated by a first end ripple cell coupled to said second operand for producing a first partial product signal,
- a second row of second ripple cells coupled to a digit of both said first and second operands and to said first local ripple signals for producing second local ripple signals, said second row of second ripple cells terminated by a second ripple end cell coupled to said second operand for producing a second partial product signal,
- at least one row of third ripple cells, each row of third ripple cells coupled to a digit of both said first and second operands, the first of said at least one row of third ripple cells coupled to said second local ripple signals for producing a first set of third local ripple signals and subsequent ones of the rows of third ripple cells coupled to the local ripple signals of the next proceeding row of third ripple cells for producing subsequent sets of third local ripple signals, each of said at least one row of third ripple cells terminated by a third ripple end cell coupled to the second operand for producing a third partial product signal, and
- a fourth row of fourth ripple cells coupled to a digit of both said first and second operands and to the last set of third local ripple signals for producing first global ripple signals, said fourth row of fourth ripple cells terminated by a fourth ripple end cell coupled to the second operand for producing a fourth partial product signal;
- and
- a second block of ripple cells arranged as
- a fifth row of fith ripple cells coupled to a digit of both said first and second operands and to the first global ripple signals of the first block of ripple cells for producing fifth local ripple signals, said fifth row of fifth ripple cells terminated by a first end ripple cell coupled to said second operand for producing a fifth partial product signal,
- a sixth row of second ripple cells coupled to a digit of both said first and second operands and to said fifth local ripple signals for producing sixth local ripple signals, said sixth row of second ripple cells terminated by a second ripple end cell coupled to said second operand for producing a sixth partial product signal,
- at least one row of third ripple cells, each row of third ripple cells coupled to a digit of both said first and second operands, the first of said at least one row of third ripple cells coupled to said sixth local ripple signals for producing a first set of seventh local ripple signals and subsequent ones of the rows of third ripple cells coupled to the local ripple signals of the next proceeding row of third ripple cells for producing subsequent sets of third local ripple signals, each of said at least one row of third ripple cells terminated by a third ripple end cell coupled to the second operand for producing a seventh partial product signal, and
- an eight row of fourth ripple cells coupled to a digit of both said first and second operands and to the last set of seventh local ripple signals for producing second global ripple signals, said eighth row of fourth ripple cells terminated by a fourth ripple end cell coupled to the second operand for producing an eighth partial product signal.
A circuit for accumulating partial products in a multiplier for first and second multiple-bit operands wherein said second multiple-bit operand is encoded into a set of encoded second operand digits, said accumulator circuit comprising:
- a first block of ripple cells arranged as
- a first row of first ripple cells coupled to a digit of said first operand and to one of the encoded second operand digits for producing first local ripple signals, said first row of first ripple cells terminated by a first end ripple cell coupled to said encoded second operand for producing a first partial product signal,
- a second row of second ripple cells coupled to a digit of said first operand, to one of the encoded second operand digits and to said first local ripple signals for producing second local ripple signals, said second row of second ripple cells terminated by a second ripple end cell coupled to said second encoded operand for producing a second partial product signal,
- at least one row of third ripple cells, each row of third ripple cells coupled to a digit of said first operand and to one of the encoded second operand digits, the first of said at least one row of third ripple cells coupled to said second local ripple signals for producing a first set of third local ripple signals and subsequent ones of the rows of third ripple cells coupled to the local ripple signals of the next proceeding row of third ripple cells for producing subsequent sets of third local ripple signals, each of said at least one row of third ripple cells terminated by a third ripple end cell coupled to the second encoded operand for producing a third partial product signal, and
- a fourth row of fourth ripple cells coupled to a digit of said first operand, to one of the encoded second operand digits and to the last set of third local ripple signals for producing first global ripple signals, said fourth row of fourth ripple cells terminated by a fourth ripple end cell coupled to the second encoded operand for producing a fourth partial product signal;
- and
- a second block of ripple cells arranged as
- a fifth row of fifth ripple cells coupled to a digit of said first operand, to one of the encoded second operand digits and to the first global ripple signals of the first block of ripple cells for producing fifth local ripple signals, said fifth row of fifth ripple cells terminated by a first end ripple cell coupled to said second encoded operand for producing a fifth partial product signal,
- a sixth row of second ripple cells coupled to a digit of said first operand, to one of the encoded second operand digits and to said fifth local ripple signals for producing sixth local ripple signals, said sixth row of second ripple cells terminated by a second ripple end cell coupled to said second encoded operand for producing a sixth partial product signal,
- at least one row of third ripple cells, each row of third ripple cells coupled to a digit of said first operand and to one of the encoded second operand digits, the first of said at least one row of third ripple cells coupled to said sixth local ripple signals for producing a first set of seventh local ripple signals and subsequent ones of the rows of third ripple cells coupled to the local ripple signals of the next proceeding row of third ripple cells for producing subsequent sets of third local ripple signals, each of said at least one row of third ripple cells terminated by a third ripple end cell coupled to the second encoded operand for producing a seventh partial product signal, and
- an eight row of fourth ripple cells coupled to a digit of said first operand, to one of the encoded second operand digits and to the last set of seventh local ripple signals for producing second global ripple signals, said eight row of fourth ripple cells terminated by a fourth ripple end cell coupled to the second encoded operand for producing an eighth partial product signal.
A circuit for accumulating partial products in a multiplier of first and second multiple-bit operands, said accumulator circuit comprising:
- a plurality of blocks of ripple cells coupled to the first and second multiple-bit operands, each of said plurality of blocks arranged as
- one row of first ripple cells,
- one row of second ripple cells coupled to the one row of first ripple cells,
- at least one row of third ripple cells, the first of said at least one row of ripple cells coupled to the one row of second ripple cells and subsequent ones of the rows of third ripple cells coupled to the next preceding row of third ripple cells, and
- one row of fourth ripple cells coupled to the last of the at least one row of third ripple cells, to provide local ripple signals between each row of ripple cells within each block and to provide global ripple signals between each of the plurality of blocks.
Dependencies are inferred from the claim text.