(57)【特許請求の範囲】
【請求項１】
被乗数に符号なし乗数を乗じる乗算器において、
符号なし乗数の下位数ビットを、ブースアルゴリズムを用いた第１の記号化の法則にしたがってエンコードする第１のブースエンコーダと、
該第１のブースエンコーダのエンコード結果を用いて前記被乗数と符号なし乗数の乗算における部分積を生成する第１の部分積生成回路と、
符号なし乗数の最上位の３ビットの組についてのみ、ブースアルゴリズムを用いた、前記第１の記号化の法則と異なる第２の記号化の法則にしたがってエンコードする第２のブースエンコーダと、
該第２のブースエンコーダのエンコード結果を用いて前記被乗数と符号なし乗数の乗算における部分積を生成する第２の部分積生成回路と、
前記第１の部分積生成回路から出力される単数又は複数の部分積、および、前記第２の部分積生成回路から出力される部分積をすべて加算する加算回路とを備え、
前記第１のブースエンコーダは、乗数の３ビット毎にエンコードする２次のブースアルゴリズムを使用し、
前記第２の部分積生成回路における部分積生成の演算が、被乗数を０倍、１倍、２倍、３倍、または４倍する演算である、
ことを特徴とする乗算器。
【請求項２】
請求項１に記載の乗算器において、
前記乗数が固定乗数である、
ことを特徴とする乗算器。
【請求項３】
請求項１に記載の乗算器において、
前記被乗数が符号なし被乗数である、
ことを特徴とする乗算器。
【請求項４】
請求項１に記載の乗算器において、
前記被乗数が符号付き被乗数である、
ことを特徴とする乗算器。
【請求項５】
請求項１に記載の乗算器において、
前記加算回路は、ウォレスツリー加算回路である、
ことを特徴とする乗算器。
【請求項６】
請求項１に記載の乗算器において、
乗数のビット拡張およびビット分配を行い、最上位数ビットを前記第２のブースエンコーダの入力とし、下位数ビットを前記第１のブースエンコーダの入力とするビット拡張分配回路を備えた、
ことを特徴とする乗算器。
【請求項７】
被乗数に乗数を乗じる乗算器において、
乗数の下位数ビットを、ブースアルゴリズムを用いた第１の記号化の法則にしたがってエンコードする第１のブースエンコーダと、
該第１のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第１の部分積生成回路と、
乗数の最上位数ビットを、ブースアルゴリズムを用いた、前記第１の記号化の法則と異なる第２の記号化の法則にしたがってエンコードする第２のブースエンコーダと、
該第２のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第２の部分積生成回路と、
乗数の最上位数ビットを、前記第１の記号化の法則にしたがってエンコードする第３のブースエンコーダと、
該第３のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第３の部分積生成回路と、
乗数が符号付乗数か符号なし乗数かに応じて前記第２の部分積生成回路から出力される部分積か前記第３の部分積生成回路から出力される部分積のいずれかを選択して出力する選択回路と、
前記第１の部分積生成回路から出力される単数又は複数の部分積、および、前記選択回路から出力される部分積をすべて加算する加算回路とを備え、
前記第１のブースエンコーダは、乗数の３ビット毎にエンコードする２次のブースアルゴリズムを使用し、
前記第２の部分積生成回路における部分積生成の演算が、被乗数を０倍、１倍、２倍、３倍、または４倍する演算である、
ことを特徴とする乗算器。
【請求項８】
被乗数に乗数を乗じる手段を備えたデジタルフィルタにおいて、
請求項１に記載の乗算器により、上記被乗数に乗数を乗じる手段が構成される、
ことを特徴とするデジタルフィルタ。
【請求項９】
請求項１に記載の乗算器を備え、
被乗数に乗数を乗じる処理を含む信号処理を行なう、
ことを特徴とする信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２進数の演算を行う乗算器に関し、特に被乗数に符号なし乗数を乗算する乗算器に関する。
【背景技術】
【０００２】
乗算器はほとんどのデジタル信号処理で使用される必須の演算器のうちの一つである。２の補数間の乗算を求める場合において、部分積の数を減らすためにブースのアルゴリズムがしばしば用いられる。ブースのアルゴリズムを用いた乗算器は、通常、回路規模を削減することが可能である。
【０００３】
また、符号なし乗算においても、入力の符号ビットを拡張することで、ブースのアルゴリズムを適用することが可能である。
【０００４】
これまでもブースのアルゴリズムを用いた乗算器の構成については様々な特許が出願されている（例えば、特許文献１、特許文献２、特許文献３、特許文献４参照。）。
【０００５】
図６はブースのアルゴリズムを用いた乗算器の従来例を示すものである。図６において、１１はブースエンコーダ、１２は部分積生成回路、１３は加算回路である。入力信号は、通常、２の補数被乗数Ｘと２の補数乗数Ｙである。
【０００６】
ここで、ブースエンコーダ１１は２次のブースアルゴリズムを用いることとする。乗数Ｙを１ビットをオーバーラップさせ３ビットずつに区分した組に分配し、それぞれの組に対してブースエンコーダでエンコードする。例えば、乗数Ｙが６ビットの数ｃであり、最上位ビットから順に、（ｃ５，ｃ４，ｃ３，ｃ２，ｃ１，ｃ０）とすると、この最下位ビットｃ０の後ろに０を付加した後、下位側から順に１ビットをオーバーラップさせながら３ビットずつに区分し、（ｃ５，ｃ４，ｃ３）、（ｃ３，ｃ２，ｃ１）、（ｃ１，ｃ０，０）という３つの組を生成し、それぞれの組に対してブースエンコーダでエンコードする。
【０００７】
２の補数表示形式の時、乗数Ｙは、
【数１】
0004790791.tif 000002
となる。ここで、ｙnは符号ビット、ｙn-1〜ｙ1は数値部である。
【０００８】
（１）式を次のように置き換える。
【数２】
0004790791.tif 000003
【０００９】
この（２）式で、（ｙ2i＋ｙ2i+1−２ｙ2i+2）は、上述のように分配した各ビットの組の含まれる３ビットを対象とし、ビットの数値の組み合わせに応じて、＋２、＋１、０、−１、または−２の値をとる。
【００１０】
上述のように２次のブースアルゴリズムを用いた場合、ブースエンコーダ１１は、３ビットずつ区分された乗数のビットの組を図３の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として＋２Ｘ、＋Ｘ、０Ｘ、−Ｘ、または−２Ｘを生成する。例えば、上記の例で、乗数ｃ（ｃ５，ｃ４，ｃ３，ｃ２，ｃ１，ｃ０）が（１，１，１，０，０，１）であるとすると、ブースエンコーダ１１により、最上位３ビットの組（１，１，１）は０Ｘ、次の組（１，０，０）は−２Ｘ、最下位３ビットの組（０，１，０）は＋Ｘとエンコードされる。
【００１１】
部分積生成回路１２は、乗数を区分した各ビットの組のブースエンコーダ１１によるエンコード結果である演算方法を用いて部分積を生成する。そして、加算回路１３は、部分積生成回路１２の出力である複数の部分積結果の加算を行い、被乗数Ｘと乗数Ｙの乗算結果を得る。
【００１２】
上述のように、図６に示す乗算器においては、被乗数に２の補数の乗数を乗ずる乗算を対象とするブースのアルゴリズムを用いているが、被乗数に符号なし乗数を乗ずる乗算でブースアルゴリズムを用いる場合は、符号なし乗数Ｙの最上位ビットの前に符号ビットを付加するビット拡張を行うことにより、図６に示すブースアルゴリズムを用いた乗算器を使用することが可能となる。
【特許文献１】特許第２５９７７３６号公報
【特許文献２】特開平５−２４１７９３号公報
【特許文献３】特開平８−３１４６９７号公報
【特許文献４】特開平９−１０１８７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従来のブースアルゴリズムを用いた乗算器においては、被乗数に符号なし乗数を乗ずる乗算に対応させる場合、乗数の最上位ビットの前に符号ビットを付加するビット拡張を行うため、回路規模が大きくなるという課題があった。
【００１４】
この発明は、前記従来技術における課題を解決するためになされたもので、被乗数に符号なし乗数を乗ずる乗算において、乗数に符号ビットを付加するビット拡張なしでブースアルゴリズムを適用する、回路規模を削減することが可能な、乗算器、およびその合成装置、合成プログラム、合成プログラム記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１５】
本願の乗算器は、被乗数に乗数を乗じる乗算器において、乗数の下位数ビットを、ブースアルゴリズムを用いた第１の記号化の法則にしたがってエンコードする第１のブースエンコーダと、該第１のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第１の部分積生成回路と、乗数の最上位の３ビットの組についてのみ、ブースアルゴリズムを用いた、前記第１の記号化の法則と異なる第２の記号化の法則にしたがってエンコードする第２のブースエンコーダと、該第２のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第２の部分積生成回路と、前記第１の部分積生成回路から出力される単数又は複数の部分積、および、前記第２の部分積生成回路から出力される部分積をすべて加算する加算回路とを備えた、ことを特徴とするものである。
【００１６】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００１７】
また、本願の乗算器は、前記乗算器において、前記乗数が固定である、ことを特徴とするものである。
【００１８】
これにより、被乗数に符号なしの固定乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００１９】
また、本願の乗算器は、前記乗算器において、前記被乗数が符号なし被乗数であり、前記乗数が符号なし乗数である、ことを特徴とするものである。
【００２０】
これにより、符号なし被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００２１】
また、本願の乗算器は、前記乗算器において、前記被乗数が符号付き被乗数であり、前記乗数が符号なし乗数である、ことを特徴とするものである。
【００２２】
これにより、符号付き被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００２３】
また、本願の乗算器は、前記乗算器において、前記第１のブースエンコーダは、乗数の３ビット毎にエンコードする２次のブースアルゴリズムを使用する、ことを特徴とするものである。
【００２４】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしに２次のブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００２５】
また、本願の乗算器は、前記乗算器において、第２の部分積生成回路における部分積生成の演算が、被乗数を０倍、１倍、２倍、３倍、または４倍する演算である、ことを特徴とするものである。
【００２６】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしに２次のブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００２７】
また、本願の乗算器は、前記乗算器において、前記第１のブースエンコーダは、乗数のＮビット毎にエンコードする（Ｎ−１）次のブースアルゴリズムを使用する、ことを特徴とするものである。
【００２８】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしに（Ｎ−１）次のブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００２９】
また、本願の乗算器は、前記乗算器において、前記加算回路が、ウォレスツリー加算回路である、ことを特徴とするものである。
【００３０】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、さらに小型な乗算器を実現できる。
【００３１】
また、本願の乗算器は、前記乗算器において、乗数のビット拡張およびビット分配を行い、最上位数ビットを前記第２のブースエンコーダの入力とし、下位数ビットを前記第１のブースエンコーダの入力とするビット拡張分配回路を備えた、ことを特徴とするものである。
【００３２】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００３３】
また、本願の乗算器は、被乗数に乗数を乗じる乗算器において、乗数の下位数ビットを、ブースアルゴリズムを用いた第１の記号化の法則にしたがってエンコードする第１のブースエンコーダと、該第１のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第１の部分積生成回路と、乗数の最上位数ビットを、ブースアルゴリズムを用いた、前記第１の記号化の法則と異なる第２の記号化の法則にしたがってエンコードする第２のブースエンコーダと、該第２のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第２の部分積生成回路と、乗数の最上位数ビットを、前記第１の記号化の法則にしたがってエンコードする第３のブースエンコーダと、該第３のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第３の部分積生成回路と、乗数が符号付乗数か符号なし乗数かに応じて前記第２の部分積生成回路から出力される部分積か前記第３の部分積生成回路から出力される部分積のいずれかを選択して出力する選択回路と、前記第１の部分積生成回路から出力される単数又は複数の部分積、および、前記選択回路から出力される部分積をすべて加算する加算回路とを備えた、ことを特徴とするものである。
【００３４】
これにより、被乗数に２の補数の乗数を乗ずる乗算、及び被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００３５】
また、本願のデジタルフィルタは、被乗数に乗数を乗じる手段を備えたデジタルフィルタにおいて、請求項１に記載の乗算器により、上記被乗数に乗数を乗じる手段が構成される、ことを特徴とするものである。
【００３６】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を用いたデジタルフィルタを実現できる。
【００３７】
また、本願の信号処理装置は、前記乗算器を備え、被乗数に乗数を乗じる処理を含む信号処理を行なう、ことを特徴とするものである。
【００３８】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を用いた信号処理装置を実現できる。
【００３９】
また、本願の乗算器の合成装置は、被乗数に乗数を乗じる乗算器であって、乗数の下位数ビットを、ブースアルゴリズムを用いた第１の記号化の法則にしたがってエンコードする第１のブースエンコーダと、該第１のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第１の部分積生成回路と、乗数の最上位の３ビットの組についてのみ、ブースアルゴリズムを用いた、前記第１の記号化の法則と異なる第２の記号化の法則にしたがってエンコードする第２のブースエンコーダと、該第２のブースエンコーダのエンコード結果を用いて前記被乗数と乗数の乗算における部分積を生成する第２の部分積生成回路と、前記第１の部分積生成回路から出力される単数又は複数の部分積、および、前記第２の部分積生成回路から出力される部分積をすべて加算する加算回路とを備えた、乗算器を、プログラムの実行により合成するコンピュータよりなる、ことを特徴とするものである。
【００４０】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を自動合成できる合成装置を実現できる。
【００４１】
また、本願の乗算器の合成装置は、前記乗算器の合成装置において、前記加算回路が、ウォレスツリー加算回路である、ことを特徴とするものである。
【００４２】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を自動合成できる合成装置を実現できる。
【００４３】
また、本願の乗算器の合成プログラムは、コンピュータにより実行されることによって、当該コンピュータが前記乗算器を合成する、ことを特徴とするものである。
【００４４】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を自動合成できる合成プログラムを実現できる。
【００４５】
また、本願の乗算器の合成プログラム記録媒体は、前記乗算器の合成プログラムを記録した、ことを特徴とするものである。
【００４６】
これにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を自動合成できる合成プログラム記録媒体を実現できる。
【発明の効果】
【００４７】
この発明に係る乗算器によれば、符号なし乗数入力の乗算器を構成する際に、最上位数ビットは下位数ビットとは別のブースアルゴリズムを用いてエンコードする構成としたので、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を実現することが可能となる効果がある。
【００４８】
また、この発明に係る乗算器の合成装置，合成プログラム，合成プログラム記録媒体によれば、乗算器を合成する際に、最上位数ビットを下位数ビットとは別のブースアルゴリズムを用いてエンコードするようにしたので、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を合成することが可能な合成装置，合成プログラム，合成プログラム記録媒体が得られる効果がある。
【発明を実施するための最良の形態】
【００４９】
以下本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
以下、本発明の実施の形態１による乗算器について図１を用いて説明する。
図１は本実施の形態１による符号なし乗数を入力とする乗算器のブロック図である。図１において、１は第１のブースエンコーダ、２は第１のブースエンコーダ１の出力を用いて部分積を生成する第１の部分積生成回路、５は第２のブースエンコーダ、６は第２のブースエンコーダ５の出力を用いて部分積を生成する第２の部分積生成回路である。また、３は第１の部分積生成回路２の出力と第２の部分積生成回路６の出力を加算する加算回路、４は入力される乗数をビット拡張し、第１のブースエンコーダ１と第２のブースエンコーダ５に分配するビット拡張分配回路である。加算回路３については、多入力のウォレスツリー加算回路などを用いることで加算回路の小型化が可能である。
【００５０】
第１のブースエンコーダ１と第２のブースエンコーダ５は、いずれも２次のブースアルゴリズムを用いるものであり、乗数Ｙを１ビットをオーバーラップさせて３ビットずつに区分したビットの組を所定の記号化の法則にしたがってエンコードするものである。
【００５１】
乗数Ｙは、２の補数表示形式の時は、前記（１）式で表されるのに対し、符号なし表示形式の時は、
【数３】
0004790791.tif 000004
となる。ここで、ｙn〜ｙ1は数値部である。
【００５２】
（３）式を次のように置き換える。
【数４】
0004790791.tif 000005
【００５３】
この（４）式で、（ｙn-2＋ｙn-1＋２ｙn）は、上述のように分配したビットの組のうちの最上位のビットの組に含まれる３ビットを対象とし、ビットの数値の組み合わせに応じて、０、１、２、３、または４の値をとり、（ｙ2i＋ｙ2i+1−２ｙ2i+2）は、上述のように分配したビットの組のうちの最上位のビットの組以外のビットの組に含まれる３ビットを対象とし、ビットの数値の組み合わせに応じて、＋２、＋１、０、−１、または−２の値をとる。
【００５４】
本実施の形態１による乗算器は、上述のように符号なし乗算で２次のブースアルゴリズムを用い、第２のブースエンコーダ５で、３ビットずつに区分された乗数のビットの組の最上位のビットの組を図４の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として０Ｘ、１Ｘ、２Ｘ、３Ｘ、または４Ｘを生成し、第１のブースエンコーダ１で、３ビットずつに区分された乗数のビットの組うちの最上位のビットの組以外のビットの組を図３の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として＋２Ｘ、＋Ｘ、０Ｘ、−Ｘ、または−２Ｘを生成するものである。
【００５５】
次に本実施の形態１による乗算器の動作について説明する。
図１において、ビット拡張分配回路４は、乗数Ｙのビット幅に応じて、ビット拡張を行い、１ビットはオーバーラップし３ビットずつに分配する。そして、最上位３ビットについては第２のブースエンコーダ５へ、それ以外（以下）のビットについては第１のブースエンコーダ１へそれぞれ出力する。
【００５６】
例えば、乗数が符号なし６ビットの数ａであり、最上位ビットから順に、（ａ５，ａ４，ａ３，ａ２，ａ１，ａ０）とすると、ビット拡張分配回路４は、この最下位ビットａ０の後ろに０を付加した後、下位側から順に１ビットをオーバーラップさせながら３ビットずつに区分し、（ａ５，ａ４，ａ３）、（ａ３，ａ２，ａ１）、（ａ１，ａ０，０）、のようにビット拡張およびビット分配を行い、それぞれの組を生成する。そして、最上位ビットの組（ａ５、ａ４、ａ３）を第２のブースエンコーダ５へ出力し、それ以外のビットの組（ａ３，ａ２，ａ１）、（ａ１，ａ０，０）を第１のブースエンコーダ１へ出力する。
【００５７】
ここで、ビット拡張分配回路４は、下位側から順に１ビットをオーバーラップさせながら３ビットずつに区分するが、最後の組、すなわち最上位部分が３ビットの組とならないときには、最上位ビットの前に０を付加して最上位の３ビットの組を生成する。例えば、乗数Ｙが、符号なし７ビットの数ｂであり、最上位ビットから順に、（ｂ６，ｂ５，ｂ４，ｂ３，ｂ２，ｂ１，ｂ０）であるとすると、ビット拡張分配回路４は、この最下位ビットｂ０の後ろに０を付加した後、下位側から順に１ビットをオーバーラップさせながら３ビットずつに区分し、（０，ｂ６，ｂ５）、（ｂ５，ｂ４，ｂ３）、（ｂ３，ｂ２，ｂ１）、（ｂ１，ｂ０，０）、のようにビット拡張およびビット分配を行い、それぞれの組を生成する。
【００５８】
第１のブースエンコーダ１は、３ビットずつ区分された乗数のビットの組のうち最上位の組以外の組を、図３の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として＋２Ｘ、＋Ｘ、０Ｘ、−Ｘ、または−２Ｘを生成し、第１の部分積生成回路２は、第１のブースエンコーダ１によるエンコード結果である演算方法を用いて部分積を生成する。一方、第２のブースエンコーダ５は、３ビットずつ区分された乗数のビットの組のうちの最上位の組を、図４の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として０Ｘ、＋Ｘ、＋２Ｘ、＋３Ｘ、または＋４Ｘを生成し、第２の部分積生成回路６は、第２のブースエンコーダ５によるエンコード結果である演算方法を用いて部分積を生成する。そして、加算回路３において、部分積生成回路２の複数の出力および部分積生成回路６の複数の出力を加算し、被乗数Ｘと乗数Ｙの乗算結果を得る。
【００５９】
このように、本実施の形態１による乗算器によれば、乗数の下位数ビットを、第１のブースエンコーダ１でブースアルゴリズムを用いた第１の記号化の法則にしたがってエンコードし、第１の部分積生成回路２で第１のブースエンコーダ１の出力を用いて部分積を生成し、乗数の最上位数ビットを、第２のブースエンコーダ５でブースアルゴリズムを用いた、前記第１の記号化の法則と異なる第２の記号化の法則にしたがってエンコードし、第２の部分積生成回路６で第２のブースエンコーダ５の出力を用いて部分積を生成し、加算回路３で、第１の部分積生成回路２から出力される部分積、および、第２の部分積生成回路６から出力される部分積をすべて加算して出力する構成としたから、乗数に符号ビットを付加するビット拡張をすることなく、ブースアルゴリズムを適用して、符号なし乗算を行なうことのできる演算器を実現できる。
【００６０】
なお、本実施の形態１による乗算器は、これを専用のハードウェアによって実現するようにしてもよく、また、専用のハードウェアによって実現する代わりに、汎用のコンピュータよりなり、プログラムの実行により本実施の形態の乗算器を合成する、合成装置により実現するようにしてもよい。本実施の形態の乗算器を合成装置により実現する場合には、コンピュータにより実行されることによって当該コンピュータが本実施の形態の乗算器を合成する合成プログラムをＣＤ等の情報記録媒体に記録しておき、コンピュータよりなる合成装置が、該合成プログラムを記録した記録媒体からプログラムを読み出してこれを実行することによって本実施の形態の乗算器を合成する構成とすることができる。
【００６１】
また、本実施の形態１による乗算器は、被乗数に符号なし乗数を乗算する処理を含む信号処理を行なう信号処理装置を構成するために用いることができ、また、被乗数に符号なし乗数を乗算する乗算手段を備えたデジタルフィルタにおける、当該乗算手段として、使用することも可能である。
【００６２】
（実施の形態２）
この発明の実施の形態２による乗算器について図２を用いて説明する。
図２は本実施の形態２による符号なし乗数を入力とする乗算器のブロック図である。図２において、図１と同一符号は同一または相当部分であり、また、７は入力信号を第１のブースエンコーダと同じ記号化の法則にしたがってエンコードする第３のブースエンコーダ、８は第３のブースエンコーダ７の出力を用いて部分積を生成する第３の部分積生成回路、９は第２の部分積生成回路６の出力と第３の部分積生成回路８の出力のいずれかを選択して出力する選択回路である。
【００６３】
図２において、図１に示す実施の形態１による乗算器との違いは、第３のブースエンコーダ７、第３の部分積生成回路８、及び選択回路９を追加したことである。
【００６４】
次に本実施の形態２による乗算器の動作について説明する。
図２において、ビット拡張分配回路４は、乗数Ｙのビット幅に応じて、ビット拡張を行い、１ビットはオーバーラップし３ビットずつに分配する。そして、最上位３ビットについては第２のブースエンコーダ５および第３のブースエンコーダ７へ、それ以外（以下）のビットについては第１のブースエンコーダ１へそれぞれ出力する。
【００６５】
例えば、乗数が符号なし６ビットの数ａであり、最上位ビットから順に、（ａ５，ａ４，ａ３，ａ２，ａ１，ａ０）とすると、ビット拡張分配回路４は、この最下位ビットａ０の後ろに０を付加した後、下位側から順に１ビットをオーバーラップさせながら３ビットずつに区分し、（ａ５，ａ４，ａ３）、（ａ３，ａ２，ａ１）、（ａ１，ａ０，０）、のようにビット拡張およびビット分配を行い、それぞれの組を生成する。そして、最上位ビットの組（ａ５、ａ４、ａ３）を第２のブースエンコーダ５および第３のブースエンコーダ７へ出力し、それ以外のビットの組（ａ３，ａ２，ａ１）、（ａ１，ａ０，０）を第１のブースエンコーダ１へ出力する。
【００６６】
第１のブースエンコーダ１は、３ビットずつ区分された乗数のビットの組のうち最上位の組以外の組を、図３の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として＋２Ｘ、＋Ｘ、０Ｘ、−Ｘ、または−２Ｘを生成し、第１の部分積生成回路２は、第１のブースエンコーダ１によるエンコード結果である演算方法を用いて部分積を生成する。一方、第２のブースエンコーダ５は、３ビットずつ区分された乗数のビットの組のうちの最上位の組を、図４の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として０Ｘ、＋Ｘ、＋２Ｘ、＋３Ｘ、または＋４Ｘを生成し、第２の部分積生成回路６は、第２のブースエンコーダ５によるエンコード結果である演算方法を用いて部分積を生成する。さらに、第３のブースエンコーダ７は、３ビットずつ区分された乗数のビットの組のうちの最上位の組を、第１のブースエンコーダ１と同様、図３の演算表に示す記号化の法則にしたがってエンコードして、ビットの数値の組み合わせに対応する演算方法として＋２Ｘ、＋Ｘ、０Ｘ、−Ｘ、または−２Ｘを生成し、第３の部分積生成回路８は、第３のブースエンコーダ７によるエンコード結果である演算方法を用いて部分積を生成する。
【００６７】
選択回路９は、乗数Ｙが２の補数か符号なしであるかによって、第２の部分積生成回路６の出力か第３の部分積生成回路８の出力のいずれかを出力する。すなわち、選択回路９は、乗数Ｙが符号なしの数であるときは、第２の部分積生成回路６の出力を選択して出力し、乗数Ｙが２の補数であるときは、第３の部分積生成回路８の出力を選択して出力する。第１の部分積生成回路２の複数の出力および選択回路９の出力を入力とし加算し、被乗数Ｘと乗数Ｙの乗算結果を得る。これにより、本実施の形態２による乗算器では、加算回路３は、乗数Ｙが符号なしの数であるときは、前述の（４）式に基づくブースアルゴリズムを用いた乗算により、また、乗数Ｙが２の補数であるときは、前述の（２）式に基づくブースアルゴリズムを用いた乗算によって被乗数Ｘと乗数Ｙの乗算結果を得ることができる。
【００６８】
このように、本実施の形態２による乗算器によれば、乗数の下位数ビットを、第１のブースエンコーダ１でブースアルゴリズムを用いた第１の記号化の法則にしたがってエンコードし、第１の部分積生成回路２で第１のブースエンコーダ１の出力を用いて部分積を生成し、乗数の最上位数ビットを、第２のブースエンコーダ５でブースアルゴリズムを用いた、前記第１の記号化の法則と異なる第２の記号化の法則にしたがってエンコードし、第２の部分積生成回路６で第２のブースエンコーダ５の出力を用いて部分積を生成し、乗数の最上位数ビットを、第３のブースエンコーダ７で前記第１の記号化の法則にしたがってエンコードし、第３の部分積生成回路８で第３のブースエンコーダ７の出力を用いて部分積を生成し、選択回路９で、乗数が符号付乗数か符号なし乗数かに応じて第２の部分積生成回路６から出力される部分積か第３の部分積生成回路８から出力される部分積のいずれかを選択して出力し、加算回路３で、第１の部分積生成回路２から出力される部分積、および、選択回路９から出力される部分積をすべて加算して出力する構成としたから、被乗数に２の補数の乗数を乗ずる乗算、及び被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて行うことができる、小型な乗算器を実現できる。
【００６９】
なお、上記実施の形態１および２では、２次のブースアルゴリズムを用いて乗算を行うものについて説明したが、本発明は、４ビットずつ区分された乗数のビットの組を図５に示すような記号化の法則にしたがってエンコードを行う３次のブースアルゴリズムを用いた乗算や、さらに高次のブースアルゴリズムを用いた乗算についても適用することができる。
【産業上の利用可能性】
【００７０】
本発明にかかる乗算器は、乗数の最上位数ビットを、下位数ビットとは別のブースアルゴリズムを用いてエンコードする構成とすることにより、被乗数に符号なし乗数を乗ずる乗算を、乗数に符号ビットを付加するビット拡張なしにブースアルゴリズムを用いて乗算できる小型な乗算器を実現することが可能であり、算術論理演算器やデジタルフィルタなどにおける乗算器として有用である。また光学式記録情報装置等や、通信等の用途の他、あらゆるデジタル信号処理の基本演算装置として利用可能である。
【図面の簡単な説明】
【００７１】
【図１】図１は、本発明の実施の形態１による乗算器の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態２による乗算器の構成を示すブロック図である。
【図３】図３は、２次のブースアルゴリズムの演算を示す図である。
【図４】図４は、最上位３ビットにおける２次のブースアルゴリズムの演算を示す図である。
【図５】図５は、３次のブースアルゴリズムの演算を示す図である。
【図６】図６は、従来のブースアルゴリズムを用いた乗算器の構成を示すブロック図である。
【符号の説明】
【００７２】
１  第１のブースエンコーダ
２  第１の部分積生成回路
３  加算回路
４  ビット拡張分配回路
５  第２のブースエンコーダ
６  第２の部分積生成回路
７  第３のブースエンコーダ
８  第３の部分積生成回路
９  選択回路
【図１】
0004790791.tif 000006
【図２】
0004790791.tif 000007
【図３】
0004790791.tif 000008
【図４】
0004790791.tif 000009
【図５】
0004790791.tif 000010
【図６】
0004790791.tif 000011