Claims
- 1. An improved multiplier for multiplying a first operand Y times a second operand X, comprising:
- a Booth-type translator having an input connected to receive the first operand Y having 2N binary bits Y.sub.j, for translating the binary expression for the sequence of N pairs (Y.sub.j+1, Y.sub.j) of said first operand Y into a sequence of N signed digits Y.sub.j ' said translator operating on positive 2's complement numbers, to translate for Y,
- ______________________________________Y.sub.j+1 Y.sub.j Y.sub.j-1 Y.sub.j '______________________________________1 1 1 01 1 0 -11 0 1 -11 0 0 -20 1 1 +20 1 0 +10 0 1 +10 0 0 0;______________________________________
- a partial product generator having a first input connected to the output of said translator and its second input connected to receive said second operand X having 2M binary bits grouped into M pairs (X.sub.I+1, X.sub.I) expressed as the numerical value X.sub.I ' of the respective pair, for multiplying said translated first operand times said second operand and outputting partial products consisting of signed digits, said partial product generator operating to multiply for
- Y.sub.j '=+2; X.sub.I '.multidot.Y.sub.j '=+X'.sub.I-1
- Y.sub.j '=-2; X.sub.I '.multidot.Y.sub.j '=-X'.sub.I-1
- Y.sub.j '=+1; X.sub.I '.multidot.Y.sub.j '=+X.sub.I '
- Y.sub.j '=-1; X.sub.I '.multidot.Y.sub.j '=-X.sub.I '
- Y.sub.j '=0; X.sub.I '.multidot.Y.sub.j '=0
- to generate N.times.M partial products consisting of signed digits X.sub.I ' times Y.sub.j ';
- an array of adders, each adder having an input connected to two outputs from said partial product generator, for adding a first signed digit A=X.sub.I ' times Y.sub.j ' of a first partial product, to a second signed digit B=X.sub.i ' times Y.sub.j ' of a second partial product, providing a sum consisting of a sequence of signed digits, each adder operating on
- INPUTS:
- -.ltoreq. A.ltoreq.+3
- -3.ltoreq.B.ltoreq.3
- Carry In=-1, 0, +1
- and generating
- OUTPUTS:
- Carry Out=-4, 0,+4 Independent of Carry In -3.ltoreq.C.ltoreq.+3
- so that
- For +3.ltoreq.A+B.ltoreq.+6, Carry out=+4
- -2.ltoreq.A+B.ltoreq.+2, Carry Out=0
- -6.ltoreq.A+B.ltoreq.-3, Carry Out=-4
- the result is A+B-(Carry Out)=-2, -1, 0, +1, +2 -3.ltoreq.{A+B-(Carry Out)+(Carry In)}.ltoreq.+3 said sequence of signed digits output from said array of adders being the full product Z' expressed as a plurality of M+N-1 signed digits Z.sub.I';
- an inverse translator having an input connected to the output of said adders, for operating on said sequence of signed digits Z.sub.I ' output from said adders, for providing a conventional binary expression Z OUT expressed as the value Z.sub.I ' of pairs of adjacent binary numbers for the product of said first and second operands, said inverse translator operating
- on an input -2.ltoreq.Z.sub.I '.ltoreq.+3 and eliminating negative values, by using -1=-2+1 to generate an output where Z.sub.I is given by the Table ##EQU1## where the value 1.sub.I IN is a binary "1" if there is a minus carry in and is a "0" if there is no minus carry in.
- 2. An improved multiplier for multiplying a first operand Y times a second operand X, comprising:
- a Booth-type translator having a first input connected to receive the first operand Y having 2N binary bits Y.sub.j, a second input connected to receive the second operand X having 2.sub.m binary bits X.sub.I, said translator translating the binary expression for the sequence of N pairs (Y.sub.j+1, Y.sub.j) of said first operand Y into a sequence of N signed digits Y.sub.j ' said translator operating on positive 2's complement numbers, to translate for Y,
- ______________________________________Y.sub.j+1 Y.sub.j Y.sub.j-1 Y.sub.j '______________________________________1 1 1 01 1 0 -11 0 1 -11 0 0 -20 1 1 +20 1 0 +10 0 1 +10 0 0 0______________________________________
- for j even; said translator also translating the binary expression for the sequence of M pairs (X.sub.I+1,X.sub.I) of said second operand X into a sequence of M signed digits X.sub.I ' said translator operating on positive 2's complement numbers, to translate for X
- ______________________________________X.sub.I+1 X.sub.I X.sub.I-1 .fwdarw. X.sub.I '______________________________________1 1 1 01 1 0 -11 0 1 -11 0 0 -10 1 1 +20 1 0 +10 0 1 +10 0 0 0______________________________________
- translating X for every I;
- a partial product generator having a first and second inputs connected to the outputs of said translator, for multiplying said translated first operand times said second translated operand and outputting partial products consisting of signed digits, said partial product generating operating to multiply for
- Y.sub.j '=+2; X.sub.I '.multidot.Y.sub.j =+X.sub.I-1 '
- Y.sub.j '=-2; X.sub.I '.multidot.Y.sub.j '=-X .sub.I-1 '
- Y.sub.j '=+1; X.sub.I '.multidot.Y.sub.j '=+X.sub.I '
- Y.sub.j '=-1; X.sub.I '.multidot.Y.sub.j '=-X.sub.I '
- Y.sub.j '=0; X.sub.I '.multidot.Y.sub.j '=0
- to generate N.times.M partial products consisting of signed digits X.sub.I ' times Y.sub.j ';
- an array of adders, each adder having an input connected to two outputs from said partial product generator, for adding a first signed digit A=X.sub.I ' times Y.sub.j of a first partial product, to a second signed digit B=X.sub.i " times Y.sub.j ' of a second partial product, providing a sum consisting of a sequence of signed digits, each adder operating on
- INPUTS:
- -2.ltoreq.A.ltoreq.+3
- -2.ltoreq.B.ltoreq.+3
- Carry In=-1, 0, +1
- and generating
- OUTPUTS:
- Carry Out=-4, 0, +4 Independent of Carry In -2.ltoreq.C.ltoreq.+3
- so that for
- +3.ltoreq.A+B.ltoreq.+6, Carry out=+4
- +1.ltoreq.A+B.ltoreq.+2, Carry out=0
- -4.ltoreq.A+B.ltoreq.-2, Carry out=-4
- the result is
- A+B-(Carry out)=-1, 0, +1, +2
- -2.ltoreq.[A+B-(Carry out)+(Carry In)].ltoreq.+3
- said sequence of signed digits output from said array of adders being the full product Z' expressed as a plurality of N+N-1 signed digits Z.sub.I ';
- an inverse translator having an input connected to the output of said adders, for operating on said sequence of signed digits Z.sub.I ' output from said adders for providing a conventional binary expression Z OUT expressed as the value Z.sub.I ' of pairs of adjacent binary numbers for the product of said first and second operands, said inverse translator operating on an input -2.ltoreq.Z.sub.I '.ltoreq.+3 and eliminating negative values, by using -1=-2+1 to generate an output where Z.sub.I is given by the Table ##EQU2## where the value -1.sub.I IN is a binary "1" if there is a minus carry in and is a "0" if there is no minus carry in.
Parent Case Info
This is a continuation of application Ser. No. 504,358, filed June 15, 1983, now abandoned.
US Referenced Citations (19)
Non-Patent Literature Citations (1)
Entry |
Shlomo Waser, "High-Speed Monolithic Multipliers for Real-Time Digital Signal Processing," IEEE Computer, Oct. 1978, pp. 19-29. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
504358 |
Jun 1983 |
|