(57)【特許請求の範囲】
【請求項１】
供給される乗数データを最上位ビットから２ビットごとに分割してできる複数の２ビット・データのうちの１つと、当該２ビット・データの下位側に隣接する１ビットの隣接データとに基づいて、供給される被乗数データに所定の演算を行い、当該２ビット・データに対応する部分積を生成する乗算器の部分積生成回路であって、
上記２ビット・データの下位データと、当該下位データに隣接する上記隣接データとの排他的論理和を演算して第１の制御符号を生成し、当該下位データと当該隣接データとの排他的反転論理和を演算して第２の制御符号を生成する第１の符号化回路と、
上記２ビット・データの上位データと下位データとの排他的反転論理和を演算し、当該演算結果と上記第２の制御符号との反転論理積、または、当該演算結果の反転結果と上記第１の制御符号との論理和を演算して、第３の制御符号を生成する第２の符号化回路と、
上記第１の制御符号および上記第２の制御符号に応じて、上記被乗算データの隣接した２ビットのデータのうちの上位データまたは下位データを出力する複数の選択回路と、
上記２ビット・データの上位データに応じて、上記複数の選択回路から出力される被乗数データのそれぞれのビットの論理値を反転させる複数のビット反転回路と、
上記複数のビット反転回路から出力される被乗数データのそれぞれのビットと、上記第３の制御符号との反転論理積を演算して、上記部分積のビット・データを出力する複数の出力回路とを有し、
上記出力回路が、
上記部分積のビット・データを出力する出力ノードと、
電源ラインと上記出力ノードとの間に並列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｐ型ＭＯＳトランジスタおよび第２のｐ型ＭＯＳトランジスタと、
上記出力ノードと基準電位ラインとの間に直列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｎ型ＭＯＳトランジスタおよび第２のｎ型ＭＯＳトランジスタとを含む、
部分積生成回路。
【請求項２】
上記第１の符号化回路は、
何れか一方に上記下位データを入力し、他方に上記隣接データを入力する第１のノードおよび第２のノードと、
上記第１のノードの論理値を反転させる第１のインバータと、
上記第２のノードの論理値を反転させる第２のインバータと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて導通または開放し、導通状態において上記第２のノードの入力信号を出力する第１のスイッチと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチとは逆の論理値で導通または開放し、導通状態において上記第２のインバータの出力信号を出力する第２のスイッチと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチとは逆の論理値で導通または開放し、導通状態において上記第２のノードの入力信号を出力する第３のスイッチと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチと同一の論理値で導通または開放し、導通状態において上記第２のインバータの出力信号を出力する第４のスイッチと、
上記第１のスイッチおよび上記第２のスイッチの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第１の制御符号として出力する第３のインバータと、
上記第３のスイッチおよび上記第４のスイッチの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第２の制御符号として出力する第４のインバータとを含む、
請求項１に記載の部分積生成回路。
【請求項３】
上記第１の符号化回路は、
何れか一方に上記下位データを入力し、他方に上記隣接データを入力する第１のノードおよび第２のノードと、
上記第１のノードの論理値を反転させる第１のインバータと、
上記第２のノードの論理値を反転させる第２のインバータと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて導通または開放し、導通状態において上記第２のノードの入力信号を出力する第１のスイッチと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチとは逆の論理値で導通または開放し、導通状態において上記第２のインバータの出力信号を出力する第２のスイッチと、
上記第１のスイッチおよび上記第２のスイッチの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第１の制御符号または上記第２の制御符号として出力する第３のインバータと、
上記第３のインバータの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第１の制御符号または上記第２の制御符号として出力する第４のインバータとを含む、
請求項１に記載の部分積生成回路。
【請求項４】
上記選択回路は、
上記第１の制御符号および上記第２の制御符号に応じて導通または開放し、導通状態において、上記被乗数データの隣接した２ビットのデータのうちの下位データを出力する第５のスイッチと、
上記第１の制御符号および上記第２の制御符号に応じて、上記第５のスイッチとは逆の論理値で導通または開放し、導通状態において、当該２ビットのデータのうちの上位データを出力する第６のスイッチとを含む、
請求項２または３に記載の部分積生成回路。
【請求項５】
上記ビット反転回路は、
第３のノードと、
上記選択回路から出力される上記被乗算データのビット・データの論理値を反転させる第５のインバータと、
上記第５のインバータの出力ノードと上記第３のノードとの間に接続され、上記２ビット・データの上位データに応じて導通または開放する第７のスイッチと、
上記２ビット・データの上位ビットに応じて、上記第７のスイッチが導通する場合に非活性状態、上記第７のスイッチが開放する場合に活性状態となり、当該活性状態において、上記第５のインバータの出力信号の論理値を反転させて上記第３のノードに出力する第６のインバータとを含む、
請求項４に記載の部分積生成回路。
【請求項６】
上記ビット反転回路は、
第３のノードと、
上記選択回路から出力される上記被乗算データのビット・データの論理値を反転させる第５のインバータと、
上記第５のインバータの出力信号の論理値を反転させる第６のインバータと、
上記第５のインバータの出力ノードと上記第３のノードとの間に接続され、上記２ビット・データの上位データに応じて導通または開放する第７のスイッチと、
上記第６のインバータの出力ノードと上記第３のノードとの間に接続され、上記２ビット・データの上位データに応じて、上記第７のスイッチとは逆の論理値で導通または開放する第８のスイッチとを含む、
請求項４に記載の部分積生成回路。
【請求項７】
上記２ビット・データの上位データと、入力されるビット反転信号との排他的論理和または排他的反転論理和を演算し、当該演算結果の論理値を反転させた第４の制御符号と、当該第４の制御符号の論理値を更に反転させた第５の制御符号とを生成する第３の符号化回路を含み、
上記第７のスイッチは、上記第４の制御符号および上記第５の制御符号に応じて導通または開放し、
上記第６のインバータは、上記第４の制御符号および上記第５の制御符号に応じて活性状態または非活性状態となる、
請求項５に記載の部分積生成回路。
【請求項８】
供給される乗数データを最上位ビットから２ビットごとに分割してできる複数の２ビット・データと、当該複数の２ビット・データの下位側にそれぞれ隣接する１ビットの隣接データとに基づいて、供給される被乗数データに所定の演算を行い、それぞれの２ビット・データに対応する部分積を生成する複数の部分積生成回路と、当該複数の部分積生成回路において生成された部分積を加算する加算回路とを有する乗算器であって、
上記部分積生成回路が、
上記２ビット・データの下位データと、当該下位データに隣接する上記隣接データとの排他的論理和を演算して第１の制御符号を生成し、当該下位データと当該隣接データとの排他的反転論理和を演算して第２の制御符号を生成する第１の符号化回路と、
上記２ビット・データの上位データと下位データとの排他的反転論理和を演算し、当該演算結果と上記第２の制御符号との反転論理積、または、当該演算結果の反転結果と上記第１の制御符号との論理和を演算して、第３の制御符号を生成する第２の符号化回路と、
上記第１の制御符号および上記第２の制御符号に応じて、上記被乗算データの隣接した２ビットのデータのうちの上位データまたは下位データを出力する複数の選択回路と、
上記２ビット・データの上位データに応じて、上記複数の選択回路から出力される被乗数データのそれぞれのビットの論理値を反転させる複数のビット反転回路と、
上記複数のビット反転回路から出力される被乗数データのそれぞれのビットと、上記第３の制御符号との反転論理積を演算して、上記部分積のビット・データを出力する複数の出力回路とを含み、
上記出力回路が、
上記部分積のビット・データを出力する出力ノードと、
電源ラインと上記出力ノードとの間に並列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｐ型ＭＯＳトランジスタおよび第２のｐ型ＭＯＳトランジスタと、
上記出力ノードと基準電位ラインとの間に直列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｎ型ＭＯＳトランジスタおよび第２のｎ型ＭＯＳトランジスタとを含む、
乗算器。
【請求項９】
上記第１の符号化回路は、
何れか一方に上記下位データを入力し、他方に上記隣接データを入力する第１のノードおよび第２のノードと、
上記第１のノードの論理値を反転させる第１のインバータと、
上記第２のノードの論理値を反転させる第２のインバータと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて導通または開放し、導通状態において上記第２のノードの入力信号を出力する第１のスイッチと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチとは逆の論理値で導通または開放し、導通状態において上記第２のインバータの出力信号を出力する第２のスイッチと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチとは逆の論理値で導通または開放し、導通状態において上記第２のノードの入力信号を出力する第３のスイッチと、
上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチと同一の論理値で導通または開放し、導通状態において上記第２のインバータの出力信号を出力する第４のスイッチと、
上記第１のスイッチおよび上記第２のスイッチの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第１の制御符号として出力する第３のインバータと、
上記第３のスイッチおよび上記第４のスイッチの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第２の制御符号として出力する第４のインバータとを含む、
請求項８に記載の乗算器。
【請求項１０】
上記選択回路は、
上記第１の制御符号および上記第２の制御符号に応じて導通または開放し、導通状態において、上記被乗数データの隣接した２ビットのデータのうちの下位データを出力する第５のスイッチと、
上記第１の制御符号および上記第２の制御符号に応じて、上記第５のスイッチとは逆の論理値で導通または開放し、導通状態において、当該隣接した２ビットのデータのうちの上位データを出力する第６のスイッチとを含む、
請求項９に記載の乗算器。
【請求項１１】
上記ビット反転回路は、
第３のノードと、
上記選択回路から出力される上記被乗算データのビット・データの論理値を反転させる第５のインバータと、
上記第５のインバータの出力ノードと上記第３のノードとの間に接続され、上記２ビット・データの上位データに応じて導通または開放する第７のスイッチと、
上記２ビット・データの上位ビットに応じて、上記第７のスイッチが導通する場合に非活性状態、上記第７のスイッチが開放する場合に活性状態となり、当該活性状態において、上記第５のインバータの出力信号の論理値を反転させて上記第３のノードに出力する第６のインバータとを含む、
請求項１０に記載の乗算器。
【請求項１２】
上記２ビット・データの上位データと、入力されるビット反転信号との排他的論理和または排他的反転論理和を演算し、当該演算結果の論理値を反転させた第４の制御符号と、当該第４の制御符号の論理値を更に反転させた第５の制御符号とを生成する第３の符号化回路を含み、
上記第７のスイッチは、上記第４の制御符号および上記第５の制御符号に応じて導通または開放し、
上記第６のインバータは、上記第４の制御符号および上記第５の制御符号に応じて活性状態または非活性状態となる、
請求項１１に記載の乗算器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、部分積生成回路および乗算器に係り、特に、２次のブースの符号化法を用いた部分積生成回路および乗算器に関するものである。
【０００２】
【従来の技術】
図９は、一般的な乗算の過程を説明するための図である。図９の例において、被乗数および乗数は共に８ビットであり、その最上位ビットに符号ビットを有している。
乗算器では、図９のような乗算を筆算で行う場合と同様に、まず乗数の各ビットと被乗数との積を部分積として計算した上で、これらの部分積を加算することにより乗算結果が得られる。図９の例では、乗数の各ビットに対応した８個の部分積を加算することにより（１５ビット＋１符号ビット）の乗算結果が得られる。
【０００３】
部分積の加算回路には、加算器の段数増加に伴う遅延時間の増大を抑えるために、例えばワレスの木（Wallace tree）と呼ばれる加算器の構成法が一般的に用いられる。ワレスの木を用いた加算回路によれば、並列的に加算処理が実行されるため、遅延時間の増大を抑えることができる。
【０００４】
しかしながら、図９に示すような乗算方法では、Ｌビットの被乗数とＭビットの乗数との乗算においてＭ個の部分積が生成される（Ｌ，Ｍは任意の自然数を示す）ため、乗数のビット数増加に比例して部分積の数も増加し、これに応じてワレスの木を構成する加算器の数も増大してしまう問題がある。
【０００５】
乗算の過程で生成されるこうした部分積の数を減らす手法として、ブース（Booth）の符号化と呼ばれる方法が知られている。これは、例えば多ビットの並列型乗算器などにおいて一般的に用いられる手法である。
ｎ次のブースの符号化法によると、乗数を構成する各ビットが（ｎ＋１）ビットごとにまとめられて符号化され、この符号と被乗数との簡易な演算（シフト演算やビット反転演算など）により部分積が生成される。この場合、部分積の数は通常のｎ分の１、すなわち乗数のビット数Ｍに対して｛Ｍ／ｎ｝個まで削減される。ただし、３次以上のブースの符号化法ではシフト演算などの単純な演算で生成できない部分積が存在するため、有効な部分積の数は一般に｛Ｍ（ｎ−１）／ｎ｝個となる。
【０００６】
ここで、２次のブース符号化法の概略について説明する。
以下の説明では、理解を容易にするために、数表現として２の補数表示を用いる。２の補数表示では、最上位ビットの重みを−１倍することにより負数が表現される。
２の補数表示において、Ｌビットの被乗数Ｘをその各ビットの値（Ｘ０〜ＸＬ−１）を用いて表すと、次式のようになる。
【０００７】
【数１】
0003663186.tif 000002
【０００８】
同様に、２の補数表示において、Ｍビットの乗数Ｙをその各ビットの値（Ｙ０〜ＹＭ−１）を用いて表すと、次式のようになる。
【０００９】
【数２】
0003663186.tif 000003
【００１０】
２の補数で表現された数値の乗算において、部分積の符号ビットは、図９に示すように上位ビット側へ拡張される。また、乗数の符号ビットと被乗数とを乗算した符号ビットの部分積は、−１倍された上で他の部分積と加算される。
【００１１】
２次のブースの符号は、乗数に対して次の変形が施されることにより得られる。まず、図１０に示すように、乗数が最上位ビットから２ビットづつに分割される。そして、最上位ビットから数えて偶数番目のビットが、その１ビット上位の桁に同符号で足されるとともに、同位の桁に反転して足される（すなわち−１倍される）。２進法において、１ビット上位の桁は２倍の重みを持っているので、この上位の桁に足される値と−１倍される値とを合わせると、ちょうど１倍となる。すなわち、この変形によって乗数の値は変化しない。
以上の変形を式（２）に対して施すと、次式のようになる。
【００１２】
【数３】
0003663186.tif 000004
【００１３】
式（３）において、符号Ｚｊはｊ番目の部分積に対応する２次のブースの符号を示す。また上式において、最下位側で不足するビット（Ｙ−１）には値‘０’が補われる。
式（１）で示される被乗数Ｘを、式（３）で示される乗数Ｙで乗算すると、次式のようになる。
【００１４】
【数４】
0003663186.tif 000005
【００１５】
式（４）に示すように、２次のブースの符号Ｚｊを用いることによって、部分積の数を半分に減らせることが分かる。
【００１６】
図１１は、２次のブースの符号と乗数のビット値との対応関係を示す図である。
図１１に示すように、２次のブースの符号は、値‘−２’、値‘−１’、値‘０’、値‘１’、または値‘２’の何れかの値をとる。これらの値から分かるように、部分積を生成するために行われるブースの符号と被乗数との演算は、シフト演算やビット反転演算などの単純な演算になる。
【００１７】
図１２は、ブースの符号の各値に対応する部分積の符号ビット、中間ビット、最下位ビットおよび負の補正ビットの演算結果を示す図である。
なお、負の補正ビットとは、２の補数表現において正の値を−１倍して負の値に変換する際に、正の値の各ビットを反転してから最下位ビットに足される値を示すビットであり、最下位ビットと同一の重みを有している。
【００１８】
図１２に示すような演算を実現させるために、通常は、ブースの符号に対応する幾つかの制御符号が生成され、これらの制御符号に応じてシフト演算やビット反転演算などが行われる。
図１３は、２次のブースの符号に対応する制御符号の一般的な例を示す図である。
図１３に示す４つの制御符号において、符号Ａ１および符号Ａ２は被乗数のシフト演算に関する制御符号を示し、符号Ｓｇｎおよび符号／Ｓｇｎ（‘／’は反転を示す）はビット反転演算に関する制御符号を示す。
【００１９】
図１４は、図１３に示す制御符号を用いた部分積生成回路の一例を示す概略的な回路図である。
図１４に示す部分積生成回路は、３つの乗数ビット（Ｙ２ｊ−１，Ｙ２ｊ，Ｙ２ｊ＋１）に対応した４つの制御符号（Ａ１，Ａ２，Ｓｇｎ，／Ｓｇｎ）を出力するブース符号化回路ＢＥと、この４つの制御符号に応じて被乗数の各ビット（Ｘ０〜ＸＬ−１）に対するシフト演算やビット反転演算を行い、部分積の各ビット（ＰＰ０〜ＰＰＬ−１）を算出するビット回路ＢＭｉ（０≦ｉ≦Ｌ−１）とを有する。乗算器には、このような部分積生成回路が｛Ｍ／２｝個存在する。
【００２０】
また図１４の例において、ブース符号化回路ＢＥは、ｐ型ＭＯＳトランジスタ１０〜ｐ型ＭＯＳトランジスタ１３、ｎ型ＭＯＳトランジスタ２０〜ｎ型ＭＯＳトランジスタ２３、インバータ３０〜インバータ３７、およびトランスファー・ゲート５０〜トランスファー・ゲート５３を有する。
【００２１】
ｐ型ＭＯＳトランジスタ１０、ｐ型ＭＯＳトランジスタ１１、ｎ型ＭＯＳトランジスタ２０およびｎ型ＭＯＳトランジスタ２１からなる回路は、乗数のビットＹ２ｊおよびビットＹ２ｊ−１を入力とするＮＡＮＤ回路を構成している。すなわち、ｐ型ＭＯＳトランジスタ１０およびｐ型ＭＯＳトランジスタ１１のソースは共に電源Ｖｃｃに接続され、ドレインはｎ型ＭＯＳトランジスタ２０およびｎ型ＭＯＳトランジスタ２１の直列回路を介して基準電位Ｇに接続される。ｐ型ＭＯＳトランジスタ１０およびｎ型ＭＯＳトランジスタ２０のゲートには乗数のビットＹ２ｊが入力され、ｐ型ＭＯＳトランジスタ１１およびｎ型ＭＯＳトランジスタ２１のゲートには乗数のビットＹ２ｊ−１が入力される。
ｐ型ＭＯＳトランジスタ１２、ｐ型ＭＯＳトランジスタ１３、ｎ型ＭＯＳトランジスタ２２およびｎ型ＭＯＳトランジスタ２３からなる回路は、乗数のビットＹ２ｊおよびビットＹ２ｊ−１を入力とするＮＯＲ回路を構成している。すなわちｎ型ＭＯＳトランジスタ２２およびｎ型ＭＯＳトランジスタ２３のソースは共に基準電位Ｇに接続され、ドレインはｐ型ＭＯＳトランジスタ１２およびｐ型ＭＯＳトランジスタ１３の直列回路を介して電源Ｖｃｃに接続される。ｎ型ＭＯＳトランジスタ２２およびｐ型ＭＯＳトランジスタ１２のゲートには乗数のビットＹ２ｊが入力され、ｎ型ＭＯＳトランジスタ２３およびｐ型ＭＯＳトランジスタ１３のゲートには乗数のビットＹ２ｊ−１が入力される。
【００２２】
上述したＮＡＮＤ回路の出力は、トランスファー・ゲート５０を介してインバータ３３に入力される。上述したＮＯＲ回路の出力は、インバータ３４において反転された後、トランスファー・ゲート５１を介してインバータ３３に入力される。このインバータ３３から、制御符号Ａ２が出力される。トランスファー・ゲート５０の負入力およびトランスファー・ゲート５１の正入力には、乗数のビットＹ２ｊ＋１が入力され、トランスファー・ゲート５０の正入力およびトランスファー・ゲート５１の負入力には、乗数のビットＹ２ｊ＋１がインバータ３２により反転されて入力される。なお、トランスファー・ゲートは、正入力にハイレベル、負入力にローレベルの信号が入力された場合に導通し、この逆のレベルが入力された場合に開放するスイッチとして動作する。
【００２３】
インバータ３５〜インバータ３７、トランスファー・ゲート５２およびトランスファー・ゲート５３からなる回路は、乗数のビットＹ２ｊおよび乗数のビットＹ２ｊ−１を入力とする排他的ＯＲ回路を構成している。すなわち、乗数のビットＹ２ｊは、トランスファー・ゲート５２を介してインバータ３７に入力されるとともに、インバータ３６において反転された後、トランスファー・ゲート５３を介してインバータ３７に入力される。このインバータ３７から、制御符号Ａ１が出力される。トランスファー・ゲート５２の正入力およびトランスファー・ゲート５３の負入力には、乗数のビットＹ２ｊ−１が入力され、トランスファー・ゲート５２の負入力およびトランスファー・ゲート５３の正入力には、乗数のビットＹ２ｊ−１がインバータ３５により反転されて入力される。
【００２４】
乗数のビットＹ２ｊ＋１がインバータ３０において反転されて制御符号／Ｓｇｎが生成され、この制御符号／Ｓｇｎがさらにインバータ３１において反転されて制御符号Ｓｇｎが生成される。
【００２５】
また図１４の例において、最下位ビットを除く部分積の各ビット（ＰＰ１〜ＰＰＬ−１）に対応したビット回路ＢＭ１〜ビット回路ＢＭＬ−１は、ｐ型ＭＯＳトランジスタ１６〜ｐ型ＭＯＳトランジスタ１９、ｎ型ＭＯＳトランジスタ２６〜ｎ型ＭＯＳトランジスタ２９、インバータ４０、インバータ４１、トランスファー・ゲート５６およびトランスファー・ゲート５７を有する。
【００２６】
ｐ型ＭＯＳトランジスタ１６およびｐ型ＭＯＳトランジスタ１８の並列回路と、ｐ型ＭＯＳトランジスタ１７およびｐ型ＭＯＳトランジスタ１９の並列回路とが、電源ＶｃｃとノードＮ１との間に直列に接続される。また、ｎ型ＭＯＳトランジスタ２６およびｎ型ＭＯＳトランジスタ２７の直列回路と、ｎ型ＭＯＳトランジスタ２８およびｎ型ＭＯＳトランジスタ２９の直列回路とが、ノードＮ１と基準電位Ｇとの間に並列に接続される。ｐ型ＭＯＳトランジスタ１６およびｎ型ＭＯＳトランジスタ２８のゲートには制御符号Ａ１が入力され、ｐ型ＭＯＳトランジスタ１７およびｎ型ＭＯＳトランジスタ２６のゲートには制御符号Ａ２が入力される。また、ｐ型ＭＯＳトランジスタ１９およびｎ型ＭＯＳトランジスタ２７には被乗数の下位側ビットＸｉ−１が入力され、ｐ型ＭＯＳトランジスタ１８およびｎ型ＭＯＳトランジスタ２９のゲートには被乗数の上位側ビットＸｉが入力される。
【００２７】
ノードＮ１から出力される信号は、トランスファー・ゲート５６を介してインバータ４１に入力されるとともに、インバータ４０において反転された後、トランスファー・ゲート５７を介してインバータ４１に入力される。このインバータ４１から、部分積のビット信号ＰＰｉが出力される。トランスファー・ゲート５６の負入力およびトランスファー・ゲート５７の正入力には制御符号Ｓｇｎが入力され、トランスファー・ゲート５６の正入力およびトランスファー・ゲート５７の負入力には制御符号／Ｓｇｎが入力される。
【００２８】
また、図１４の例において、部分積の最下位ビットＰＰ０に対応したビット回路ＢＭ０は、ｐ型ＭＯＳトランジスタ１４、ｐ型ＭＯＳトランジスタ１５、ｎ型ＭＯＳトランジスタ２４、ｎ型ＭＯＳトランジスタ２５、インバータ３８、インバータ３９、トランスファー・ゲート５４およびトランスファー・ゲート５５を有する。
【００２９】
このうち、ｐ型ＭＯＳトランジスタ１４、ｐ型ＭＯＳトランジスタ１５、ｎ型ＭＯＳトランジスタ２４およびｎ型ＭＯＳトランジスタ２５からなる回路は、被乗数の最下位ビットＸ０および制御符号Ａ１を入力とするＮＡＮＤ回路を構成している。すなわち、ｐ型ＭＯＳトランジスタ１４およびｐ型ＭＯＳトランジスタ１５のソースが電源Ｖｃｃに接続され、ドレインがｎ型ＭＯＳトランジスタ２４およびｎ型ＭＯＳトランジスタ２５の直列回路を介して基準電位Ｇに接続される。ｐ型ＭＯＳトランジスタ１４およびｎ型ＭＯＳトランジスタ２４のゲートには制御符号Ａ１が入力され、ｐ型ＭＯＳトランジスタ１５およびｎ型ＭＯＳトランジスタ２５のゲートには被乗数の最下位ビットＸ０が入力される。
【００３０】
上述したＮＡＮＤ回路の出力は、トランスファー・ゲート５４を介してインバータ３９に入力されるとともに、インバータ３８において反転された後、トランスファー・ゲート５５を介してインバータ３９に入力される。このインバータ３９から、部分積の最下位ビットＰＰ０が出力される。トランスファー・ゲート５４の負入力およびトランスファー・ゲート５５の正入力には制御符号Ｓｇｎが入力され、トランスファー・ゲート５４の正入力およびトランスファー・ゲート５５の負入力には制御符号／Ｓｇｎが入力される。
【００３１】
上述した構成を有する図１４の部分積生成回路において、制御符号Ａ１、制御符号Ａ２および制御符号Ｓｇｎはそれぞれ次の論理式で表される。
【００３２】
【数５】
0003663186.tif 000006
【００３３】
制御符号Ａ１が値‘１’かつ制御符号Ａ２が値‘０’の場合、ｐ型ＭＯＳトランジスタ１７が導通し、ｎ型ＭＯＳトランジスタ２６が開放することから、被乗数の下位側ビットＸｉ−１を入力とするインバータが非活性化されるとともに、ｐ型ＭＯＳトランジスタ１６が開放し、ｎ型ＭＯＳトランジスタ２８が導通することから、被乗数の上位側ビットＸｉを入力とするインバータが活性化される。したがって、ノードＮ１からは被乗数の上位側ビットＸｉの反転信号が出力される。
この場合において、制御符号Ｓｇｎが値‘０’かつ制御符号／Ｓｇｎが値‘１’とすると、トランスファー・ゲート５６が導通して、部分積のビットＰＰｉはノードＮ１の信号が反転された信号、すなわち、被乗数の上位側ビットＸｉと等しい値になる。制御符号Ｓｇｎが値‘１’かつ制御符号／Ｓｇｎが値‘０’とすると、トランスファー・ゲート５７が導通して、部分積のビットＰＰｉは被乗数の上位側ビットＸｉを反転させた値に等しくなる。
【００３４】
なお、制御符号Ａ１が値‘１’の場合、乗数のビットＹ２ｊおよび乗数のビットＹ２ｊ−１が異符号となって、式（６）の第１項および第２項が何れも値‘０’になるので、制御符号Ａ２は必ず値‘０’になる。
【００３５】
制御符号Ａ１が値‘０’かつ制御符号Ａ２が値‘１’の場合、上述とは逆に、被乗数の下位側ビットＸｉ−１を入力とするインバータが活性化されるとともに、被乗数の上位側ビットＸｉを入力とするインバータが非活性化されるため、ノードＮ１からは被乗数の下位側ビットＸｉ−１の反転信号が出力される。
この場合において、制御符号Ｓｇｎが値‘０’かつ制御符号／Ｓｇｎが値‘１’とすると、トランスファー・ゲート５６が導通して、部分積のビットＰＰｉは被乗数の下位側ビットＸｉ−１と等しい値になり、制御符号Ｓｇｎが値‘１’かつ制御符号／Ｓｇｎが値‘０’とすると、部分積のビットＰＰｉは被乗数の下位側ビットＸｉ−１を反転させた値に等しくなる。
【００３６】
制御符号Ａ１および制御符号Ａ２が何れも値‘０’の場合、ｐ型ＭＯＳトランジスタ１６およびｐ型ＭＯＳトランジスタ１７が導通し、ｎ型ＭＯＳトランジスタ２６およびｎ型ＭＯＳトランジスタ２８が開放することから、ノードＮ１はハイレベル状態、すなわち値‘１’となる。
この場合において、制御符号Ｓｇｎが値‘０’かつ制御符号／Ｓｇｎが値‘１’とすると、トランスファー・ゲート５６が導通して、部分積のビットＰＰｉは常に値‘０’となり、制御符号Ｓｇｎが値‘１’かつ制御符号／Ｓｇｎが値‘０’とすると、部分積のビットＰＰｉは常に値‘１’となる。
【００３７】
以上の動作説明はビット回路ＢＭ１〜ビット回路ＢＭＬ−１に関するものであるが、最下位ビットのビット回路ＢＭ０では、被乗数の下位側ビットＸｉ−１として値‘０’を上述のビット回路ＢＭ１〜ビット回路ＢＭＬ−１に入力した場合と同等の動作になる。
また、負の補正ビットとしては、制御符号Ｓｇｎがそのまま出力される。
【００３８】
【発明が解決しようとする課題】
ところで、図１４に示す部分積生成回路では、部分積の出力値の符号を制御するための制御符号Ｓｇｎおよび制御符号／Ｓｇｎがビット回路の最終段に用いられており、部分積の出力値を被乗数のビット値の１倍、２倍または０倍に制御するための制御符号Ａ１および制御符号Ａ２がその前段の回路に用いられている。また、制御符号Ｓｇｎおよび制御符号／Ｓｇｎはインバータだけの単純な回路で高速に生成されるのに対して、制御符号Ａ１および制御符号Ａ２はそれよりもトランジスタの段数が多い複雑な回路で生成される。
したがって、最終段回路の制御符号（Ｓｇｎ，／Ｓｇｎ）がその前段回路の制御符号（Ａ１，Ａ２）よりも高速に生成されることになり、最終段回路の演算処理は前段回路の処理結果が得られるまで待たされてしまう。こうした演算処理の無駄な待ち時間が存在するため、図１４に示す部分積生成回路では演算速度の向上が十分に図られていない問題がある。
【００３９】
また、図１３の関係からも分かるように、図１４の部分積生成回路では、２次のブースの符号Ｚｊが値‘０’となる場合において出力値に２種類の表現が存在している。すなわち、制御符号Ａ１、制御符号Ａ２および制御符号Ｓｇｎが全て値‘０’の場合、出力値は符号ビットおよび負の補正ビットを含めて全ビット値‘０’になり、制御符号Ａ１および制御符号Ａ２が値‘０’で制御符号Ｓｇｎが値‘１’の場合、出力値は全ビット値‘１’になる。このため、部分積の符号を最終段で決定することが必要になり、演算処理の順序を入れ替えることができない。
【００４０】
加えて、等価な出力値に２種類の表現が存在するということは、生成される部分積の値が変化しないにも関わらず部分積生成回路内において信号の状態が遷移する可能性があることを意味する。一般に、ＣＭＯＳ回路の消費電力Ｐは、信号遷移率α、キャパシタンスＣ、電源電圧Ｖおよび動作周波数ｆを用いて、
Ｐ＝αＣＶ２ｆ
で与えられるので、このような信号状態の遷移により信号遷移率αが大きくなると、消費電力Ｐを無駄に増大させてしまう問題が生じる。
【００４１】
本発明はかかる事情に鑑みてなされたものであり、その目的は、演算速度をより高速化することができる部分積生成回路および乗算器を提供することにある。
【００４２】
【課題を解決するための手段】
上記の目的を達成するため、本発明の第１の観点に係る部分積生成回路は、供給される乗数データを最上位ビットから２ビットごとに分割してできる複数の２ビット・データのうちの１つと、当該２ビット・データの下位側に隣接する１ビットの隣接データとに基づいて、供給される被乗数データに所定の演算を行い、当該２ビット・データに対応する部分積を生成する乗算器の部分積生成回路であって、上記２ビット・データの下位データと、当該下位データに隣接する上記隣接データとの排他的論理和を演算して第１の制御符号を生成し、当該下位データと当該隣接データとの排他的反転論理和を演算して第２の制御符号を生成する第１の符号化回路と、上記２ビット・データの上位データと下位データとの排他的反転論理和を演算し、当該演算結果と上記第２の制御符号との反転論理積、または、当該演算結果の反転結果と上記第１の制御符号との論理和を演算して、第３の制御符号を生成する第２の符号化回路と、上記第１の制御符号および上記第２の制御符号に応じて、上記被乗算データの隣接した２ビットのデータのうちの上位データまたは下位データを出力する複数の選択回路と、上記２ビット・データの上位データに応じて、上記複数の選択回路から出力される被乗数データのそれぞれのビットの論理値を反転させる複数のビット反転回路と、上記複数のビット反転回路から出力される被乗数データのそれぞれのビットと、上記第３の制御符号との反転論理積を演算して、上記部分積のビット・データを出力する複数の出力回路とを有する。上記出力回路は、上記部分積のビット・データを出力する出力ノードと、電源ラインと上記出力ノードとの間に並列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｐ型ＭＯＳトランジスタおよび第２のｐ型ＭＯＳトランジスタと、上記出力ノードと基準電位ラインとの間に直列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｎ型ＭＯＳトランジスタおよび第２のｎ型ＭＯＳトランジスタとを含む。
【００４３】
好適には、上記第１の符号化回路は、何れか一方に上記下位データを入力し、他方に上記隣接データを入力する第１のノードおよび第２のノードと、上記第１のノードの論理値を反転させる第１のインバータと、上記第２のノードの論理値を反転させる第２のインバータと、上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて導通または開放し、導通状態において上記第２のノードの入力信号を出力する第１のスイッチと、上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチとは逆の論理値で導通または開放し、導通状態において上記第２のインバータの出力信号を出力する第２のスイッチと、上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチとは逆の論理値で導通または開放し、導通状態において上記第２のノードの入力信号を出力する第３のスイッチと、上記第１のノードおよび上記第１のインバータの出力信号の論理値に応じて、上記第１のスイッチと同一の論理値で導通または開放し、導通状態において上記第２のインバータの出力信号を出力する第４のスイッチと、上記第１のスイッチおよび上記第２のスイッチの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第１の制御符号として出力する第３のインバータと、上記第３のスイッチおよび上記第４のスイッチの出力信号を受けて、当該出力信号の論理値を反転させた信号を上記第２の制御符号として出力する第４のインバータとを含む。
【００４４】
本発明の第２の観点に係る乗算器は、供給される乗数データを最上位ビットから２ビットごとに分割してできる複数の２ビット・データと、当該複数の２ビット・データの下位側にそれぞれ隣接する１ビットの隣接データとに基づいて、供給される被乗数データに所定の演算を行い、それぞれの２ビット・データに対応する部分積を生成する複数の部分積生成回路と、当該複数の部分積生成回路において生成された部分積を加算する加算回路とを有する乗算器であって、上記部分積生成回路が、上記２ビット・データの下位データと、当該下位データに隣接する上記隣接データとの排他的論理和を演算して第１の制御符号を生成し、当該下位データと当該隣接データとの排他的反転論理和を演算して第２の制御符号を生成する第１の符号化回路と、上記２ビット・データの上位データと下位データとの排他的反転論理和を演算し、当該演算結果と上記第２の制御符号との反転論理積、または、当該演算結果の反転結果と上記第１の制御符号との論理和を演算して、第３の制御符号を生成する第２の符号化回路と、上記第１の制御符号および上記第２の制御符号に応じて、上記被乗算データの隣接した２ビットのデータのうちの上位データまたは下位データを出力する複数の選択回路と、上記２ビット・データの上位データに応じて、上記複数の選択回路から出力される被乗数データのそれぞれのビットの論理値を反転させる複数のビット反転回路と、上記複数のビット反転回路から出力される被乗数データのそれぞれのビットと、上記第３の制御符号との反転論理積を演算して、上記部分積のビット・データを出力する複数の出力回路とを含む。上記出力回路は、上記部分積のビット・データを出力する出力ノードと、電源ラインと上記出力ノードとの間に並列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｐ型ＭＯＳトランジスタおよび第２のｐ型ＭＯＳトランジスタと、上記出力ノードと基準電位ラインとの間に直列に接続され、一方のゲートに上記反転ビット回路から出力されるビット・データを入力し、他方のゲートに上記第３の制御符号を入力する第１のｎ型ＭＯＳトランジスタおよび第２のｎ型ＭＯＳトランジスタとを含む。
【００４５】
【発明の実施の形態】
本発明の実施形態について、図面を参照して説明する。
図１は、本発明の実施形態に係る乗算器における、部分積生成回路の構成例を示す概略的なブロック図である。
図１の例において、乗算器にはＬビットの被乗数データとＭビットの乗数データとが入力され、Ｎ個（Ｎ＝Ｍ／２）の部分積（ＳＰ０〜ＳＰ（Ｎ−１））が生成される。部分積生成回路は、このＮ個の部分積に対してそれぞれ設けられる。部分積ＳＰｊ（０≦ｊ≦Ｎ−１）を生成する部分積生成回路は、ブース符号化回路Ｅｊと、Ｌ個のビット回路（Ｐｊ０〜Ｐｊ（Ｌ−１））とを有する。
【００４６】
ブース符号化回路Ｅｊは、乗数データの３つの乗数ビット（Ｙ２ｊ−１，Ｙ２ｊ，Ｙ２ｊ＋１）を入力し、これに応じた制御符号ＳＣｊを出力する。ただし、乗数の最下位ビットＹ０を入力するブース符号化回路Ｅ０は、ビットＹ２ｊ−１として値‘０’の信号を入力する。
【００４７】
ビット回路Ｐｊｉ（０≦ｉ≦Ｌ−１）は、被乗数のビットＸｉおよびビットＸｉ−１を入力して、これに制御符号ＳＣｊに応じた演算を行い、部分積のビットＳＰｊｉを出力する。ただし、部分積の最下位ビットに対応するビット回路Ｐｊ０は、部分積のビットＳＰｊ０に加えて、負の補正ビットに対応するビットＳＰｊＣも出力する。
【００４８】
図２は、図１に示した部分積生成回路のより詳細な構成例を示す概略的な回路図であり、図１と同一の符号は同一の構成要素を示す。
図２の例において、第１の符号化回路Ｅｊ１、第２の符号化回路Ｅｊ２および第３の符号化回路Ｅｊ３は、上述したブース符号化回路Ｅｊに含まれる。
第１の符号化回路Ｅｊ１は、本発明の第１の符号化回路の一実施形態である。第２の符号化回路Ｅｊ２は、本発明の第２の符号化回路の一実施形態である。第３の符号化回路Ｅｊ３は、本発明の第３の符号化回路の一実施形態である。
【００４９】
第１の符号化回路Ｅｊ１は、インバータ３０７〜インバータ３１０およびトランスファー・ゲート４０５〜トランスファー・ゲート４０８を有する。
インバータ３０７は、本発明の第１のインバータの一実施形態である。
インバータ３０８は、本発明の第２のインバータの一実施形態である。
トランスファー・ゲート４０５は、本発明の第１のスイッチの一実施形態である。
トランスファー・ゲート４０６は、本発明の第２のスイッチの一実施形態である。
トランスファー・ゲート４０８は、本発明の第３のスイッチの一実施形態である。
トランスファー・ゲート４０７は、本発明の第４のスイッチの一実施形態である。
インバータ３０９は、本発明の第３のインバータの一実施形態である。
インバータ３１０は、本発明の第４のインバータの一実施形態である。
【００５０】
第２の符号化回路Ｅｊ２は、インバータ３０５、インバータ３０６、トランスファー・ゲート４０３、トランスファー・ゲート４０４およびＮＡＮＤ回路５００を有する。
第３の符号化回路Ｅｊ３は、インバータ３０１〜インバータ３０４、トランスファー・ゲート４０１およびトランスファー・ゲート４０２を有する。
【００５１】
ビット回路Ｐｊｉ（ただしビット回路Ｐｊ０を除く）は、ｐ型ＭＯＳトランジスタ１０８〜ｐ型ＭＯＳトランジスタ１１１、ｎ型ＭＯＳトランジスタ２０７〜ｎ型ＭＯＳトランジスタ２１０、インバータ３１２およびトランスファー・ゲート４１１〜トランスファー・ゲート４１３を有する。
トランスファー・ゲート４１１およびトランスファー・ゲート４１２を含む回路は、本発明の選択回路の一実施形態である。
インバータ３１２、トランスファー・ゲート４１３、ｐ型ＭＯＳトランジスタ１０８、ｐ型ＭＯＳトランジスタ１０９、ｎ型ＭＯＳトランジスタ２０７およびｎ型ＭＯＳトランジスタ２０８を含む回路は、本発明のビット反転回路の一実施形態である。
ｐ型ＭＯＳトランジスタ１１０、ｐ型ＭＯＳトランジスタ１１１、ｎ型ＭＯＳトランジスタ２０９およびｎ型ＭＯＳトランジスタ２１０を含む回路は、本発明の出力回路の一実施形態である。
【００５２】
ビット回路Ｐｊ０は、ｐ型ＭＯＳトランジスタ１０１〜１０２、ｐ型ＭＯＳトランジスタ１０４〜ｐ型ＭＯＳトランジスタ１０７、ｎ型ＭＯＳトランジスタ２０１〜ｎ型ＭＯＳトランジスタ２０６、ｎ型ＭＯＳトランジスタ２１３、インバータ３１１、トランスファー・ゲート４０９およびトランスファー・ゲート４１０を有する。
トランスファー・ゲート４０９およびn型MOSトランジスタ２１３を含む回路は、本発明の選択回路の一実施形態である。
インバータ３１１、トランスファー・ゲート４１０、ｐ型ＭＯＳトランジスタ１０４、ｐ型ＭＯＳトランジスタ１０５、ｎ型ＭＯＳトランジスタ２０３およびｎ型ＭＯＳトランジスタ２０４を含む回路は、本発明のビット反転回路の一実施形態である。
ｐ型ＭＯＳトランジスタ１０６、ｐ型ＭＯＳトランジスタ１０７、ｎ型ＭＯＳトランジスタ２０５およびｎ型ＭＯＳトランジスタ２０６を含む回路は、本発明の出力回路の一実施形態である。
【００５３】
ここで、上述した構成を有する図２の部分積生成回路の接続関係について説明する。
第１の符号化回路Ｅｊ１において、インバータ３０７〜インバータ３０９、トランスファー・ゲート４０５およびトランスファー・ゲート４０６は、乗数のビットＹ２ｊおよびビットＹ２ｊ−１を入力とする排他的ＯＲ回路を構成している。すなわち、乗数のビットＹ２ｊは、トランスファー・ゲート４０５を介してインバータ３０９に入力されるとともに、インバータ３０８において反転された後、トランスファー・ゲート４０６を介してインバータ３０９に入力される。このインバータ３０９から、第１の制御符号Ａ１が出力される。トランスファー・ゲート４０５の正入力およびトランスファー・ゲート４０６の負入力には乗数のビットＹ２ｊ−１が入力され、トランスファー・ゲート４０５の負入力およびトランスファー・ゲート４０６の正入力には乗数のビットＹ２ｊ−１がインバータ３０７により反転されて入力される。
また、インバータ３０７、インバータ３０８、インバータ３１０、トランスファー・ゲート４０７およびトランスファー・ゲート４０８は、乗数のビットＹ２ｊおよびビットＹ２ｊ−１を入力とする排他的ＮＯＲ回路を構成している。すなわち、乗数のビットＹ２ｊは、トランスファー・ゲート４０８を介してインバータ３１０に入力されるとともに、インバータ３０８において反転された後、トランスファー・ゲート４０７を介してインバータ３１０に入力される。このインバータ３１０から、第２の制御符号Ａ２が出力される。トランスファー・ゲート４０７の正入力およびトランスファー・ゲート４０８の負入力には乗数のビットＹ２ｊ−１が入力され、トランスファー・ゲート４０７の負入力およびトランスファー・ゲート４０８の正入力には乗数のビットＹ２ｊ−１がインバータ３０７により反転されて入力される。
【００５４】
第２の符号化回路Ｅｊ２において、インバータ３０５、インバータ３０６、トランスファー・ゲート４０３およびトランスファー・ゲート４０４は、乗数のビットＹ２ｊおよびビットＹ２ｊ＋１を入力とする排他的ＮＯＲ回路を構成している。すなわち、乗数のビットＹ２ｊは、トランスファー・ゲート４０４を介してＮＡＮＤ回路５００に入力されるとともに、インバータ３０５において反転された後、トランスファー・ゲート４０３を介してＮＡＮＤ回路５００に入力される。トランスファー・ゲート４０３の負入力およびトランスファー・ゲート４０４の正入力には乗数のビットＹ２ｊ＋１が入力され、トランスファー・ゲート４０３の正入力およびトランスファー・ゲート４０４の負入力には乗数のビットＹ２ｊ＋１がインバータ３０６により反転されて入力される。
この排他的ＮＯＲ回路の出力信号と第２の制御符号Ａ２とがＮＡＮＤ回路５００に入力され、その出力から第３の制御符号／ＺＤＴが出力される。
【００５５】
第３の符号化回路Ｅｊ３において、インバータ３０１〜インバータ３０３、トランスファー・ゲート４０１およびトランスファー・ゲート４０２は、ビット反転信号ＡｘＳおよび乗数のビットＹ２ｊ＋１を入力とする排他的ＯＲ回路を構成している。すなわち、乗数のビットＹ２ｊ＋１は、トランスファー・ゲート４０１を介してインバータ３０３に入力されるとともに、インバータ３０２において反転された後、トランスファー・ゲート４０２を介してインバータ３０３に入力される。このインバータ３０３から、第４の制御符号Ｓｇｎが出力される。トランスファー・ゲート４０１の正入力およびトランスファー・ゲート４０２の負入力にはビット反転信号ＡｘＳが入力され、トランスファー・ゲート４０１の負入力およびトランスファー・ゲート４０２の正入力にはビット反転信号ＡｘＳがインバータ３０１により反転されて入力される。
また、第４の制御符号Ｓｇｎがインバータ３０４において反転されて、第５の制御符号／Ｓｇｎが生成される。
【００５６】
ビット回路Ｐｊｉ（ただしｉ＝０を除く）において、被乗数のビットＸｉ−１は、トランスファー・ゲート４１１を介してインバータ３１２に入力される。被乗数のビットＸｉは、トランスファー・ゲート４１２を介してインバータ３１２に入力される。トランスファー・ゲート４１１の負入力およびトランスファー・ゲート４１２の正入力には第１の制御符号Ａ１が入力され、トランスファー・ゲート４１１の正入力およびトランスファー・ゲート４１２の負入力には第２の制御符号Ａ２が入力される。
インバータ３１２の出力ノードとノードＮ１１との間にはトランスファー・ゲート４１３が接続され、その負入力に第４の制御符号Ｓｇｎが、正入力に第５の制御符号／Ｓｇｎがそれぞれ入力される。電源ＶｃｃとノードＮ１１との間には、ｐ型ＭＯＳトランジスタ１０８およびｐ型ＭＯＳトランジスタ１０９の直列回路が接続され、ノードＮ１１と基準電位Ｇとの間には、ｎ型ＭＯＳトランジスタ２０７およびｎ型ＭＯＳトランジスタ２０８の直列回路が接続される。ｐ型ＭＯＳトランジスタ１０８のゲートには第５の制御符号／Ｓｇｎが入力され、ｎ型ＭＯＳトランジスタ２０８のゲートには第４の制御符号Ｓｇｎが入力される。また、ｐ型ＭＯＳトランジスタ１０９およびｎ型ＭＯＳトランジスタ２０７のゲートには、インバータ３１２からの出力信号が入力される。
ｐ型ＭＯＳトランジスタ１１０、ｐ型ＭＯＳトランジスタ１１１、ｎ型ＭＯＳトランジスタ２０９およびｎ型ＭＯＳトランジスタ２１０は、第３の制御符号／ＺＤＴとノードＮ１１からの出力信号とを入力とするＮＡＮＤ回路を構成している。すなわち、電源ＶｃｃとノードＮ１２との間にｐ型ＭＯＳトランジスタ１１０およびｐ型ＭＯＳトランジスタ１１１の並列回路が接続され、ノードＮ１２と基準電位Ｇとの間にｎ型ＭＯＳトランジスタ２０９およびｎ型ＭＯＳトランジスタ２１０の直列回路が接続される。ｐ型ＭＯＳトランジスタ１１１およびｎ型ＭＯＳトランジスタ２１０のゲートには第３の制御符号／ＺＤＴが入力され、ｐ型ＭＯＳトランジスタ１１０およびｎ型ＭＯＳトランジスタ２０９のゲートには、ノードＮ１１からの出力信号が入力される。
このＮＡＮＤ回路から、部分積のビット・データＳＰｊｉが出力される。
【００５７】
ビット回路Ｐｊ０において、被乗数のビットＸ０はトランスファー・ゲート４０９を介してインバータ３１１に入力される。インバータ３１１の入力と基準電位Ｇとの間にはｎ型ＭＯＳトランジスタ２１３が接続され、そのゲートには第２の制御符号Ａ２が入力される。
インバータ３１１の出力ノードとノードＮ１３との間にはトランスファー・ゲート４１０が接続され、その負入力に第４の制御符号Ｓｇｎが、正入力に第５の制御符号／Ｓｇｎがそれぞれ入力される。電源ＶｃｃとノードＮ１３との間には、ｐ型ＭＯＳトランジスタ１０４およびｐ型ＭＯＳトランジスタ１０５の直列回路が接続され、ノードＮ１３と基準電位Ｇとの間には、ｎ型ＭＯＳトランジスタ２０３およびｎ型ＭＯＳトランジスタ２０４の直列回路が接続される。ｐ型ＭＯＳトランジスタ１０４のゲートには第５の制御符号／Ｓｇｎが入力され、ｎ型ＭＯＳトランジスタ２０４のゲートには第４の制御符号Ｓｇｎが入力される。また、ｐ型ＭＯＳトランジスタ１０５およびｎ型ＭＯＳトランジスタ２０３のゲートには、インバータ３１１からの出力信号が入力される。
ｐ型ＭＯＳトランジスタ１０６、ｐ型ＭＯＳトランジスタ１０７、ｎ型ＭＯＳトランジスタ２０５およびｎ型ＭＯＳトランジスタ２０６は、第３の制御符号／ＺＤＴとノードＮ１３からの出力信号とを入力とするＮＡＮＤ回路を構成している。すなわち、電源ＶｃｃとノードＮ１４との間にｐ型ＭＯＳトランジスタ１０６およびｐ型ＭＯＳトランジスタ１０７の並列回路が接続され、ノードＮ１４と基準電位Ｇとの間にｎ型ＭＯＳトランジスタ２０５およびｎ型ＭＯＳトランジスタ２０６の直列回路が接続される。ｐ型ＭＯＳトランジスタ１０７およびｎ型ＭＯＳトランジスタ２０６のゲートには第３の制御符号／ＺＤＴが入力され、ｐ型ＭＯＳトランジスタ１０６およびｎ型ＭＯＳトランジスタ２０５のゲートには、ノードＮ１３からの出力信号が入力される。
このＮＡＮＤ回路から、部分積のビット・データＳＰｊ０が出力される。
【００５８】
また、ｐ型ＭＯＳトランジスタ１０１、ｐ型ＭＯＳトランジスタ１０２、ｎ型ＭＯＳトランジスタ２０１およびｎ型ＭＯＳトランジスタ２０２は、第３の制御符号／ＺＤＴおよび第５の制御符号／Ｓｇｎを入力とするＮＡＮＤ回路を構成している。すなわち、電源ＶｃｃとノードＮ１５との間にｐ型ＭＯＳトランジスタ１０１およびｐ型ＭＯＳトランジスタ１０２の並列回路が接続され、ノードＮ１５と基準電位Ｇとの間にｎ型ＭＯＳトランジスタ２０１およびｎ型ＭＯＳトランジスタ２０２の直列回路が接続される。ｐ型ＭＯＳトランジスタ１０１およびｎ型ＭＯＳトランジスタ２０１のゲートには第３の制御符号／ＺＤＴが入力され、ｐ型ＭＯＳトランジスタ１０２およびｎ型ＭＯＳトランジスタ２０２のゲートには第５の制御符号／Ｓｇｎが入力される。
このＮＡＮＤ回路から、部分積のビット・データＳＰｊ０と同じ重みを有した負の補正ビット・データＳＰｊＣが出力される。
【００５９】
図３は、本発明の実施形態に係る乗算器における、部分積の加算回路の構成例を示す概略的なブロック図である。
図３に示す部分積の加算回路は、ワレス回路Ｗ０〜ワレス回路ＷＬ＋Ｍ−１および加算器ＡＤＤを有する。
ワレス回路Ｗｍ（０≦ｍ≦Ｌ＋Ｍ−１）は、図２の部分積生成回路において生成された部分積を加算する際において、互いに加算される同位の桁のビット・データ同士を集めた信号ＳＤｍを入力し、ワレスの木の構成法により配置された内部の複数の加算器でこれらの加算を行う。この加算において、下位桁のワレス回路Ｗｍ−１から出力される桁上がり信号Ｃｍを用いるとともに、上位桁のワレス回路Ｗｍ＋１へ桁上がり信号Ｃｍ＋１を出力する。
加算器ＡＤＤは、ワレス回路Ｗ０〜ワレス回路ＷＬ＋Ｍ−１からそれぞれ出力される各桁の加算値と桁上がり値とを加算して、乗算結果ＳＰを出力する。
【００６０】
次に、上述した図１〜図３の構成を有する乗算器の動作について、部分積生成回路を中心に説明する。
図２の部分積生成回路における制御符号（Ａ１、Ａ２、／ＺＤＴ、Ｓｇｎ）と３ビットの乗数（Ｙ２ｊ−１、Ｙ２ｊ、Ｙ２ｊ＋１）との関係は、次の論理式で表される。
【００６１】
【数６】
0003663186.tif 000007
【００６２】
第１の制御符号Ａ１および第２の制御符号Ａ２は、ビット回路Ｐｊｉの初段回路（選択回路）において被乗数のビットＸｉまたはビットＸｉ−１の何れかを選択して、その中段回路（ビット反転回路）に供給するための制御符号である。
第３の制御符号／ＺＤＴは、ビット回路Ｐｊｉの最終段回路（出力回路）において出力値を値‘０’にするか否か決定するための制御符号である。
第４の制御符号Ｓｇｎおよび第５の制御符号／Ｓｇｎは、ビット回路Ｐｊｉの中段回路において出力値の符号を決定するための制御符号である。式（１１）からも分かるように、第３の符号化回路Ｅｊ３に入力されるビット反転信号ＡｘＳは第４の制御符号Ｓｇｎおよび第５の制御符号／Ｓｇｎの符号を反転させるための信号であり、この信号を制御することによって、乗算器の出力結果を１倍または−１倍にすることができる。
【００６３】
第３の制御符号／ＺＤＴが値‘０’の場合、ｐ型ＭＯＳトランジスタ１０１、ｐ型ＭＯＳトランジスタ１０７およびｐ型ＭＯＳトランジスタ１１１が導通し、ｎ型ＭＯＳトランジスタ２０１、ｎ型ＭＯＳトランジスタ２０６およびｎ型ＭＯＳトランジスタ２１０が開放するため、ビット回路Ｐｊｉの出力値は、負の補正ビットＳＰｊＣも含めて全て値‘１’となる。
【００６４】
第３の制御符号／ＺＤＴが値‘１’の場合には、ｐ型ＭＯＳトランジスタ１０１、ｐ型ＭＯＳトランジスタ１０７およびｐ型ＭＯＳトランジスタ１１１が開放し、ｎ型ＭＯＳトランジスタ２０１、ｎ型ＭＯＳトランジスタ２０６およびｎ型ＭＯＳトランジスタ２１０が導通するため、負の補正ビットＳＰｊＣとして第５の制御符号／Ｓｇｎの反転信号が出力され、部分積のビットＳｊ０としてノードＮ１３の反転信号が出力され、部分積のビットＳｊｉ（ただしビットＳｊ０を除く）としてノードＮ１１の反転信号が出力される。
【００６５】
第１の制御符号Ａ１が値‘１’かつ第２の制御符号Ａ２が値‘０’の場合、ビット回路Ｐｊｉ（ただしビット回路Ｐｊ０を除く）のトランスファー・ゲート４１１は開放し、トランスファー・ゲート４１２は導通するため、インバータ３１２には被乗数のビットＸｉが入力される。
この場合、さらに第４の制御符号Ｓｇｎが値‘０’かつ第５の制御符号／Ｓｇｎが値‘１’であるとすると、トランスファー・ゲート４１３が導通するとともに、ｐ型ＭＯＳトランジスタ１０８およびｎ型ＭＯＳトランジスタ２０８が開放してｐ型ＭＯＳトランジスタ１０９およびｎ型ＭＯＳトランジスタ２０７のＣＭＯＳインバータが非活性状態となる。したがって、ノードＮ１１には、インバータ３１２を通過した被乗数のビットＸｉの反転信号が出力され、ビット回路Ｐｊｉの出力には、更にその反転信号、すなわち、被乗数のビットＸｉと同一値の信号が出力される。
また、第４の制御符号Ｓｇｎが値‘１’かつ第５の制御符号／Ｓｇｎが値‘０’であるとすると、トランスファー・ゲート４１３が開放するとともに、ｐ型ＭＯＳトランジスタ１０８およびｎ型ＭＯＳトランジスタ２０８が導通してｐ型ＭＯＳトランジスタ１０９およびｎ型ＭＯＳトランジスタ２０７のＣＭＯＳインバータが活性状態となる。したがって、ノードＮ１１には、インバータを２段通過した被乗数のビットＸｉと同一値の信号が出力され、ビット回路Ｐｊｉの出力にはその反転信号、すなわち、被乗数のビットＸｉの反転信号が出力される。
【００６６】
また、第１の制御符号Ａ１が値‘０’かつ第２の制御符号Ａ２が値‘１’の場合、トランスファー・ゲート４１１は導通し、トランスファー・ゲート４１２は開放するため、インバータ３１２には被乗数のビットＸｉ−１が入力される。
この場合、さらに第４の制御符号Ｓｇｎが値‘０’かつ第５の制御符号／Ｓｇｎが値‘１’であるとすると、ノードＮ１１には、インバータを１段通過した被乗数のビットＸｉ−１の反転信号が出力され、ビット回路Ｐｊｉの出力には、更にその反転信号、すなわち、被乗数のビットＸｉ−１と同一値の信号が出力される。
また、第４の制御符号Ｓｇｎが値‘１’かつ第５の制御符号／Ｓｇｎが値‘０’であるとすると、ノードＮ１１には、インバータを２段通過した被乗数のビットＸｉ−１と同一値の信号が出力され、ビット回路Ｐｊｉの出力にはその反転信号、すなわち、被乗数のビットＸｉ−１の反転信号が出力される。
【００６７】
乗数の最下位ビットに対応するビット回路Ｐｊ０では、被乗数の下位側ビットＸｉ−１として値‘０’を上述のビット回路Ｐｊｉに入力した場合と同等の動作になる。
すなわち、第１の制御符号Ａ１が値‘１’かつ第２の制御符号Ａ２が値‘０’の場合、インバータ３１１には被乗数のビットＸ０が入力される。したがって、第４の制御符号Ｓｇｎが値‘０’であるとすると、ビット回路Ｐｊ０の出力には被乗数のビットＸ０と同一値の信号が出力され、第４の制御符号Ｓｇｎが値‘１’であるとすると、その出力には被乗数のビットＸ０の反転信号が出力される。
また、第１の制御符号Ａ１が値‘０’かつ第２の制御符号Ａ２が値‘１’の場合、インバータ３１１には値‘０’が入力される。したがって、第４の制御符号Ｓｇｎが値‘０’であるとすると、ビット回路Ｐｊ０の出力には値‘０’が出力され、第４の制御符号Ｓｇｎが値‘１’であるとすると、その出力には値‘１’が出力される。
【００６８】
制御符号の値とビット回路Ｐｊｉの出力値との上述した関係をまとめると、図４のようになる。
図４において、”Ａｎｙ（０）”および”Ａｎｙ（１）”は、制御符号の値として任意の値を取ることが可能であることを示しており、括弧内の値が図２の例における実際の値を示している。
図４からも分かるように、第３の制御符号／ＺＤＴが値‘１’の場合、他の制御符号の値に依らず、負の補正ビットを含む部分積の全てのビットは値‘１’になる。したがって、ブースの符号が値‘０’となる場合における部分積の値が１通りに決定されるため、図１４の部分積生成回路のような信号状態の遷移が発生せず、こうした信号遷移による消費電力を削減することができる。
【００６９】
また、図２の部分積生成回路においては、式（１０）のように論理が複雑で遅延時間の大きい第３の制御符号／ＺＤＴがビット回路Ｐｊｉの最終段で用いられており、これに比べて遅延時間の小さい他の制御符号が前段の回路に用いられている。したがって、図１４の部分積生成回路のような演算処理の無駄な待ち時間が抑えられ、演算速度の向上が図られている。
このことは、最長の信号パスのトランジスタ段数を比較しても明らかである。図１４の部分積生成回路において、ブース符号化回路ＢＥの入力からビット回路ＢＭｉの出力までの最長の信号パスは、乗数のビットＹ２ｊを入力として、ｐ型ＭＯＳトランジスタ１２、ｎ型ＭＯＳトランジスタ１３、インバータ３４、トランスファー・ゲート５１、インバータ３３、ｎ型ＭＯＳトランジスタ２６、インバータ４０、トランスファー・ゲート５７およびインバータ４１を経由する信号パスであり、そのトランジスタの段数は９段である。これに対し、図２の部分積生成回路において、ブース符号化回路Ｅｊの入力からビット回路Ｐｊｉの出力までの最長の信号パスは、乗数のビットＹ２ｊ−１を入力として、インバータ３０７、トランスファー・ゲート４０５、インバータ３０９、トランスファー・ゲート４１１、インバータ３１２、ｐ型ＭＯＳトランジスタ１０９およびｎ型ＭＯＳトランジスタ２０９を経由した信号パスであり、そのトランジスタの段数は７段である。すなわち、図２の部分積生成回路は図１４の部分積生成回路にくらべて最長の信号パスのトランジスタ段数が２段少なくなっている。
【００７０】
図５は、図２および図１４の部分積生成回路における、符号化回路の入力からビット回路の出力までの遅延時間のシミュレーション結果を比較した図である。
図５のシミュレーション結果からも分かるように、図２の部分積生成回路は図１４の部分積生成回路に比べて、各ビットとも概ね６〜７％程度演算速度の向上が図られている。なお、負の補正ビットに関しては演算速度が４８％低下しているが、これは、図１４の部分積生成回路において制御符号Ｓｇｎが負の補正ビットとしてそのまま用いられるのに対し、図２の部分積生成回路においては第５の制御符号／Ｓｇｎと第３の制御符号／ＺＤＴとの論理積から負の補正ビットが生成されることによる。しかしながら、図２の部分積生成回路において低速なビットはこの負の補正ビットだけであるので、例えば図３のワレス回路Ｗｍにおいて負の補正ビットの信号パスが他のビットに比べて短くなるように回路構成を調節することにより、このような遅延時間の短縮を図ることは十分に可能である。
【００７１】
次に、上述した乗算器の他の構成例について説明する。
図６は、第２の符号化回路の他の構成例を示す概略的な回路図である。
図６に示す第２の符号化回路Ｅｊ２’は、インバータ３１３〜インバータ３１５、トランスファー・ゲート４１４、トランスファー・ゲート４１５およびＮＯＲ回路６００を有する。
この第２の符号化回路Ｅｊ２’において、乗数のビットＹ２ｊは、トランスファー・ゲート４１５を介してＮＯＲ回路６００に入力されるとともに、インバータ３１４において反転された後、トランスファー・ゲート４１４を介してＮＯＲ回路６００に入力される。トランスファー・ゲート４１４の正入力およびトランスファー・ゲート４１５の負入力には乗数のビットＹ２ｊ＋１が入力され、トランスファー・ゲート４１４の負入力およびトランスファー・ゲート４１５の正入力には乗数のビットＹ２ｊ＋１がインバータ３１３により反転されて入力される。ＮＯＲ回路６００の他方の入力には第１の制御符号Ａ１が入力され、その出力がインバータ３１５により反転されて第３の制御符号／ＺＤＴが生成される。
図６の構成においても、式（１０）と同一な論理値を有する第３の制御符号／ＺＤＴが得られる。
【００７２】
図７は、ビット回路の他の構成例を示す概略的な回路図である。
図７に示すビット回路Ｐｊｉ’は、ｐ型ＭＯＳトランジスタ１１２、ｐ型ＭＯＳトランジスタ１１３、ｎ型ＭＯＳトランジスタ２１１、ｎ型ＭＯＳトランジスタ２１２、インバータ３１６、インバータ３１７、およびトランスファー・ゲート４１６〜トランスファー・ゲート４１９を有する。
ビット回路Ｐｊｉ’（ただしｉ＝０を除く）において、被乗数のビットＸｉ−１は、トランスファー・ゲート４１６を介してインバータ３１６に入力される。被乗数のビットＸｉは、トランスファー・ゲート４１７を介してインバータ３１６に入力される。トランスファー・ゲート４１６の負入力およびトランスファー・ゲート４１７の正入力には第１の制御符号Ａ１が入力され、トランスファー・ゲート４１６の正入力およびトランスファー・ゲート４１７の負入力には第２の制御符号Ａ２が入力される。
インバータ３１６の出力信号は、トランスファー・ゲート４１９を介してノードＮ１６に入力されるとともに、インバータ３１７において反転された後、トランスファー・ゲート４１８を介してノードＮ１６に入力される。トランスファー・ゲート４１８の正入力およびトランスファー・ゲート４１９の負入力には第４の制御符号Ｓｇｎが入力され、トランスファー・ゲート４１８の負入力およびトランスファー・ゲート４１９の正入力には第５の制御符号／Ｓｇｎが入力される。
ｐ型ＭＯＳトランジスタ１１２、ｐ型ＭＯＳトランジスタ１１３、ｎ型ＭＯＳトランジスタ２１１およびｎ型ＭＯＳトランジスタ２１２は、第３の制御符号／ＺＤＴとノードＮ１６からの出力信号とを入力とするＮＡＮＤ回路を構成している。すなわち、電源ＶｃｃとノードＮ１７との間にｐ型ＭＯＳトランジスタ１１２およびｐ型ＭＯＳトランジスタ１１３の並列回路が接続され、ノードＮ１７と基準電位Ｇとの間にｎ型ＭＯＳトランジスタ２１１およびｎ型ＭＯＳトランジスタ２１２の直列回路が接続される。ｐ型ＭＯＳトランジスタ１１３およびｎ型ＭＯＳトランジスタ２１２のゲートには第３の制御符号／ＺＤＴが入力され、ｐ型ＭＯＳトランジスタ１１２およびｎ型ＭＯＳトランジスタ２１１のゲートには、ノードＮ１６からの出力信号が入力される。
【００７３】
図７のビット回路Ｐｊｉ’では、第４の制御符号Ｓｇｎおよび第５の制御符号／Ｓｇｎに応じてトランスファー・ゲート４１８またはトランスファー・ゲート４１９を導通させることにより出力値の符号を制御している点で、図２のビット回路Ｐｊｉと異なっている。この違いのため、ビット回路Ｐｊｉ’はビット回路Ｐｊｉに比べてトランジスタ段数が１段増加するが、これを部分積生成回路に適用しても、図１４の部分積生成回路に比べて最長パスのトランジスタ段数を１段少なくすることができる。また、図２のビット回路Ｐｊｉに比べて回路中に使用されるトランジスタの数を減らすことができる。
【００７４】
図８は、第１の符号化回路の他の構成例を示す概略的な回路図である。
図８に示す第１の符号化回路Ｅｊ１’は、インバータ３１８〜インバータ３２１、トランスファー・ゲート４２０およびトランスファー・ゲート４２１を有する。
第１の符号化回路Ｅｊ１’において、乗数のビットＹ２ｊは、トランスファー・ゲート４２０を介してインバータ３２０に入力されるとともに、インバータ３１８において反転された後、トランスファー・ゲート４２１を介してインバータ３２０に入力される。トランスファー・ゲート４２１の正入力およびトランスファー・ゲート４２０の負入力には乗数のビットＹ２ｊ−１が入力され、トランスファー・ゲート４２１の負入力およびトランスファー・ゲート４２０の正入力には乗数のビットＹ２ｊ−１がインバータ３１９により反転されて入力される。このインバータ３２０の出力から第２の制御符号Ａ２が出力され、第２の制御符号Ａ２が更にインバータ３２１により反転されて第１の制御符号Ａ１が生成される。
図８の第１の符号化回路Ｅｊ１’では、第２の制御符号Ａ２がインバータにより反転されて第１の制御符号Ａ１が生成される点で、図２の第１の符号化回路Ｅｊ１と異なっている。この違いのため、第１の符号化回路Ｅｊ１’は第１の符号化回路Ｅｊ１に比べてトランジスタ段数が１段増加するが、これを部分積生成回路に適用しても、図１４の部分積生成回路に比べて最長パスのトランジスタ段数を１段少なくすることができる。また、図２のビット回路Ｐｊｉに比べて回路中に使用されるトランジスタの数を減らすことができる。
【００７５】
以上説明したように、本発明の実施形態に係る上述した部分積生成回路によれば、ブースの符号が値‘０’の場合における部分積の値が一意に決定されるので、ビット回路における演算処理の順番を入れ替えることが可能になる。これにより、生成時間を要する制御符号（／ＺＤＴ）をビット回路の後段回路で用いるとともに、生成時間の短い制御符号（Ｓｇｎ、Ａ１、Ａ２）をビット回路の前段で用いることによって演算処理の無駄な待ち時間を抑制することができ、従来に比べて部分積の生成を高速化することが可能になる。これにより、乗算器全体の速度も高速化することができる。
【００７６】
また、ブースの符号が値‘０’の場合における部分積の値が一意に決定されることから、図１４の部分積生成回路のような無駄な信号遷移の発生が抑えられ、従来に比べて回路の消費電力を低減することができる。
【００７７】
なお、本発明は上述した実施形態に限定されない。
すなわち、上述した回路構成は本発明の実施形態を説明する上で与えた一例に過ぎず、同等の機能を有した他の回路によっても本発明は実現可能である。
例えば、上述の回路では主としてｐ型ＭＯＳトランジスタおよびｎ型ＭＯＳトランジスタが用いられているが、トランジスタの種類は任意であり、例えばバイポーラトランジスタなど、他の種々のトランジスタを用いても良い。
上述した回路で用いられるトランスファー・ゲートは、スイッチとしての機能を有した別の回路に置き換えても良い。
部分積の加算回路の構成は任意であり、他の種々の加算回路を適用することができる。
【００７８】
【発明の効果】
本発明によれば、部分積の生成をより高速化することができ、これにより乗算速度を高速化することができる。また、無駄な信号遷移の発生を防止して、消費電力を低減することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る乗算器における、部分積生成回路の構成例を示す概略的なブロック図である。
【図２】図１に示した部分積生成回路のより詳細な構成例を示す概略的な回路図である。
【図３】本発明の実施形態に係る乗算器における、部分積の加算回路の構成例を示す概略的なブロック図である。
【図４】図２に示す部分積生成回路における制御符号の値とビット回路の出力値との関係を示す図である。
【図５】図２および図１４の部分積生成回路における、符号化回路の入力からビット回路の出力までの遅延時間のシミュレーション結果を比較した図である。
【図６】第２の符号化回路の他の構成例を示す概略的な回路図である。
【図７】ビット回路の他の構成例を示す概略的な回路図である。
【図８】第１の符号化回路の他の構成例を示す概略的な回路図である。
【図９】一般的な乗算の過程を説明するための図である。
【図１０】２次のブースの符号の生成方法を説明するための図である。
【図１１】２次のブースの符号と乗数のビット値との対応関係を示す図である。
【図１２】ブースの符号の各値に対応する部分積の演算結果を示す図である。
【図１３】２次のブースの符号に対応する制御符号の一般的な例を示す図である。
【図１４】図１３に示す制御符号を用いた部分積生成回路の一例を示す概略的な回路図である。
【符号の説明】
１０〜１９，１０１〜１１３…ｐ型ＭＯＳトランジスタ、２０〜２９，２０１〜２１３…ｎ型ＭＯＳトランジスタ、３０〜４１，３０１〜３２１…インバータ、５０〜５７，４０１〜４２０…トランスファー・ゲート、５００…ＮＡＮＤ回路、６００…ＮＯＲ回路、Ｅｊ（０≦ｊ≦Ｎ−１）…ブース符号化回路、Ｅｊ１…第１の符号化回路、Ｅｊ２…第２の符号化回路、Ｅｊ３…第３の符号化回路、Ｐｊｉ（０≦ｉ≦Ｌ−１）…ビット回路、ＢＥ…ブース符号化回路、ＢＭｋ（０≦ｋ≦Ｍ−１）…ビット回路。
【図１】
0003663186.tif 000008
【図２】
0003663186.tif 000009
【図３】
0003663186.tif 000010
【図４】
0003663186.tif 000011
【図５】
0003663186.tif 000012
【図６】
0003663186.tif 000013
【図７】
0003663186.tif 000014
【図８】
0003663186.tif 000015
【図９】
0003663186.tif 000016
【図１０】
0003663186.tif 000017
【図１１】
0003663186.tif 000018
【図１２】
0003663186.tif 000019
【図１３】
0003663186.tif 000020
【図１４】
0003663186.tif 000021