Claims
- 1. A circuit for generating partial product bits in a squaring circuit for a binary number, receiving a first bit of weight 2(k−1) and a second bit of weight 2k of said binary number, comprising:a first partial product bit generator configured to generate a first partial product bit of weight 22k such that the first partial product bit has a 1 value only if the first bit of weight2(k−1) has a 0 value while the second bit of weight 2k has the 1 value, the first partial product bit generator comprises: a first AND gate configured to receive and logically AND the first bit of weight 2(k−1) and the second bit of weight 2k to generate an intermediate bit; and an XOR gate configured to receive and logically XOR the intermediate bit and the second bit of weight 2k to generate the first partial product bit of weight 22k; and a second partial product bit generator configured to receive the intermediate and second bits and configured to provide a second partial product bit of weight 22k+1 such that the second partial product bit has the 1 value only if the first bit of weight 2(k−1) and the second bit of weight 2k both have the 1 value.
- 2. The circuit of claim 1, wherein the second partial product bit generator comprises:a second AND gate configured to receive the intermediate bit and the second bit of weight 2k to generate the second partial product bit of weight 2(2k+1).
- 3. The method for generating partial product bits in computing a square of a binary number, comprising:receiving a first bit of weight 2(k−1) and a second bit of weight 2k of said binary number; generating a first partial product bit of weight 22k with a first partial product bit generator, wherein the first partial product bit has a 1 value only if the first bit of weight 2(k−1) has a 0 value while the second bit of weight 2k has the 1 value, the generating the first partial product bit comprises: logically AND'ing the first and second bits in a first AND gate to generate an intermediate bit; logically XOR'ing the intermediate bit and the second bit in an XOR gate; and generating a second partial product bit of weight 22k+1 with a second partial product bit generator configured to receive the intermediate and second bits, wherein the second partial product bit has the 1 value only if the first bit of weight 2(k−1) and the second bit of weight 2k both have the 1 value.
- 4. The method of claim 3, wherein generating the second partial product bit comprises:logically AND'ing the intermediate bit and the second bit in a second AND gate.
- 5. A circuit for generating partial product bits in a squaring circuit for a binary number, receiving a first bit of weight 2(k−1) and a second bit of weight 2k of said binary number, comprising:a first partial product bit generator configured to generate a first partial product bit of weight 22k , the first partial product bit generator comprising: a first AND gate configured to receive and logically AND the first bit of weight 2(k−1) and the second bit of weight 2k to generate an intermediate bit; and an XOR gate configured to receive and logically XOR the intermediate bit and the second bit of weight 2k to generate the first partial product bit of weight 22k; and a second partial product bit generator configured to receive the intermediate and second bits and configured to provide a second partial product bit of weight 22k+1 such that the second partial product bit has the 1 value only if the first bit of weight 2(k−1) and the second bit of weight 2k both have the 1 value, wherein the first and second partial product bit generators reduce a number of partial product bits of weight 2k and increase a number of partial product bits of weight 22k+1.
- 6. A method for generating partial product bits in computing a square of a binary number, comprising:receiving a first bit of weight 2(k−1) and a second bit of weight 2k of said binary number; generating a first partial product bit of weight 22k with a first partial product bit generator, wherein the first partial product bit has a 1 value only if the first bit of weight 2(k−1) has a 0 value while the second bit of weight 2k has the 1 value, the generating the first partial product bit comprises: logically AND'ing the first and second bits in a first AND gate to generate an intermediate bit; logically XOR'ing the intermediate bit and the second bit in an XOR gate; and generating a second partial product bit of weight 22k+1 with a second partial product bit generator configured to receive the intermediate and second bits, wherein the second partial product bit has the 1 value only if the first bit of weight 2(k−1) and the second bit of weight 2k both have the 1 value, wherein a number of partial product bits of weight 22k is decreased and a number of partial product bits of weight 22k+1 is increased.
CROSS-REFERENCE TO RELATED APPLICATIONS
This is related to Application Ser. No. 09/159,271, filed the same day herewith, and incorporated by reference in its entirety.
US Referenced Citations (4)
Number |
Name |
Date |
Kind |
3610906 |
Stampler |
Oct 1971 |
A |
5337267 |
Colavin |
Aug 1994 |
A |
5629885 |
Pirson et al. |
May 1997 |
A |
6018758 |
Griesbach et al. |
Jan 2000 |
A |